2021-11-16跳高高小游戏进阶版,新增随机障碍物,详细注解

#include <iostream>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
#include <string>
#include <ctime>

using namespace std;
bool gameOver;//判断游戏开始结束
///分数
int  score;
//障碍物随机数//
int m=1,m1=1,m2=1;
/两个相邻障碍物随机距离数///
int r;
//声明函数
void Setup();
void Draw();
void Input();
void Logic();
地图范围///
const int width = 40;
const int height = 10;
///地图坐标//
/*
x
|
|
|                  *
|         o        *
|——————————>y
*/

//主角坐标///
int x = 8;//x是高度
int y = 20;//y是横向长度
int n = 38;//地图横向坐标
int up = 0;//跳跃初始值
int s;

/主函数
int main(void)
{
	Setup();
	while (!gameOver)
	{
		Draw();
		Input();
		Logic();
		Sleep(20);
	}
	return 0;
}

///初始化程序///
void Setup()
{

	gameOver = false;
	score = 0;
}
//游戏逻辑/
void Logic()
{
	//障碍物移动///
	n--;
	if (n+r == 0)///当障碍物到最左边时
	{
		/障碍物回归左边/
		n = 38;
		/生成随机数/
		srand((unsigned)time(NULL));
		s = rand();
		srand(s);
		m =  rand() % 2;	
		m1 = rand() % 2;
		m2 = rand() % 2;
		r = (rand() %14) + 6;
	}

	加分判断/
	if (n == 20||n+r==20)
		score = score + 1;

	///碰撞死亡/
	if (x == 8 && y == n && m==1)
		gameOver = true;
	if (x == 7 && y == n&& m1==1)
		gameOver = true;
	if (x == 6 && y == n && m2 == 1)
		gameOver = true;
	if (x == 8 && y == n+r && m == 1)
		gameOver = true;
	if (x == 7 && y == n+r && m1 == 1)
		gameOver = true;
	if (x == 6 && y == n+r && m2 == 1)
		gameOver = true;
///主角跳跃实现代码	
	if (up == 1 && x > 4)
	{
		x--;
		if (x == 4)
			up = 2;
	}
	if (up == 2)
	{
		x++;
		if (x == 8)
			up = 0;
	}
}

绘制背景板
void Draw()
{
	system("cls");
	for (int i = 0; i < width + 2; i++)//画顶部边界
		cout << "*";
	cout << endl;
	for (int i = 0; i < height; i++)//画内部图像
	{
		for (int j = 0; j <= width; j++)
		{
			if (j == 0)
				cout << "*";
			/主角位置//
			if (i == x && j == y)
				cout << "O";

			
			/障碍生成//
			///第一个障碍///
			//else if (i == 8 && j == n && m==1)
			else if (i == 8 && j == n )
				cout << "#";
			else if (i == 7 && j == n&& m1==1)
				cout << "#";
			else if (i == 6 && j == n&& m2==1)
				cout << "#";
			第二个障碍

			//else if (i == 8 && j == n+r && m == 1)
			else if (i == 8 && j == n+r)
				cout << "#";
			else if (i == 7 && j == n+r && m1 == 1)
				cout << "#";
			else if (i == 6 && j == n+r && m2 == 1)
				cout << "#";
			
			///绘制地面///
			else if (i == 8 && j < width)
				cout << "_";
			绘制边框///
			else if (j == width)
				cout << "*";
			///绘制背景空白处///
			else
				cout << " ";
		}
		cout << endl;
	}
	for (int i = 0; i < width + 2; i++)//画底部边界
		cout << "*";
	cout << endl;
	//cout << up << endl;
	//调试参数
	cout << "score: " << score << endl;
	cout << "m2: " << m2 << endl;
	cout << "m1: " << m1 << endl;
	//cout << "m : "  << m << endl;
	cout << " m: 1"<< endl;
	
	cout << "r: " << r << endl;
}

/输入///
void Input()
{

	if (_kbhit())
	{
		switch (_getch())
		{
		case 72://小键盘↑键,控制跳跃
			up = 1;
			break;
		case 'x'://x键退出游戏
			gameOver = true;
			break;

		}
	}
}
/随机数不够随机,关卡重复了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: HTML5 青蛙高高游戏源码是一个基于HTML5和JavaScript编写的简单Web游戏。玩家控制一只青蛙,跃并躲避障碍物,最终达到最高分数。 游戏的核心代码是一个事件监听器,当玩家按下空格键,青蛙将跃。同,一个计器将启动,随着间的推移使障碍物不断上升,难度逐渐增加。 游戏的图形界面使用了HTML5 Canvas元素,它可以直接绘制图形和动画。青蛙和障碍物都是用Canvas绘制出来的。 源码中还包括一些常用的JavaScript库,如jQuery和Bootstrap。这些库可以使开发者更快地完成游戏开发,并提供更好的用户体验。 除了游戏逻辑和界面外,源码还包括一些CSS样式表,用于美化游戏页面的外观。例如,游戏中使用了动画效果来增强用户交互体验。 总之,HTML5 青蛙高高游戏源码是一个简单而有趣的Web游戏,可以帮助开发者了解HTML5和JavaScript的基本语法和技术,并提供了一个入门级别的项目作为参考。 ### 回答2: 为了学习html5游戏开发,我寻找了一些简单的游戏源码来进行学习和实践,其中第一个选择的就是青蛙高高游戏的源码。 青蛙高高游戏的源码包括HTML、CSS和JavaScript三个文件,非常简洁明了。其中HTML文件定义了游戏窗口的样式和布局,CSS文件则定义了游戏中各个元素的样式,如青蛙、平台、背景等。JavaScript文件则包括游戏的核心逻辑和交互实现。 游戏玩法很简单,玩家需要控制青蛙上一些不断上升的平台,不断跃升高并尽可能长间地生存下去。游戏中还加入了一些随机道具和加成效果来增加游戏乐趣和挑战性。 值得一提的是,这个游戏源码设计非常合理,代码结构清晰,易于扩展和维护。同,它还应用了一些常用的HTML5技术,如Canvas和Audio等,使得游戏在表现和效果上都很出色。 总的来说,这个青蛙高高游戏的源码适合初学者进行练手和学习,也可以作为进一步深入HTML5游戏开发的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮牛牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值