遊戲開發基礎

2021-08-28 19:40:46 字數 3099 閱讀 7426

任何遊戲都需要一些基本框架,用於實現抽象化,並減輕與底層作業系統互動的痛苦。通常這一框架分成幾個模組:

用於建立乙個視窗和處理一些操作,如關閉視窗、暫停或恢復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...