如何解决2D滚动游戏摄像机背后的基本概念是什么?
一个简单的问题-我是否正确地认为,用于视差样式滚动游戏的基本2D相机基本上依赖于跟随玩家的相机的伪平移效果;但是实际上,游戏世界环境正在围绕一个非常静态的游戏角色移动,从而产生了视差摄像机的效果。
或者,的确存在一种更深层的算法来满足虚拟摄像机的滚动,角色坐标遍历环境并跟随玩家的视线吗?
我最初以为前一种方法是前进的道路,但是当涉及到例如同一场景中的两个角色彼此无关时,它们会移动。前一种方法会遇到问题,因此我怀疑采用这种逻辑的真正方法有些简单,但现在却无法理解。
感谢任何帮助/链接到适当的资源。
P.S。我之前使用我描述的第一种方法,使用WPF为前端编写了原型相机功能。结果基本,但是有效。但是我怀疑在专业/独立标题中,基于移动环境,摄像机逻辑遵循更复杂的范例,而不是伪平移。
if (this.playerPositionXAxis >= this.cameraRightLimit)
{
// Camera shift/offset algorithm. RIGHT movement.
double offset = Math.Abs(this.playerPositionXAxis - this.cameraRightLimit);
this.MainCanvas.Margin = new Thickness(this.canvasMarginLeft -= offset,-8,-10);
this.cameraRightLimit += offset;
this.cameraLeftLimit += offset;
this.translateCamera = true;
}
if (this.playerPositionXAxis <= this.cameraLeftLimit)
{
// Camera shift/offset algorithm. LEFT movement.
double offset = Math.Abs(this.playerPositionXAxis - this.cameraLeftLimit);
this.MainCanvas.Margin = new Thickness(this.canvasMarginLeft += offset,-10);
this.cameraLeftLimit -= offset;
this.cameraRightLimit -= offset;
this.translateCamera = true;
}
this.CameraLimitsTextBlock.Text = "Camera limit LEFT: " + this.cameraLeftLimit.ToString() +" Camera limit RIGHT: " + this.cameraRightLimit.ToString();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。