视野碰撞方法(推回或强制后退)

时间:2016-02-25 08:08:27

标签: c++ view collision sfml detection

尝试为侧卷轴构建引擎。

我的问题是,从长远来看,将角色运动与简单地伤害我联系起来。我是否应该强迫角色作为绝对角色保留在视野中?

我正在研究控制相对于玩家角色和视野的绘制物体位置的方法。我有一个工作方法;

//(pseudo-code):

level.limit.left = 0;              // level starts at x = 0
level.limit.right = 300;           // level ends at x = 300
view = viewsize(100, 100);         // window (frame-of-view) = 100 by 100
character.position.x = 200;        // current position of character sprite
view.position.x = 200;             // current center position of view
if (userInput.Left = true)         // catches isKeyPressed::left
{        
character.position.x +=1;          // move character left by 1
view.position.x += 1;              // move view left by 1 

//view collision detection
if (view.position.x > 250)
{   view.position.x -= 1;}        

if (view.position.x  < 50 )
{   view.position.x += 1; }

//character collision detection
if (character.position.x > 300)
{   character.position -= 1;  }

if (character.position.x < 0  ) 
{   character.position += 1;  }

这让角色&amp;视图独立地与级别边缘碰撞。但是,如果角色位置变化超过1个字符&amp;查看损失同步。我知道碰撞检测会增长到包含其他精灵。使用这种我没有看到的方法是否存在严重的缺陷?

0 个答案:

没有答案