C游戏编程02

飞机游戏

简单飞机移动

#if 1

#include <stdio.h>
#include <stdlib.h>
#include <conio.h> // getch()函数

/*
飞机游戏:通过按键控制飞机移动 
a: 向左移动
s: 向下移动
w:向上移动
d:向右移动

读取键盘的输入
scanf():按下字符后还必须按下回车键
getch():只要有按键按下即可
kbhit():异步检查是否有按键按下:有返回非0; 没有按键动作就返回0
*/

int main() {
	// 飞机位置
	int x = 10;
	int y = 5;
	int input; // 键盘输入

	while (1) {
		system("cls");
		// 画飞机
		for (int i = 0; i < y; i++) {
			printf("\n");
		}
		for (int i = 0; i < x; i++) {
			printf(" ");
		}
		printf("*");

		if (kbhit()) {
			input = getch();
			switch (input) {
			case 'a':
				x--;
				break;

			case 's':
				y++;
				break;

			case 'w':
				y--;
				break;

			case 'd':
				x++;
				break;

			default:
				break;
			}
		}
	}

	system("pause");
	return 0;
}

#endif

#if 1

#include <stdio.h>
#include <stdlib.h>
#include <conio.h> // getch()函数

/*
飞机游戏:通过按键控制飞机移动 
a: 向左移动
s: 向下移动
w:向上移动
d:向右移动

读取键盘的输入
scanf():按下字符后还必须按下回车键
getch():只要有按键按下即可
kbhit():异步检查是否有按键按下:有返回非0; 没有按键动作就返回0
*/

int main() {
	// 飞机位置
	int x = 10;
	int y = 5;
	int input; // 键盘输入

	while (1) {
		system("cls");

		// 在目标位置上画飞机
		for (int i = 0; i < y; i++) {
			printf("\n");
		}
		// 画飞机本体
		for (int i = 0; i < x; i++) {
			printf(" ");
		}
		printf("  *  \n");
		for (int i = 0; i < x; i++) {
			printf(" ");
		}
		printf("*****\n");
		for (int i = 0; i < x; i++) {
			printf(" ");
		}
		printf(" * *"); 

		if (kbhit()) {
			input = getch();
			switch (input) {
			case 'a':
				x--;
				break;

			case 's':
				y++;
				break;

			case 'w':
				y--;
				break;

			case 'd':
				x++;
				break;

			default:
				break;
			}
		}
	}

	system("pause");
	return 0;
}

#endif

在这里插入图片描述

飞机发射激光

#if 1

#include <stdio.h>
#include <stdlib.h>
#include <conio.h> // getch()函数

/*
飞机游戏:通过按键控制飞机移动 
a: 向左移动
s: 向下移动
w:向上移动
d:向右移动

读取键盘的输入
scanf():按下字符后还必须按下回车键
getch():只要有按键按下即可
kbhit():异步检查是否有按键按下:有返回非0; 没有按键动作就返回0
*/

int main() {
	// 飞机位置
	int x = 10;
	int y = 5;
	int input; // 键盘输入
	bool isFire = false; // 是否发射激光

	while (1) {
		system("cls");

		// 在目标位置上画飞机
		// 飞机上方的部分
		for (int i = 0; i < y; i++) {
			if (isFire) { // 画激光
				for (int i = 0; i < x; i++) {
					printf(" ");
				}
				printf("  |  ");
			}
			printf("\n");
		}
		// 画飞机本体
		for (int i = 0; i < x; i++) {
			printf(" ");
		}
		printf("  *  \n");
		for (int i = 0; i < x; i++) {
			printf(" ");
		}
		printf("*****\n");
		for (int i = 0; i < x; i++) {
			printf(" ");
		}
		printf(" * *"); 

		if (kbhit()) {
			input = getch();
			switch (input) {
			case 'a':
				x--;
				isFire = false;
				break;

			case 's':
				y++;
				isFire = false;
				break;

			case 'w':
				y--;
				isFire = false;
				break;

			case 'd':
				x++;
				isFire = false;
				break;

			case ' ':
				isFire = true;
				break;

			default:
				break;
			}
		}
	}

	system("pause");
	return 0;
}

#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值