????????最近在B站上看到一位老师用VC++6.0编写游戏的教程,自己尝试了一下十分有意思,这里是链接:【C语言/EasyX】做游戏,学编程 C语言/EasyX游戏开发【自取课程资料,评论区置顶】_哔哩哔哩_bilibili
运行程序后会出现下面的界面:
可看到由 * 组成的飞机和由 O 表示的目标物,
点击 W S A D 键可以分别控制飞机的上下左右移动,
点击空格键可以发射激光,当激光击中目标物后,目标位置变化......
开炮!!!!啾啾啾~
下面是完整的代码:
/*
名称:简单的飞机小游戏
语言:C
参考:https://www.bilibili.com/video/BV177411j7wQ?p=21
日期:2021.9.17
作者:莞尔一梦
玩法:程序运行后可看到由 * 组成的飞机和由 O 表示的目标物,
点击 W S A D 键可以分别控制飞机的上下左右移动,
点击空格键可以发射激光,当激光击中目标物后,目标位置变化......
(当激光击中目标并移动飞机后目标位置才发生改变,
╮(╯▽╰)╭这里是一个BUG但我没想到解决方法)
*/
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>
#include<time.h>
int main()
{
int i,j;
int x = 20;
int y = 10;
int ny = 4;
int fire = 0;
int ko = 0;
char input;
srand(time(NULL));
while(1)
{
//目标位置变化
if(ko==1)
{
ny = rand()%14+3;
ko = 0;
}
system("cls");
//显示目标
for(i=0;i<=ny;i++)
printf(" ");
printf("O");
//显示飞机并按响应发射激光
if(fire == 1)
{
for(j=0;j<=y;j++)//发射激光
{
for(i=0;i<=x;i++)
printf(" ");
if(j==0)
printf(" \n");
else
printf(" |\n");
}
if(x+2==ny)
ko = 1;
fire = 0;
}
else
{
for(j=0;j<=y;j++)//显示飞机
{
for(i=0;i<=x;i++)
printf(" ");
printf("\n");
}
}
for(i=0;i<=x;i++)
printf(" ");
printf(" *\n");
for(i=0;i<=x;i++)
printf(" ");
printf("*****\n");
for(i=0;i<=x;i++)
printf(" ");
printf(" * * \n");
//获取键盘响应并反馈
input = getche();
switch(input)
{
case 's':y++;break;
case 'w':y--;break;
case 'a':x--;break;
case 'd':x++;break;
case ' ':fire = 1;break;
}
//规定飞机运动边界
if(x<=0)
x = 0;
if(x>=20)
x = 20;
if(y<=1)
y = 1;
if(y>=10)
y = 10;
}
return 0;
}
?
?
?
|