Programming

[2001] 關於射擊遊戲的思考


作者: Memory (QQ的乖乖餃) 看板: GD
標題: 關於射擊遊戲的思考…
時間: Mon Jun 18 18:32:13 2001

不曉得怎樣開始…就亂定一個標題…
其實…常常我們會在各報章雜誌看到什麼game用了什麼東西作的…
又是directx,又是openGL的,又是c,c++…….
這麼多東西…常常會令人搞混掉…天哪…這些是什麼東西啊

有些事情一定要搞清楚…

1.程式語言…如c,c++,VB
  是拿來讓我們寫程式…解決我們的問題用的

2.API…如DIRECTX,OpenGL,是利用程式語言開發出來的函式庫
  讓我們寫程式時,可以更方便的直接呼叫這些人家已經做好的功能來達到我們的目的
  不用像以前,寫個遊戲還得自己規劃螢幕解析度,
  還得自己設定繪圖ic的動作…
  現在…像opengl,要幾行程式就可以完成初始化的動作,
  就可以開始創作了…

其實…寫遊戲的時候…
大部分的程式碼..都拿來運算遊戲的流程…
只有極少數的程式碼…拿來畫出最後的畫面,播放聲音…
以射擊遊戲為例

1.其實大部分的程式碼都在計算物件的生成和移動…
  計算何時遊戲結束,計算積分,計算敵人的動作,王何時出來…
  等全部都算完了…
2.在一股腦的把運算完的物件新位置,或是該多一台飛機,少一台飛機
  整個畫面的改變,重新繪製一張圖,放到螢幕上…

重複1.2.的動作
就是你最後會看到的…畫面上有一堆飛機飛來飛去,鎗林彈雨的畫面了

所以我們的程式大概會長的像這個樣子

#include <…> // 就是該包括的函式庫囉…

*************** 1.資料結構的定義 *********************
typedef struct objstruct // 飛機物件
{
 int x,y; // 物件所在的xy座標
 int w,h; // 這玩意的長寬大小,用來作碰撞判斷用
 int life ;// 物件剩下的生命力
 int exist ;// 這個物件是否存在,掛了或還沒產生就設為0
 int type ; //這玩意到底是:王,普通敵人,玩家??
 int action ; // 這個物件目前的動作…
 ……//視情況再加新的囉
}
objstruct enemy[MAXENEMY]; // 設定敵人
objstruct player ; //代表玩家的物件
objstruct king ; // 王

typedef struct objbb // 子彈物件
{
 int x,y; //子彈位置
 int type; // 子彈型態,可能可以射出很多種不同的子彈
 int exist;// 是否存在
}
objbb playerbullet[MAXBULLET]; // 玩家的子彈陣列
int pbullet_ptr; //用來指向目前用到第幾個子彈
objbb enemybullet[MAXBULLET]; //敵人的子彈陣列

基本的會用到的資料結構大概就是這些…接下來就是遊戲的初始化…

———————————————
                       梅子紅最好喝了
                           每天都愛喝…

※ Origin: 成功大學資訊工程學系[醉資心BBS] <goodguy.csie.ncku.edu.tw> 
◆ From: 140.116.101.146

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s