這裡的的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 大小,執黑先行,黑白交替,當一方出現五個子連成一條線,即判斷勝方,彈出訊息框,顯示勝方,可重新開始遊戲 二 專案基本...