[轉錄][心得] 關於夏夜攻防戰 - 其六
如先前所言,我希望螢幕上出現的子彈是由不同武器所發射出來
即是說子彈彼此雖然各自獨立,但卻可以對玩家產生混合的影響
(就像開頭所說的DDT+彈弓)
好比圖層一般,層層獨立,組合後變成最後的結果。
依照這個構想,我們可以把不同的武器所發射出來的子彈想像成獨立的"彈幕"
彼此獨立處理自己的移動,刪除,碰撞等運算。而每種武器則各自掌管自己生成的彈幕。
至於武器與子彈的建構,就跟前篇建構STATE一樣,先設計一個武器的原形class與
子彈的原形class,之後每把武器再各自繼承之,並改寫其中的Move(), isHit, Shoot()
等函式即可。
底下我們來看武器與子彈的prototype class:
class weapon{
poulic:
/*開火速率;發射前準備時間;彈藥;跑位次數等*/
int fireRate;
int preapreTime;
int ammo;
int changePosition;
/*彈幕容納*/
MovieClip mc;
/*要傳達給子彈的資訊*/
float speed;
float damage;
/*有的沒的Function*/
void init();
void shoot();
void move();
void isHit();
};
class bullet: public MovieClip{
public:
float radius; //子彈方向
float speed; //子彈目前速度
float damage; //子彈殺傷力
};
這就是所有的武器的原形,同時也是第一把武器的宣告式
第一把武器(彈弓)的行為模式最簡單也最直接: 發射->移動->消失or命中
在shoot() 函式中,武器"Create"一顆子彈,然後在彈幕中登記,告訴彈幕
"我發射了一顆子彈,等會記得幫我處理他的移動以及碰撞嘿~"
於是,彈幕庫每次都會列出所有登記的子彈,然後處理他們的移動(move)及碰撞(isHit)
子彈的座標空間設定,我用的是極座標。藉由角度(radius)以及長度(speed)
來計算出每顆子彈接下來的所在(在frame與frame之間)。
而所謂的移動(protoType),不過就是每1/30秒用radius & speed計算出子彈的位移,
然後累加之,透過每1/30秒一次次的重複計算,就能達到子彈移動的效果。
碰撞(protoType)部分,則是每1/30秒簡單比較每顆子彈的與PLAYER的bounding box
有無相交即可(雷射與黑洞的部分比較麻煩,容後再敘)
至此,前置程式已經接近完成。
把Player的部分補上,就差不多了。
PLAYER,負責接收玩家端的資訊。
可以想見其中必定有一個專門處理鍵盤傳入資訊的Listener,負責把從鍵盤接收到的
資訊傳達給程式處理。
先簡單講一下一開始的Player設計。
class player{
public:
MovieClip mc; //實體影片片段
float speed; //移動速度
int turbo; //空白加速度
bool control; //操縱可否
enum ill; //不良狀態
int illCount; //狀態影響計數器
float attractRadius; //引力角度
int attractForce; //引力強度
void moving();
};
其中基本的如移動速度等不贅述,turbo用來製造"按下空白鍵的突然加速"效果
每按一下空白鍵,turbo會變成10,然後每1/30遞減。這個turbo最後會與
位移相加,假設原本的位移是一次+4; 一下turbo突然變成 +14, 再來是+10, +6...
就能製作出"渦輪加速"的突加/減速度運動。
"ill&illCount"則是用來登記幾種負面狀態的影響。
至於attractXXXX這兩個,用來處理被彈時的後退方向,以及後退的力道。與turbo相同
這個參數也會在最後與位移相加。
其他大多是一些比較繁雜的程式如接收、對應的處理等,這部分我就略過了。
計算一下目前做了些什麼:
Seeker具備基本的狀態函式,武器庫也有了一把武器,Player也能移動,攻擊。
簡單的遊戲原形已經完成了(茶)
計算一下目前做了些什麼:
Seeker具備基本的狀態函式,武器庫也有了一把武器,Player也能移動,攻擊。
簡單的遊戲原形已經完成了(茶)
於是,最早的版本長的就像底下(大約500行左右):
http://studentweb.ncnu.edu.tw/93321523/hb2006/teach/proto.swf
(續)
文章轉自暨大霞蔚山城 ★ HenryBBS (henry.twbbs.org)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.22.18.97
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章
21
31