任何遊戲都需要一些基本框架,用於實現抽象化,並減輕與底層作業系統互動的痛苦。通常這一框架分成幾個模組:
用於建立乙個視窗和處理一些操作,如關閉視窗、暫停或恢復android應用程式等。
與視窗管理模組相關聯,用於跟蹤使用者的輸入,如觸控事件、按鍵事件、加速計讀取等。
android系統中,這些輸入會被排程到當前具有焦點的視窗中,你可以很容易的註冊和記錄這些事件。
而這些輸入的消費方式通常有兩種:
下面是乙個用於輪詢觸控螢幕、鍵盤、加速計的介面,同時它可以訪問觸控螢幕和按鍵事件:
public
inte***ce
input
public
static
class
touchevent
public
boolean
iskeypressed
(int keycode)
;public
boolean
istouchdown
(int pointer)
;public
intgettouchx
(int pointer)
;public
intgettouchy
(int pointer)
;//加速計相關介面。注意,加速計只能使用輪詢的方式,而不能通過事件的方式
public
float
getaccelx
(int pointer)
;public
float
getaccely
(int pointer)
;public
float
getaccelz
(int pointer)
;public list
getkeyevents()
;public list
gettouchevents()
;}
允許從硬碟上將資源檔案讀取到應用程式中。
下面是簡單介面的定義:
public
inte***ce
fileio
音訊的簡單介面定義如下:
public
inte***ce
audio
public
inte***ce
music
public
inte***ce
sound
這是遊戲開發中除實際遊戲外最複雜的模組,它負責載入圖形並繪製在畫面上。
首先我們要明確幾個概念:
在知道上面的概念後,我們可以給出乙個簡單的影象介面:
public
inte***ce
graphics
//使用jpeg或png載入一幅
public pixmap newpixmap
(string filename, pixmapformat format)
;//用指定顏色清除整個幀緩衝區原來的顏色
public
void
clear
(int color)
;public
void
drawpixel
(int x,
int y,
int color)
;public
void
drawline
(int x,
int y,
int x2,
int y2,
int color)
;public
void
drawrect
(int x,
int y,
int width,
int height,
int color)
;public
void
drawpixmap
(pixmap pixmap,
int x,
int y,
int srcx,
int srcy,
int srcwidth,
int srcheight)
;public
void
drawpixmap
(pixmap pixmap,
int x,
int y)
;public
intgetwidth()
;public
intgetheight()
;}public
inte***ce
pixmap
遊戲框架集合了上面的所有部分,為我們編寫遊戲提供了乙個易用的基礎。
在討論真正的遊戲框架前,我們需要明確遊戲要完成的功能:
下面我們設計乙個簡單的遊戲介面,它將:
下面是乙個非常簡單的game介面,它隱藏了所有複雜性,另外是乙個抽象的screen類,表示畫面:
public
inte***ce
game
public
abstract
class
screen
public
abstract
void
update
(float deltatime)
;public
abstract
void
present
(float deltatime)
;public
abstract
void
pause()
;public
abstract
void
resume()
;public
abstract
void
dispose()
;}
實際上遊戲框架還應該包含網路程式設計,不過這部分比較高階,如果對該主題感興趣,可以到www.gamedev.net找相關教程
遊戲開發基礎 四
第四章 rgb資料可用兩種不同的結構來儲存,d3dcolor dword型別相同 要指定每個顏色分量值d3dcolor argb d3dcolor xrgb define d3dcolor xrgb r,g,b d3dcolor argb 0xff,r,g,b d3dcolorvalue 結構 該結...
遊戲開發基礎 十二
第十一章 用d3dxmatrixlookatlh函式計算觀察矩陣 即取景變換矩陣 當在某一固定地點固定攝像機方位,該函式十分有用,但其使用者對於乙個能夠根據使用者輸入做出響應的移動攝像機來說,就顯得力不從心,用4個攝像機向量 右向量 right vector 上向量 up vector 觀察向量 l...
遊戲開發框架基礎
比如,開發第乙個軟體lol killer的思路 第一步 學習c winform程式設計基礎 理解事件驅動的程式設計模型,delegate event,begininovke的用法,圖書館隨便借一本c 教程書應該都有相關的教程。第二步 通過msdn查閱c 獲取系統程序的api,關鍵字搜尋 msdn c...