美文网首页
网易c++------课时21---最简单的飞机游戏代码

网易c++------课时21---最简单的飞机游戏代码

作者: heiqimingren | 来源:发表于2020-10-03 22:18 被阅读0次

https://study.163.com/course/courseLearn.htm?courseId=1004489035#/learn/video?lessonId=1049009037&courseId=1004489035


#include<stdio.h>
#include<stdlib.h>    //清屏命令在这里。
#include <windows.h> //延时10毫秒-sleep
#include <iostream>
#include <conio.h>       //getch()----不用按回车,就可以输入字符。    
using namespace std;


int main()  //弹跳小球,完整版
{
    int j, i;
    int x = 0;
    int y = 5;

    char input;
    int isFired = 0;       //判断,是否需要开枪,是一个状态值!  
    int iskilled = 0;     //判断目标是否被杀死。
    int ny = 5;

    
    while (1)
    {

        system("cls");    //清屏函数
        //========生成一个靶子=================
        if (iskilled==0)  //当障碍物,靶子的状态是0的时候,可以显示这个靶子。
        {
            for (i = 0; i < ny; i++)
            {
                printf(" ");       //这些都是空行!
            }
            printf("+\n");  //靶子显示出来
        }
        //========生成一个靶子=================
        
        
        //处理激光射线部分的代码。================
        if (isFired==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");       //放出激光射线
                //=============放出激光之后,进行一些状态判断================
                if (y+0==ny)   //如果子弹碰到障碍物,死亡状态就变成1======y+2=ny,为什么加2,这是因为y和ny有偏移,y+2.正好对着ny,激光设置时候左边有2个空格
                {
                    iskilled = 1;
                }
                isFired = 0;   //开火状态为1,闭火状态为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");
        //输出飞机的图形================


        //scanf("%c", &input);  //获取键盘输入的字符,需要按回车确认!
        input = getch();
        if (input=='s')
        {
            ++x;
        }
        if (input == 'w')
        {
            --x;
        }
        if (input == 'a')
        {
            --y;
        }
        if (input == 'd')
        {
            ++y;
        }
        if (input == ' ') //按一下空格,然后就开火状态为1 
        {
            isFired = 1;
        }
    }
    return 0;
}




结果如图:


image.png

相关文章

网友评论

      本文标题:网易c++------课时21---最简单的飞机游戏代码

      本文链接:https://www.haomeiwen.com/subject/qprguktx.html