【c語言】小程式遊戲——飛機遊戲(二)
阿新 • • 發佈:2018-12-14
在接下來,我們需要對飛機新增一些屬性:
1.利用鍵盤控制飛機的移動
2.按空格鍵可以發射鐳射
————————————————————————————————————————
NO.1 利用鍵盤控制飛機的移動
首先我們需要了解的是,如果想要通過按鍵來控制飛機的移動,那麼我們具體要怎麼控制呢?
A:需要用到按鍵,什麼按鍵?
B:按鍵之後飛機要怎麼才能移動?
我們可以利用遊戲裡面常用的幾個按鍵來對飛機進行控制→“A,S,D,W”
之後我們瞭解到,如果飛機需要移動就需要在之前的座標系上面進行操作,具體如下
所以,根據圖片,只要在我們按下某個按鍵之後,飛機的座標也隨之跟著變動,就可以達到控制飛機移動的效果啦~
飛機移動程式碼如下
#include <conio.h> void keytouch(); int main() { keytouch(); return 0; } void keytouch() { char key = 0; if(kbhit()) { key = getch(); if(key == 'a') position_y --; if(key == 's') position_x ++; if(key == 'd') position_y ++; if(key == 'w') position_x --; } }
編譯出來的效果不出意外的話就和我們理想的效果差不多啦
————————————————————————————————————————————————————————
當我們可以讓飛機移動時,接下來我們還需要給飛機新增多一個屬性,就是按空格鍵的時候可以發射出鐳射,以消滅敵機
————————————————————————————————————————————————————————
NO.2.按空格鍵可以發射鐳射
這個時候我們還是需要在座標上找出鐳射的座標位置
為了方便以後的程式呼叫,我們需要加多一個鐳射的位置變數:bullet_x,bullet_y
int bullet_x = -1;
int bullet_y = -1;//初始位置為(-1,-1),使得鐳射在座標軸之外不顯示出來,如果設定成(0,0),則一開始會出現在視窗的左上角處
我們設定在按空格鍵的時候在飛機的正上方會出現鐳射,所以
char key = 0;
if(kbhit())
{
key = getch();
if(key == ' ')
{
bullet_y = position_y;
bullet_x = position_x-1;
}
}
一直到這裡,我們的鐳射就算初步完成了,編譯不出錯的時候,按下空格鍵,就可以看到鐳射會出現在飛機的正上方,但是飛機移動鐳射不會隨之移動,而是留在原地,當再次按下空格鍵時,鐳射會再次出現在飛機的正上方。
——————————————————————————————————————————————————————
最後,我們需要讓鐳射動起來,使得鐳射可以擊中敵機
——————————————————————————————————————————————————————
實現鐳射移動很簡單,我們只需要讓鐳射在X軸的座標系一直-1,一直減到-1(超出座標系)就可以了,程式碼如下
if(bullet_x > -1)
bullet_x --;
當再次編譯,按下空格鍵時,我們就可以看到,鐳射可以發射的效果了