飞机小游戏流畅版

提示:新人入坑,采用的新手模板草草写就,望谅解


前言

在做课下的游戏设计作业时,因为一时乐趣加入了一些功能,最后的完成代码可玩性不错,于是决定分享出来。


提示:以下是本篇文章正文内容

在这里插入图片描述

一、代码原理和功能

代码采用了数组的方式,像一张无数格子(长宽相乘)组成的地图来存储每一格元素,并用数字赋值,以在打印时对应输出边框,飞机,子弹,敌机这些元素。若有用户输入,则对应改变格子的赋值,以及将之前的格子赋值为空白(移动的位置更新,即新的位置赋值元素,旧的位置将元素清除)。
同时为了扩展玩法,加入了难度选择,增强我方实力,RGB炫彩光效界面等功能,详情请阅读代码,如进入游戏界面按下y则开启RGB,按下l可以增强实力等等。
注释较多,应当容易看懂,当然,在程序员眼里,别人的代码都是(粗鄙之言)。
以下直接附上源代码:

二、成果展示

1.源代码

代码如下(示例):

#include <stdio.h>
#include<iostream>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>

using namespace std;
#pragma warning(disable:4996)//屏蔽了4996的错误

#define High 30  // 游戏画面尺寸
#define Width 50
//#define BadNum 1 // 敌机个数
int BadNum = 1; // 敌机个数

// 全局变量
int defu = 0; //德芙巧克力!
int life = 0; //生命值 高难度下赋值为1,在分数达到落败分后加分续上一命
int MaxSpeed = 3;  //敌机最大速度
int MaxWidth = 2;  //最大弹幕数 即两边增加的弹幕数
int RGB = 7, on = 0;//rgb颜色参数,开关   通过改变RGB数值输出不同的符号颜色
int Plane_x, Plane_y; // 飞机位置
//int enemy_x[BadNum], enemy_y[BadNum];  // 敌机位置
int enemy_x[30], enemy_y[30];  //敌机最大数量
int map[High][Width] = { 0 }; // 二维数组存储游戏画布中对应的元素
						// 0为空格,1为飞机*,2为子弹|,3为敌机@,4为 |,5为-
int score; // 得分
int FireWidth; // 子弹宽度
int EnemySpeed = 10; // 敌机移动速度

void HideCursor()//用于隐藏光标    //这两个函数无脑写上并加到打印里就可以解决刷新的闪烁问题
{
	CONSOLE_CURSOR_INFO cursor_info = { 1, 0 };//第二个值为0表示隐藏光标
	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}

void gotoxy(int x, int y)  //光标移动到(x,y)位置
{
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD pos;
	pos.X = x;
	pos.Y = y;
	SetConsoleCursorPosition(handle, pos);
}

void start() // 数据初始化
{
	Plane_x = High - 2;
	Plane_y = Width / 2;
	map[Plane_x][Plane_y] = 1;
	int j, k;
	for (k = 0; k < High; k++) {//初始化边框
		for (j = 0; j < Width; j++) {
			if (j == 0 || j &#
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值