1. 程式人生 > >【c語言】小程式遊戲——飛機遊戲(二)

【c語言】小程式遊戲——飛機遊戲(二)

                                   在接下來,我們需要對飛機新增一些屬性:

                                              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 --;

        當再次編譯,按下空格鍵時,我們就可以看到,鐳射可以發射的效果了

                             

———————————————————————————————————————

在接下來,我們還需要新增敵機,為敵機新增屬性等,具體實現請看【c語言】小程式遊戲——飛機遊戲(三)