C语言实现简单的飞机大战游戏

目录
  • 一、项目描述和最终的成果展示
  • 二、输出一个飞机模型
  • 三、实现控制飞机移动的功能
  • 四、添加发射激光功能
  • 五、添加靶子和分数统计功能

本文实例为大家分享了C语言实现简单飞机大战游戏的具体代码,供大家参考,具体内容如下

一、项目描述和最终的成果展示

项目描述: 显示出一个飞机,并可以控制移动,发出激光,打靶练习。

效果展示:

二、输出一个飞机模型

先输出一个飞机模型。后面再进一步完成控制飞机的功能。

代码如下:

//输出飞机图案
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main(void)
{
        int i,j;
        int x=10;
        int y=10;
        char input;

        //输出飞机上面的空行
        for(i=0;i<x;i++)
        {
            printf("\n");
        }

        //输出飞机左边的空格
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf("  *\n");
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf("*****\n");
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf(" * * \n");    
    return 0;
}

效果图如下:

三、实现控制飞机移动的功能

用scanf()函数来实现控制飞机移动的功能

代码如下:

#include<stdio.h>
#include<stdlib.h>
//用scanf来完成飞机的移动
int main(void)
{
    int i,j;
    int x=5;
    int y=10;
    char input;

    while(1)
    {
        system("cls");
        //输出飞机上面的空行
        for(i=0;i<x;i++)
        {
            printf("\n");
        }

        //输出飞机左边的空格
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf("  *\n");
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf("*****\n");
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf(" * * \n");
        scanf("%c",&input);
        if(input == 'a' || input == 'A')
        {
            y--;
        }
        if(input == 'd' || input == 'D')
        {
            y++;
        }
        if(input == 'w' || input == 'W')
        {
            x--;
        }
        if(input == 's' || input == 'S')
        {
            x++;
        }
    }
    return 0;
}

效果图如下:

你会发现一个弊端 就是它会显示你输入了啥,这样是特别的不友好的。
所以我们要用 getch() 这个函数, 它是不会显示回显的。即,不会出现我们输入的是啥。
这样就很好了,达到了我们的目的。

用getch()函数来实现控制飞机移动的功能

代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
//用scanf来完成飞机的移动
int main(void)
{
    int i,j;
    int x=5;
    int y=10;
    char input;

    while(1)
    {
        system("cls");
        //输出飞机上面的空行
        for(i=0;i<x;i++)
        {
            printf("\n");
        }

        //输出飞机左边的空格
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf("  *\n");
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf("*****\n");
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf(" * * \n");
        input=getch();
        if(input == 'a' || input == 'A')
        {
            y--;
        }
        if(input == 'd' || input == 'D')
        {
            y++;
        }
        if(input == 'w' || input == 'W')
        {
            x--;
        }
        if(input == 's' || input == 'S')
        {
            x++;
        }
    }
    return 0;
}

效果图如下:

四、添加发射激光功能

代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
//用getch来完成飞机的移动
int main(void)
{
    int i,j;
    int x=10;
    int y=10;
    char input;
    int isFire=0;//用来判断是否发射

    while(1)
    {
        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(" ");
                printf("  |\n");
            }
            isFire = 0;
        }

        //输出飞机左边的空格
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf("  *\n");
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf("*****\n");
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf(" * * \n");
        input=getch();
        fflush(stdin);
        system("cls");
        if(input == 'a' || input == 'A')
        {
            y--;
        }
        if(input == 'd' || input == 'D')
        {
            y++;
        }
        if(input == 'w' || input == 'W')
        {
            x--;
        }
        if(input == 's' || input == 'S')
        {
            x++;
        }
        if( input == ' ')
            isFire = 1;
    }
    return 0;
}

效果图如下:

五、添加靶子和分数统计功能

代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
#include<time.h>
#include<conio.h>
//用getch来完成飞机的移动
int main(void)
{
    int i,j;
    int x=10;
    int y=10;
    char input;
    int isFire=0;//用来判断是否发射
    int score=10;

    int ny = 30;        //  靶子的位置
    int isKilled = 0; //判断是否击中
    int yanshi=0;    //  延时靶子的时间
    system("color 09");

    while(1)
    {
        if(yanshi<66)//延时 让靶子显示
        {
            yanshi++;
        }
        else
        {
            srand(time(0));
            ny=rand()%80+5;
            yanshi=0;
        }
        printf("分数:%d\n",score);
        if(!isKilled)//没有击中靶子,继续显示靶子
        {
            for(j=0;j<ny;j++)
            {
                printf(" ");
            }
            printf("▼\n");
        }
        else//说明击中靶子,刷新靶子
        {
            yanshi=66;
            isKilled=0;
        }

        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(" ");
                printf("  |\n");
            }
            isFire = 0;
        }

        //输出飞机左边的空格
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf("  *\n");
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf("*****\n");
        for(j=0;j<y;j++)
        {
            printf(" ");
        }
        printf(" * * \n");
        input=getch();
        fflush(stdin);
        system("cls");
        if(input == 'a' || input == 'A')
        {
            y--;
        }
        if(input == 'd' || input == 'D')
        {
            y++;
        }
        if(input == 'w' || input == 'W')
        {
            x--;
        }
        if(input == 's' || input == 'S')
        {
            x++;
        }
        if( input == ' ')
            isFire = 1;
        if( (ny==y+2) && (input==' ') )//判断是否击中靶子
        {
            isKilled=1;
            score=score+5;//分数增加
        }
    }
    return 0;
}

