Microsoft PowerPoint - Chap03.ppt [相容模式]

Similar documents
Microsoft PowerPoint - Chap04.ppt [相容模式]

遊戲內容介紹 : 全部都由四個方塊組成 開始時, 一個隨機的方塊會從區域上方開始緩慢繼續落下 落下期間, 玩家可以以 90 度為單位旋轉方塊, 以格子為單位左右移動方塊, 或讓方塊加速落下 當方塊下落到區域最下方或著落到其他方塊上無法再向下移動時, 就會固定在該處, 然後新的方塊出現在區域上方開始落

. Windows Phone 7 目 标 平 台 Microsoft Visual Studio 00 Express for Windows Phone 中 含 有 XNA Game Studio 4.0 和 一 个 手 机 模 拟 器 (emulator), 这 些 工 具 也 能 够 与 V

CC213


untitled

untitled

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌








1

Learning Java

書本介紹


1.5招募说明书(草案)

投影片 1

untitled

概述

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

无类继承.key

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

(6) 要 求 付 款 管 理 员 从 预 订 表 中 查 询 距 预 订 的 会 议 时 间 两 周 内 的 预 定, 根 据 客 户 记 录 给 满 足 条 件 的 客 户 发 送 支 付 余 款 要 求 (7) 支 付 余 款 管 理 员 收 到 客 户 余 款 支 付 的 通 知 后, 检

由社會發展趨勢探討國人睡眠品質

《大话设计模式》第一章

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

EJB-Programming-3.PDF

untitled

Microsoft Word - ch04三校.doc

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

chp6.ppt

EJB-Programming-4-cn.doc

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

幻灯片 1

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

untitled

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

Java

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與

EK-STM32F

epub83-1

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

untitled

Learning XNA 4.0

台北市立大安高工職業學校

2/80 2

mvc

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

投影片 1

Chapter 9: Objects and Classes

K7VT2_QIG_v3

Chn 116 Neh.d.01.nis

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

2D Asset Demo Rain Snow SteamSpray VolumeSteam Waterfall Demo Unity Asset store 7.3 2D example\practice\ch07 Unity ch07 MissileExplosion Wall 7-8

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Windows XP

Chapter 9: Objects and Classes

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

第3章.doc

FY.DOC

全国计算机技术与软件专业技术资格(水平)考试

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

文档 3

Microsoft PowerPoint - L17_Inheritance_v4.pptx

Android Service

ASP.NET实现下拉框二级联动组件

多媒體應用 13 新增專案並完成版面配置 <ExMusic01> <activity_main.xml> ImageView ID imgplay ImageView ID imgstop ImageView ID imgfront TextView ID txtsong TextView ID t

附录J:Eclipse教程

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466>

INTRODUCTION TO COM.DOC

c_cpp

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

Visual Basic D 3D

Microsoft PowerPoint - VB14.ppt

Microsoft PowerPoint - 第14章.ppt

Microsoft Word - mei.doc

國家圖書館典藏電子全文

untitled

Java 1 Java String Date

Guide to Install SATA Hard Disks

Microsoft PowerPoint - EmbSys101_Java Basics.ppt [相容模式]

javaexample-02.pdf

1.5招募说明书(草案)

摘 要 本 校 多 媒 體 設 計 系 與 上 海 戲 劇 學 院 創 意 學 院 在 多 次 聯 繫 交 流 之 下, 已 簽 署 合 作 備 忘 錄, 積 極 尋 求 兩 校 合 作 教 學 與 共 同 創 作 之 機 會 藉 由 本 系 學 生 作 品 腦 殘 公 寓 入 圍 第 五 屆 中

45 18 A4~A DAY A %

<4D F736F F D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

行政院客家委員會「築夢計畫」成果報告書

D C 93 2

untitled

Microsoft Word - 08_科普作品選讀示例一_ doc

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

Transcription:

本章目的 2D / 3D 遊戲程式設計入門使用 XNA 3.0 與 C# 探討 XNA 遊戲程式內部的基本架構與遊戲開發流程 示範如何完成一個簡單的 XNA 遊戲方案 第三章 XNA 遊戲程式基本架構 1 2 新增 XNA 專案 新增 XNA 專案 3 4

