我正在开发类似于《太空射击》的2D游戏。我为Web和PC开发了它,并且效果很好。我现在将其移植到Android,并且播放器代码有问题。
玩家(太空飞船)将位于屏幕底部,并且在屏幕内从左到右移动。我写了一段代码,将播放器限制在屏幕内,下面是代码:
private float screenx = Screen.width -20;
playerPosScreen = Camera.main.WorldToScreenPoint(transform.position);
if(Input.GetKey(KeyCode.RightArrow) && playerPosScreen.x < screenx)
{
transform.Translate(Vector3.right * speed * Time.deltaTime * 0.4f);
}
if (Input.GetKey(KeyCode.LeftArrow) && playerPosScreen.x > 20)
{
transform.Translate(-Vector3.right * speed * Time.deltaTime * 0.4f);
}
我知道我仍然需要转换上面代码中的一些静态值,这并不是真正的编码方法。
我的问题是如何在Android中执行此操作?我希望播放器停留在屏幕上,即,如果用户通过将其拖动到最左端来移动播放器,则无论他尝试拖动多少,播放器都应停留在屏幕的左上角,并且适用于对。简单来说,我想检测屏幕的左右边缘并将对象限制在这些边缘之内。
我的游戏将处于横向模式。
任何帮助将不胜感激。提前致谢。
此类问题通常在以下庄园中解决:
if(transform.position.x < screenx) {
transform.position.x = screenx;
}
在这里,我们正在检查转换后的播放器是否超出屏幕空间。如果是,我们将其设置为可以达到的最小值-我假设是screenx
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句