長春理工大學大一下學期物件導向課程設計
本程式於2023年7月完成
這個飛機大戰運用了easyx庫,這個庫可以幫助新手快速上手圖形介面程式設計
地圖選擇
難度選擇
分數模組
雷射模組
…
飛機大戰遊戲是基於windows的桌面設計遊戲,需要實現的功能為:難度選擇(根據敵機的不同移動速度來區分簡單和困難)、文字提示功能和介面背景、遵循一定的規則進行遊戲。
遊戲術語:精靈機(又稱為英雄機,是玩家操控的飛機),敵機(分為小敵機和boss飛機),子彈(包括boss發射的子彈和精靈機發射的子彈), 雷射雷射(精靈機專屬)。
遊戲規則:玩家進入遊戲,進行難度選擇,到地圖介面進行地圖選擇,之後進入遊戲主體,boss在介面上方,無法移動,但是也無法摧毀。boss會在兩個機翼不定時發射飛彈,彈道為直線,精靈機被擊中則遊戲失敗。小敵機隨機重新整理,小敵機一共有四種,隨機在地圖上方重新整理。小敵機沒有發射子彈功能,但是會向下移動。若精靈機和小敵機相撞,則精靈機被撞毀,遊戲失敗。玩家操控精靈機按住space鍵可以發射子彈,子彈可以擊中小敵機和boss發射的飛彈,擊中則摧毀敵機和飛彈,並積1分。玩家操控精靈機按住shift鍵可以發射雷射雷射,雷射可以擊中小敵機和boss發射的飛彈,擊中則摧毀敵機和飛彈,並積2分。玩家還可以操按下↑↓←→鍵控制精靈機上下左右移動躲避飛彈和小敵機。遊戲結束顯示玩家積分。
1.1 精靈機的移動靠main.cpp的 key_scan()實現。
1.2 png格式原生在視窗載入出來是有黑色邊框的,解決方法是在原生載入之前先 載入一張掩碼圖,這樣在視窗上就會只有裡面需要的飛機和子彈的主體。詳見 object.cpp 中的draw()函式。
1.3 子彈和小敵機等有可以同時存在很多的特點,所以每乙個子彈和敵機物件都是用雙向鏈 表儲存的。考慮到開發的便捷性,這裡使用了stl容器中的list。
1.4 讀取鍵盤資料用了_getch()函式,防止回文符的出現。
1.5 通過函式返回傳值到相應函式實現了難度選擇和地圖選擇。
1.6 設定了乙個全域性變數來記錄得分。
1.7 方向和速度用乙個double型別二維陣列以正負以及絕對值大小來體現,需要時可以直接 載入。
1.8 在程式初始化時載入了**。
1.9 開發過程中發現建構函式並不能載入,所以設定相應函式在視窗初始化之前先呼叫以載入
1.10 boss只能發射一枚火炮,所以設定了兩個boss重疊在一起,這樣看起來就是boss能發射兩枚火炮。
提取碼:0nyr
C語言飛機大戰
include include int zdj x,zdj y int zd x,zd y int dj x,dj y int speed int map 21 41 int score int h 20,c 40 牆是1 飛機2 子彈3 敵機4 void start 設定初始值 void star...
飛機大戰 3
今天主要是敵方飛機的建立,下落 前面已建飛機的父類call 2 敵方飛機 function enemyplane hp,x,y,sizex,sizey,score,dietime,sudu,bombplane,srcimage 敵方的飛機型別分為大中小,要隨機下落 飛機的隨機下落,大中小飛機出現頻率...
飛機大戰 一
圖1 遊戲開始 圖2 英雄機,子彈,敵機和小蜜蜂 圖4 遊戲結束 圖5 遊戲暫停 由圖2可以看出遊戲中至少有4個類,hero 英雄機 airplane 敵機 bee 小蜜蜂 bullet 子彈 圖6注 圖6中,英雄機,子彈,敵機和小蜜蜂均為矩形,所以會有x座標和y座標 會在程式中有體現 1.建立4個...