XNA 相關的命名空間 Game1.cs 程式中的六個函數 using Microsoft.Xna.Framework; // 和 XNA 架構相關的型別 using Microsoft.Xna.Framework.Audio; // 和 XNA 聲音相關的型別 using Microsoft.Xna.Framework.Content; // 和 XNA 內容輸出入相關的型別 using Microsoft.Xna.Framework.GamerServices; // 和 XNA 玩家權限 相關的型別 using Microsoft.Xna.Framework.Graphics; // 和 XNA 繪出相關的型別 using Microsoft.Xna.Framework.Input; // 和 XNA 輸入相關的型別 using Microsoft.Xna.Framework.Media; // 和 XNA 多媒體相關的型別 using Microsoft.Xna.Framework.Net; // 和 XNA 網路相關的型別 using Microsoft.Xna.Framework.Storage; // 和 XNA 儲存相關的型別 Game1() Update() Draw() 5 6 XNA 的方案總管 一個圖示 (Game.ico) 一個.png 圖形檔案 (GameThumbnail.png) 兩個程式檔案 (Game1.cs 和 Program.cs) Program.cs 程式 using System; namespace WindowsGame1 static class Program static void Main(string[] args) using (Game1 game = new Game1()) game.run(); 7 8

一般遊戲程式的流程 Game1 類別內遊戲程式的流程 初始化繪圖卡 遊戲初始化 Game1() 一般初始化 遊戲初始化 載入資源 (2D 圖形 3D 模型 音效檔 字型等 ) 得到使用者的輸入 ( 鍵盤 滑鼠 ) 載入資源 (2D 圖形 3D 模型 音效檔 字型等 ) 遊戲迴圈 執行必要的邏輯更新 ( 移動 碰撞 AI 結束 ) 繪出 ( 圖形產出 聲音 ) 遊戲迴圈 得到使用者的輸入 ( 鍵盤 滑鼠 ) 執行必要的邏輯更新 ( 移動 碰撞 AI 結束 ) 關閉繪圖卡 繪出 ( 圖形產出 聲音 ) 釋放資源 釋放資源 9 10 game.run() 的執行流程 Game1 的全域變數與建構元 遊戲迴圈 public class Game1 : Microsoft.Xna.Framework.Game GraphicsDeviceManager graphics; SpriteBatch spritebatch; public Game1() graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; 11 12

使用 SpriteBatch 物件來繪出 2D 圖形 spritebatch.begin(); // 設定 2D 圖形的繪出方式 spritebatch.draw(...); // 繪出第一張 2D 圖形 spritebatch.draw(...); // 繪出第二張 2D 圖形 spritebatch.end();// 結束 2D 圖形的繪出 內容資源管理員 Content.RootDirectory = "Content"; 13 14 XNA 內建的資源檔案輸入器 XNA 內建的資源檔案輸入器 AudioImporters 用來讀入音效檔案 EffectImporter 用來讀入.fx 著色器特效檔案, 該檔案是以高階著色語言 (HLSL) 撰寫, 用來描述頂點著色器 像素著色器等產出方式與特效的檔案 FBXImporter 用來讀入以.fbx 格式儲存的 3D 模型檔案 XImporter 用來讀入以. x 格式儲存的 3D 模型檔案 TextureImporter 用來讀入 2D 圖形檔案, 可支援的格式包括.bmp.dds.dib.hdr.jpg.pfm.png.ppm 和.tga FontDescriptionImporter 用來讀入以.spritefont 格式儲存的字型檔案 XAP 輸入器用來讀入以 XACT 工具製作出來的聲音檔案 15 16

XNA 的內容資源管道流程 遊戲初始化 Importer Document Object Model (DOM).XNB file (binary file) Content Content Content Processor Compiler Loader 專案設計期間 專案執行期間 protected override void // TODO: Add your initialization logic here base.; 17 18 上載資源檔案 protected override void // Create a new SpriteBatch, which can be used to draw textures. spritebatch = new SpriteBatch(GraphicsDevice); // TODO: use this.content to load your game content here 釋放資源 protected override void // TODO: Unload any non ContentManager content here 19 20

Update() 得到輸入 進行邏輯更新 protected override void Update(GameTime gametime) // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons. ( Back == ButtonState.Pressed) this.exit(); // TODO: Add your update logic here base.update(gametime); 21 遊戲迴圈內定每秒執行 60 次 遊戲迴圈每秒執行 60 次 22 更換更新時間 public Game1() this.targetelapsedtime = new TimeSpan(0, 0, 0, 0, 33);// 三十分之一秒 運作流程改為連續更新 public Game1() this.isfixedtimestep = false; 23 24

Draw() 繪出 XNA 專案加入新的類別 protected override void Draw(GameTime gametime) graphics.graphicsdevice.clear(color.cornflowe p rblue); // TODO: Add your drawing code here base.draw(gametime); 25 26 XNA 專案加入 GameComponent 類別 Game1 物件的子元件 GameComponent 物件 Game1 GameComponent1 建構元 () 27 28

Game1 物件的子元件 DrawableGameComponent 物件 Game DrawableGameComponent 建構元 () The End 29 30