返回首页
  主页 > 编程 > c语言 >

游戏精灵窗口边界碰撞检测

2019-07-26 21:03 阅读:75 来源:智宇SEO自媒体

轻量级的C++游戏引擎,不可能所有的方面都面面俱到的实现了。能傻瓜式操作的都是企业级商用游戏引擎。比如智宇现在用到的游戏引擎,就没有实现精灵的窗口碰撞检测。必须自己去游戏逻辑里写。
但不管什么样的引擎,总归于精灵X坐标和Y坐标与窗口边界的距离判断而已。

KGE_DECLARE_SMART_PTR(Tiger);
class Tiger
	: public Sprite
{
	FramesPtr run_frames;	        // 跑步序列帧
	FramesPtr stand_frames;	        // 站立序列帧
	bool facing_left;		// 面朝左或面朝右
	bool running;			// 是否正在跑步
	Direction running_direction;	// 跑步方向
	int x;                          //老虎x坐标
	int y;                          //老虎y坐标
	float distance;                 //老虎速度
	bool maxwidth = false;          //碰撞窗口右边
	bool minwidth = false;          //碰撞窗口左边


x	= this->GetPositionX();  //取得精灵X坐标
y	= this->GetPositionY();  //取得精灵Y坐标


/* 老虎x坐标大于窗口宽度-30 */
if ( x >= WINDOW_WIDTH - 30 )
{
	maxwidth	= true;
	minwidth	= false;
}else if ( x <= 30 )
{
	minwidth	= true;
	maxwidth	= false;
}


if ( maxwidth || !minwidth )
{
	/* 老虎转方向 */
	SetScaleX( facing_left ? -1.0f : 1.0f );
	Move( -distance, 0 );
}else  {
	SetScaleX( facing_left ? 1.0f : -1.0f );
	Move( distance, 0 );
}



上一篇:C++实现游戏人物行走跑动攻击效果

下一篇:没有了

返回首页
利博娱乐计划 利博娱乐官网 利博娱乐APP 利博娱乐走势图 利博娱乐下载 利博娱乐官方 利博娱乐网站 利博娱乐怎么玩 利博娱乐官方 利博娱乐靠谱吗 利博娱乐代理 利博娱乐骗局 利博娱乐投注 利博娱乐倍率 利博娱乐开奖 利博娱乐漏洞