對格斗游戲的一點想法

發表于:2007-04-28來源:作者:點擊數: 標簽:開發終于戲的格斗想法
終于決定在這里再開一個blog主頁了。這里給我的感覺真的很好,簡潔,實用,不花哨,特別適合 程序員 (雖然我還不是)。好了,在這里我可以盡情的談我所愛的編程技術了。不過我只是菜鳥一個,那些真正的高手們不要笑話我的淺薄,如果可能,你們的建議將會給

終于決定在這里再開一個blog主頁了。這里給我的感覺真的很好,簡潔,實用,不花哨,特別適合程序員(雖然我還不是)。好了,在這里我可以盡情的談我所愛的編程技術了。不過我只是菜鳥一個,那些真正的高手們不要笑話我的淺薄,如果可能,你們的建議將會給我帶來莫大的幫助。好了,廢話少說,趕緊開說!

最近一直在玩真·三國無雙advance,是GBA平臺上的,雖然畫面比PS2有很大很大的差距,但是那種連擊的爽快感一樣能夠體會到。對,連擊,這個就是這篇文章的主角。我認為連擊之所以能夠形成,是因為敵人在受到攻擊后會有一段時間的硬直,在這段硬直時間里,敵人不能進行任何動作。所以當我們發動后續的進攻時,敵人會繼續中招,繼續受到傷害。所以怎么實現硬直效果是我今天想研究的東西。

我一直在用allegro庫開發程序,所以我也想用這個庫來說明問題。

class character
{
       public:
              character();
              ~character();
              ......

              void update();
              void draw(BITMAP*);
              void attack(const character&);
             void baAttacked(const attack_type&);  //attack_type是一個類,用來表示攻擊類型
             ......
       private:
               int _x,_y;   //角色的坐標
               BITMAP *frames[N]; //游戲角色的圖片
               int stopFrames    //這個就是硬直時間對應的變量
               ......

};

這個就是我想出來的類框架,其中update()接口用來控制角色的坐標,圖片幀和硬直等,draw()接口用來向一個位圖對象繪制游戲角色,attck()就是攻擊其他人的接口,beAttack()就是受到攻擊的接口。

最關鍵的是stopFrames成員,這個用來控制硬直的時間,當角色受到攻擊的時候,根據攻擊類型的不同,產生不同的硬直時間,即改變這個成員的值。然后在update()中,當程序檢查到stopFrames不為0的時候,就將這個值減少一定的量,并且此時不進行任何其他的動作(除了角色顯示相關的以外)。這樣就實現了硬直的效果。

當然這個只是一個簡單的設想,并沒有填充一些細節的東西,不過也算是一個創意的暫時保存吧!希望有高手能夠指出不足或者告訴我更好的實現方法。等到我的知識準備足夠之后,我一定要嘗試將這個想法實現!

今天已經考完了期中考試,五一長假也正式開始了,興奮中……魔獸世界已經開始公測了,不試試可不對不住我這個深愛正統奇幻和游戲的家伙了。

昨天在電腦報上看到消息說真·三國無雙要移植到電腦上,感覺挺復雜的,我一向以為用電腦玩游戲是畸形的行為。這么好的游戲往電腦上搬,算不算自降身價?

管他算不算,我先魔獸世界去了~~~



原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97