效果图如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言之飞机大战游戏

    本文实例为大家分享了C语言之飞机大战游戏的具体代码,供大家参考,具体内容如下 技术原型 1.void gotoxy(int x, int y) 函数,该函数可以使光标去到(x,y)的位置进行打印: 2.链表,用于存储状态: 3.windows.h中有非阻塞输入,_kbhit(): 4.随机生成数: 5.视觉暂留: 6.碰撞检测: 7.清屏函数: 8.设置边界: 技术路线 1.设置一个边界: 2.维护一个子弹的列表: 3.维护一个敌机的列表: 4.初始化飞机的位置: 5.每隔一秒钟生成一架敌机,生

  • C语言版飞机大战游戏

    C语言版飞机大战,供大家参考,具体内容如下 不多说直接上代码 #include<iostream> #include<windows.h> #include<conio.h> #include<time.h> #include<string> using namespace std; /*=============== all the structures ===============*/ typedef struct Frame { COOR

  • C语言控制台实现字符飞机大战

    本文实例为大家分享了C语言实现字符飞机大战的具体代码,供大家参考,具体内容如下 先看看效果吧 大一的时候做的,当时没有好的代码习惯,所以代码有点乱,代码直接复制就能用了,功能可以自行拓展. 代码: #include <stdio.h> #include <stdlib.h> #include <conio.h> int main () { int life=6;//生命 int i,j/*循环*/,plane_x,plane_y/*飞机所在坐标*/,a; plane_x

  • C语言实现飞机大战小游戏完整代码

    大一课设做的飞机大战,可以进行登入和注册,这个是利用单链表做的,源代码已经给出,这个是最基本的飞机大战模式,我设置了几个功能,比如排行榜之类的.排行榜是用结构体数组做的,已及冒泡排序,并且在文件里保存信息.比较简单. 这个是注册页面规范: 这个是登入页面: 游戏菜单:  飞机大战页面:  话不多说,直接上代码 以下是源代码  #include"stdio.h" #include"windows.h" //用于获取窗口的句柄与屏幕控制 #include"co

  • C语言实现简单飞机大战

    本文实例为大家分享了C语言实现飞机大战的具体代码,供大家参考,具体内容如下 定义四个函数实现飞机大战 #include<stdio.h> #include<windows.h> #include<conio.h> //定义全局变量 int high,width; //定义边界 int position_x,position_y; //飞机位置 int bullet_x,bullet_y; //子弹位置 int enemy_x,enemy_y; int score; in

  • C语言用封装方法实现飞机大战游戏

    目录 一.项目描述和最终的成果展示 二.用函数进行封装 三.新型的发射子弹功能 四.实现移动的敌机功能和更正屏幕闪烁,清除光标功能 五.订正一些BUG和完成一些美化 本文实例为大家分享了C语言用封装方法实现飞机大战游戏的具体代码,供大家参考,具体内容如下 这是上一次的飞机大战游戏的项目.项目: 最简单的飞机大战游戏 上次没有用函数进行的封装.这次在上次的基础上进行封装和一些功能的优化. 一.项目描述和最终的成果展示 项目描述:   在上一次的基础上用函数进行了封装,对于一些功能也进行了一些优化.

  • C语言代码实现飞机大战

    本文实例为大家分享了C语言实现简单飞机大战的具体代码,供大家参考,具体内容如下 这个游戏的功能很单一,也就是"飞机大战",哈哈哈哈.总共只有300多行代码左右,你也可以想想它会有多简陋,把它复制下来编译一下可以直接执行,需要的同学可以自取~ PS:我运行的环境是 dev c++,前提你要在C99的环境中执行 以下是源代码 #include<stdio.h> #include<stdio.h> #include<windows.h> //将用户从键盘获

  • C语言实现简单的飞机大战游戏

    目录 一.项目描述和最终的成果展示 二.输出一个飞机模型 三.实现控制飞机移动的功能 四.添加发射激光功能 五.添加靶子和分数统计功能 本文实例为大家分享了C语言实现简单飞机大战游戏的具体代码,供大家参考,具体内容如下 一.项目描述和最终的成果展示 项目描述: 显示出一个飞机,并可以控制移动,发出激光,打靶练习. 效果展示: 二.输出一个飞机模型 先输出一个飞机模型.后面再进一步完成控制飞机的功能. 代码如下: //输出飞机图案 #include<stdio.h> #include<st

  • Java实现简单的飞机大战游戏(控制主飞机篇)

    本文实例为大家分享了Java实现简单的飞机大战游戏,控制主飞机的具体代码,供大家参考,具体内容如下 接着上一篇:Java实现简单的飞机大战游戏(敌机下落篇),首先我们需要明白,在控制一架飞机的时候,需要通过对键盘的监听.上下左右比较简单,因为是对单一按键的监听,在这里我们可以通过switch语句,通过读取键盘上每个按键的ASCII值.但是如果想要实现边飞行边发射子弹,又或者是实现斜飞怎么办?这里就需要通过对多个按键的监听.解决的方法是:单一的方向控制我们还是使用switch语句,但是如果牵扯到2

  • Java实现简单的飞机大战游戏(敌机下落篇)

    本文实例为大家分享了Java实现简单飞机大战游戏,敌机下落的具体代码,供大家参考,具体内容如下 在实现这个游戏之前,我们首先需要知道项目可能要用到哪些知识点: 重绘,线程,双缓冲,数据结构的应用 差不多是这大概有这些,如果不够的话我们再加.首先,我们应该实现敌机下落,在这里大概思路和利用线程使小球下落差不多.不同的是,我在这里用到了三种敌机,分别为小.大.BOSS机三种.然后给予这三种敌机不同的下落规则(即速度.出现的时间.是否伴随子弹的发射等等)来给游戏适当的增加点难度. 以下是我的大概设计思

  • python实现简单的飞机大战游戏

    本文实例为大家分享了python实现飞机大战游戏的具体代码,供大家参考,具体内容如下 1.准备环境 下载python(这里建议不需要安装最新的,好像pygame还没有对3.8支持的包,我也没去试),安装pygame模块. 进入cmd: 输入“pip install pygame”——>显示“successfully”安装成功. 2.代码块: import sys#退出程序 import pygame class Settings():   def __init__(self):     self

  • python实现简单的飞机大战

    本文实例为大家分享了python实现简单的飞机大战的具体代码,供大家参考,具体内容如下 制作初衷 这几天闲来没事干,就想起来好长时间没做过游戏了,于是就想做一个游戏练练手,为了起到一个练习的目的就使用了自己不是太熟练的python这门语言来编写,代码都有备注,大家可以直接看代码,这个代码我是在python3.1的环境下写的,大家需要可以直接下载我这里的资源,图片和代码打包到了一起的,因为是第一次使用python做游戏,有什么不足的地方望大佬斧正. 游戏思路 首先我们分析飞机大战这个游戏属于一个平

  • 500行代码使用python写个微信小游戏飞机大战游戏

    这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手. 帮助蹲厕族.YP族.饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手 / 右手有节奏有韵律的朝着同一个方向来回移动起来! 这是史诗级的发明,是浓墨重彩的一笔,是-- 在一阵抽搐后,我结束了游戏,瞬时觉得一切都索然无味,正在我进入贤者模式时,突然想到,如果我可以让更多人已不同的方式体会到这种美轮美奂的感觉岂不美哉? 所以我打开电脑,创建了一个 plan_game.py-- 先

  • JavaScript实现飞机大战游戏

    本文实例为大家分享了canvas ,js 实现一个简单的飞机大战,供大家参考,具体内容如下 预览图: 代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport"

  • Pygame实战练习之飞机大战游戏

    导语 承载童年的纸飞机你还会叠嘛? 如果你是个80后或者90后,那你应该记得小时候玩的纸飞机. 叠好后,哈口仙气,飞出去,感觉棒棒哒. ​ 虽然是一个极其简单的玩具,但那时候,很多熊孩子能傻傻地玩上一整天. 今天带大家制作一款彩色版本另一个版本的飞机大冒险~ 欢迎阅读往期另一个飞机大战的文章:python开发飞机大战游戏. Are you ready? 一起开启飞机大冒险吧~ ▼▼▼ 正文 首先准备好飞机大冒险的图片: ​ 环境安装:主要游戏模块pygame. pip install pygam

随机推荐