栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Funcode游戏设计C语言小飞虫

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Funcode游戏设计C语言小飞虫

Funcode游戏制作

文章目录
  • Funcode游戏制作
  • 前言
  • 一、基于Funcode的小飞虫
  • 二、使用步骤
    • 1.游戏效果图
    • 2.游戏代码
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、基于Funcode的小飞虫

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、使用步骤 1.游戏效果图

2.游戏代码
#include 
#include "CommonAPI.h"
#include "LessonX.h"

//
//
int			g_iGameState		=	0;		// 游戏状态,0 -- 游戏结束等待开始状态;1 -- 按下空格键开始,初始化游戏;2 -- 游戏进行中
//
void		GameInit();
void		GameRun( float fDeltaTime );
void		GameEnd();
float       g_gameTime=10.f;
float       g_gameScore=0.f;
float		f_PaiziPosX=0.f;
float		f_PaiziPosY=0.f;
//拍子的初始角度  通过拍子的初始角度来进行拍的动作
float		fOldPaiziRotation=0.f;
//定义最高分数
int g_HightScore[5];
//拍子的重置时间
float		fResetPaiziRotation=0.f;
//定义变量 初始化虫子的初始位置  初始速度 最终位置
float		fPosx=0.f,fPosy=0.f,fPosxToWhere=0.f,fPosyToWhere=0.f,fSpeed=0.f;
//定义变量 初始化屏幕的上下左右坐标
float		fScreenLeft=0.f,fScreenRight=0.f,fScreenTop=0.f,fScreenBottom=0.f;
//定义结构体 表达多个虫子
struct FlyBug
{
	char szName[128];
	int iScore;
}FlyBugs[15];
//定义飞虫的数量
int g_iCount=0;
//==============================================================================
//
// 大体的程序流程为:GameMainLoop函数为主循环函数,在引擎每帧刷新屏幕图像之后,都会被调用一次。


//==============================================================================
//
// 游戏主循环,此函数将被不停的调用,引擎每刷新一次屏幕,此函数即被调用一次
// 用以处理游戏的开始、进行中、结束等各种状态. 
// 函数参数fDeltaTime : 上次调用本函数到此次调用本函数的时间间隔,单位:秒
void GameMainLoop( float	fDeltaTime )
{
	switch( g_iGameState )
	{
		// 初始化游戏,清空上一局相关数据
	case 1:
		{
			GameInit();
			g_iGameState	=	2; // 初始化之后,将游戏状态设置为进行中
		}
		break;

		// 游戏进行中,处理各种游戏逻辑
	case 2:
		{
			// TODO 修改此处游戏循环条件,完成正确游戏逻辑
			g_gameTime-=fDeltaTime;  //实现倒计时的效果 一次减 一秒
			if( g_gameTime>0 )
			{
				GameRun( fDeltaTime );
			}
			else
			{
				// 游戏结束。调用游戏结算函数,并把游戏状态修改为结束状态
				g_iGameState	=	0;
				GameEnd();
			}
		}
		break;

		// 游戏结束/等待按空格键开始
	case 0:
	default:
		break;
	};
}

//==============================================================================
//
// 每局开始前进行初始化,清空上一局相关数据
void GameInit()
{
	g_gameTime=10.f;  //设置时间为10秒
	f_PaiziPosX=dGetSpritePositionX("paizi");
	f_PaiziPosY=dGetSpritePositionY("paizi");  //获取排子的位置
	fOldPaiziRotation=dGetSpriteRotation("paizi");//获取拍子角度的
	fScreenBottom=dGetScreenBottom(); //返回值下边坐标值
	fScreenLeft=dGetScreenLeft();  //返回值左边坐标值
	fScreenRight=dGetScreenRight(); //右边坐标值
	fScreenTop=dGetScreenTop();  //返回值上边坐标值
	dSetSpriteVisible("kaishi",0);    //将开始文字隐藏起来
	dSetTextValue("Time",g_gameTime);   //文字精灵显示某个数字
	dSetTextValue("Score",g_gameScore); 
	dShowCursor(0);  //将鼠标隐藏
	AddFlyBugs();//建立五个大虫 七个小虫
	for (int i=0;i0)
	{
		fResetPaiziRotation-=fDeltaTime;  //获取程序运行的时间
		if(fResetPaiziRotation<0)
		{
			dSetSpriteRotation("paizi",fOldPaiziRotation);
		}
	}
	dSetTextValue("Time",g_gameTime);  //获取g_gameTime实时显示文字倒计时信息
	dSetTextValue("Score",g_gameScore);//设置分数
	
}
总结

该游戏主要通过结构体数组来控制生成的飞虫的属性,
缺点是飞虫的数量是确定的。
且学习到了用 sprintf 函数 拼接字符
sprintf(FlyBugs[g_iCount].szName,"feichong_%d",g_iCount);

源代码及完整游戏资源

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/274965.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号