基於C 彈幕類射擊遊戲的實現 (五)主場景

2021-06-19 18:16:58 字數 2141 閱讀 9962

這裡的的gamescene就是乙個用於管理所有物件的類。整個遊戲只有乙個scene

(其實還有menuscene,loadscene之類的,但這裡沒有做,在下乙個遊戲《超級瑪麗》裡會有詳細的介紹)

先來看看申明部分

public static gamescene mainscene = null;

private bitmap msu***ce;

private graphics mg;

public bitmap su***ce

}private int mfps;

public int fps

}public event renderoverhandler renderover = null;

private timer timer;

private stopwatch watch;

private int loopcount;

private int timercount;

private int runtime = 0;

public gamebulletmanager bulletmanager;

private gamebarrage mbarrage;

public gameenemymanager enemymanager;

public gamebossmanager bossmanager;

public gameplayer player1;

public vector2 player1position

}private int backgroundindex;

private list mmapinfo;

東西挺多的,但其實只是各個遊戲部件的整合而已。比如gamebullemanager、gameenemymanager之類的,這些東西之後會介紹

然後是初始化,稍微多了一點點

public gamescene()

backgroundindex = 0;

watch = new stopwatch();

watch.start();

timer = new timer();

timer.interval = 33;

timer.tick += loop;

timer.start();

loopcount = 0;

timercount = 0;

mfps = 30;

gameinit();

} public void gameinit()

呼叫各個類的建構函式進行初始化,唯一注意的是開啟了乙個timer控制項來當做遊戲的主迴圈。。。因為c# winform很蛋疼,基於事件機制。。

接下來跳重載入地圖資訊。。。因為還沒用到。

先來看看新增物件

public void addbullet(gamebullet bullet)

public void addenemy(gameenemy enemy)

public void addboss(gameboss boss)

其實都是呼叫的類本身的函式。。。。。

然後看看蛋疼的主迴圈

private void loop(object sender, eventargs e)

loopcount++;

watch.stop();

timercount += (int)watch.elapsed.totalmilliseconds;

// 一秒

if ( timercount >= 1000 )}}

watch.reset();

watch.start();

}

看起來很多,其實大部分**是用來計算fps的~~~哈哈,很簡單

接下來是update和render。都是呼叫具體類的響應方法。。。

private void update(float elapsedtime)

}private void render()

這麼一來,框架大概有了,雖然比較混亂。

基於C 彈幕類射擊遊戲的實現 (七)彈幕類實現

如果只有這些子彈,那看起來必然是很一般的,想想看,只有幾顆子彈,孤零零的從下面跑到上面。gamebarrage彈幕類,用於建立一些酷炫叼的彈幕 其實核心也就是通過一些數學公式,然後批量addbullet而已 先來看看型別的定義 public enum barragetype 初步就這四種,其餘的彈幕...

基於C 彈幕類射擊遊戲的實現 (三)子彈的實現

我寫部落格喜歡做完乙個東西,一口氣寫很多章。貌似這樣不太好啊 到這裡,我們似乎該讓主角上場了,好就讓我們來顯示一顆子彈吧 慢著,顯示子彈之前,我們需要小小的抽象一下,把遊戲中所有能顯示的物體抽象成gameobject,好處是什麼?好處是看起來很帥。當然不是,好處簡單來說,整合公共部分 利於管理 好吧...

基於VC 的MFC類庫實現的五子棋小遊戲

一 專案基本資訊 作業系統 windows 10 開發環境 vs2017 和 mfc 框架 專案基本資訊 通過 vs2017 的 mfc 框架程式設計編制五子棋程式,棋盤 19 19 大小,執黑先行,黑白交替,當一方出現五個子連成一條線,即判斷勝方,彈出訊息框,顯示勝方,可重新開始遊戲 二 專案基本...