这里写自定义目录标题
第一次使用CSDN记录学习过程
学习过程中经常不知道笔记会放在哪里,放网盘有时候编辑起来不是太方便,所以记录一下使用CSDN博客来记录学习过程以及学习笔记,一起与大佬们学习分享。
#C语言游戏开发的学习第一天
今天我在网上找到了C语言学习的一些学习资料,记录一下
打飞机游戏设计
通过scanf函数获取用户的输入来控制小飞机的上下左右,但是会有一个弊端,就是每次输入都必须按下回车键才能执行,不能很好的做到人机交互。所以要用到(#include <conio.h>)里的getch函数,直接获取用户输入的东西。kbhit()函数在用户有键盘输入时返回1,否则返回0;if (kbhit())作用是避免在用户不输入的时候导致游戏暂停。
用的是scanf函数。
#include <stdio.h>
#include <stdlib.h>
int main(){
int x = 5;
int y = 10;
int i,j;
char input;
while(1){
system("cls"); //刷新界面
for(i=0;i<x;i++) //输出飞机上的空格
printf("\n");
for(j=0;j<y;j++) //输出飞机左边的空格
printf(" ");
printf("*"); //输出飞机
printf("\n");
scanf("%c",&input);
if(input == 'a')
y--;
if(input == 'd')
y++;
if(input == 'w')
x--;
if(input == 's')
x++;
}
return 0;
}
用的是getch函数:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(){
int x = 5;
int y = 10;
int i,j;
char input;
while(1){
system("cls"); //刷新界面
for(i=0;i<x;i++) //输出飞机上的空格
printf("\n");
for(j=0;j<y;j++) //输出飞机左边的空格
printf(" ");
printf("*"); //输出飞机
printf("\n");
if(kbhit()){ //判断是否有输入
input = getch();
if(input == 'a')
y--;
if(input == 'd')
y++;
if(input == 'w')
x--;
if(input == 's')
x++;
}}
return 0;
}
这样就能很好的实现人机交互,不需要每移动一下就按一次回车才有反应。