将相机/视口实现到2D游戏的最实用方法是什么?
我读过,应该存储对象的世界位置而不是相对于屏幕的位置?
现在的情况:
我实现了一个简单的2D游戏,从XML文件加载对象和关卡。当前,级别XML文件如下所示:
<map>
<tile obj="ground" x="0" y="555" />
<tile obj="ground" x="16" y="555" />
<tile obj="ground" x="32" y="555" />
...
</map>
所有对象都有一个二维矢量“位置”,将其当前位置存储在屏幕上。
我想要的是:
图片中:
- 相机为800x600或640x480
- 块和精灵为16x16像素。
- 世界大小可能有所不同
- 坐标可能应该相对于世界而不是相对于屏幕进行标准化?
- 视口相对于播放器x,y的位置,并在播放器到达相机死区时移动(类似于此视频)。
我问的是伪示例/文章,但是如果您需要了解我在开发中使用的东西:SDL和C / C ++。
1
在这里的评论中添加您的第三个链接,我可以将其添加到您的问题中。
—
MichaelHouse
这是我对摄影机死区的意思:youtube.com/watch?
—
v=89TRXUm8jMI
您好@Arthur Wulf White,想详细点说吗?谢谢。
—
bluekirai 2012年
您提到的相机是普通2d相机的特定版本,仅用于偏移视图(不旋转和缩放)。跟踪行为可以通过检查玩家角色和摄像机之间的距离来实现,如果距离太大,则移动摄像机。
—
wolfdawn 2012年