用C語言製作一個最簡單的飛機遊戲!

編程語言 C語言 一起皮一下才開心 技術 IT程序員小文 2018-12-16

第一步,控制飛機移動

還記得小時候玩的飛機大戰遊戲嗎?按a、s、d、w鍵後控制飛機的上下左右移動。

在這裡我們通過按a、s、d、w鍵來改變座標x,y的值,從而控制飛機的移動。

下面是代碼:

用C語言製作一個最簡單的飛機遊戲!

下面是實現效果:可以實現飛機的上下左右移動

用C語言製作一個最簡單的飛機遊戲!

(小編推薦一個學C語言/C++的學習群:788649720,入群即送C/C++全套學習資料,滿滿的乾貨!)

在上面的代碼中,用到了以下幾個函數:

1:輸入函數getch(),頭文件(#include<conio.h>)

與scanf函數相比,getch()不需要回車就可以得到輸入的字符。

2:kbhit()函數

它的作用是在用戶有鍵盤輸入時返回1,否則返回0;在沒有鍵盤輸入時if(kbhit())下面的語句不會運行,從而避免了用戶不輸入,遊戲就暫停的情況

至於輸出飛機圖案的那段代碼,就不用細說了吧?就是數學問題。

看著挺多,其實可以分為兩個部分,一部分是輸出飛機圖案,另外一部分是控制飛機的移動。

第二步,讓飛機發射激光

我們接下來要實現的是當我們按下空格鍵時,飛機可以發射激光子彈。

在這裡我們通過定義一個變量"isFire"用來記錄飛機是否處於發射子彈的狀態。

這裡我們要對兩個部分都增加一部分代碼:

第一部分,新增加了一個變量isFire,同時利用了if判斷語句,

當變量isFire為0時,即沒有發射子彈,執行與原來一樣的操作,輸出飛機上面的空格即可。

而當變量isFire為1時,飛機發射子彈。我們就需要執行else下面的操作,輸出激光。

用C語言製作一個最簡單的飛機遊戲!

第二部分,增加當用戶輸入空格時,變量isFire的值變為1。

用C語言製作一個最簡單的飛機遊戲!

這是最後的執行效果:

用C語言製作一個最簡單的飛機遊戲!

第三步,增加打靶操作

我們可以增加一個靶子‘+’,來控制我們的飛機發射激光擊中它。

在這裡,我們新增一個變量isKilled用來儲存靶子是否被擊中。

當isKilled為0時顯示靶子,當isKilled為1時靶子消失。

這是我們要增加的代碼:

首先新增兩個變量,

用C語言製作一個最簡單的飛機遊戲!

增加輸出靶子的代碼:

用C語言製作一個最簡單的飛機遊戲!

增加擊中靶子後的效果:

用C語言製作一個最簡單的飛機遊戲!

這是最後的效果圖:

用C語言製作一個最簡單的飛機遊戲!

(小編推薦一個學C語言/C++的學習群:788649720,入群即送C/C++全套學習資料,滿滿的乾貨!)

如果有像我一樣,想要自學C語言的,可以關注我,不定期放教程,由簡入難,一起學習,一起進步!

這是本文的源碼:

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

int main()

{

int i, j;

int x = 20;

int y = 20;

char input;

int isFire = 0;

int k = 20; //設立一個靶子,放在第一行的k列上。

int isKilled = 0 ;

while(1)

system("cls"); //清屏函數

if(!isKilled) //輸出靶子。

for(j=0;j<k;j++)

printf(" ");

printf("+\n");

}

if(isFire == 0)

for(i=0;i<x;i++)

printf("\n"); //輸出飛機上面的空格

else

for(i=0;i<x;i++) //輸出激光

for(j=0;j<y;j++)

printf(" |\n");

if(y+2==k) //+2是因為激光在飛機的正中間,距離飛機最左邊兩個座標。

isKilled = 1;

isFire = 0;

//輸出飛機圖案

printf(" *\n");

printf("*****\n");

printf(" * * \n");

//控制飛機移動

if(kbhit()) //判斷鍵盤是否有輸入

input = getch();

if(input == 'a')

y--;

if(input == 'd')

y++;

if(input == 'w')

x--;

if(input == 's')

x++;

if(input == ' ')

isFire = 1;

return 0 ;

相關推薦

推薦中...