Scroll 用物理滚动二维世界

Scroll 用物理滚动二维世界,scroll,physics,collision,Scroll,Physics,Collision,我在写一个物理侧滚游戏。在动手之前,我开始专注于物理和图形绘制。起初,我想让每件事都保持静止(不滚动)。 在参考了很多教程之后,我终于来到了这里。这套教程涵盖了简单游戏所需的大部分基础/高级物理。通过遵循本教程,我已经用三角形、长方体等对象创建了我的2d世界,。。。。。每个不同的对象顶点保存为向量,用于计算碰撞、反弹等。。。。。。。若我在x/y方向施加力,那个么响应是相当好的,只要每个可碰撞的对象都是静态的,它就可以完美地工作。 现在,我正在努力学习如何根据方向(右/左)移动所有向量,同时更新向

我在写一个物理侧滚游戏。在动手之前,我开始专注于物理和图形绘制。起初,我想让每件事都保持静止(不滚动)。 在参考了很多教程之后,我终于来到了这里。这套教程涵盖了简单游戏所需的大部分基础/高级物理。通过遵循本教程,我已经用三角形、长方体等对象创建了我的2d世界,。。。。。每个不同的对象顶点保存为向量,用于计算碰撞、反弹等。。。。。。。若我在x/y方向施加力,那个么响应是相当好的,只要每个可碰撞的对象都是静态的,它就可以完美地工作。
现在,我正在努力学习如何根据方向(右/左)移动所有向量,同时更新向量的新变化以进行碰撞。我对这种翻译在基于瓷砖的环境中的工作原理有一些基本的了解。但是对于非基于瓷砖的世界来说,什么是最佳实践。提前感谢。

如果要移动所有内容,最好的方法就是滚动虚拟相机

恐怕我对flash一无所知,但我认为它有一些操作虚拟相机、默认变换矩阵或类似的功能


如果可以操作虚拟相机或默认变换矩阵,则不需要更改任何其他内容。

如果使用OpenGL

我从记忆中得到了满足,所以你需要检查精确性,但我认为有一种GL方法可以统计位置和你所看到的。这就是你所要做的。
您可以在“世界坐标”中指定它,这样各个对象的x、y坐标就不会改变,就像您的纹理一样。

您是想滚动整个屏幕,还是只是让特定对象四处移动?我想在x、y两个方向上滚动整个场景。如果有人能解释PSP流行游戏LOCO ROCO背后的方法,那就太好了。在线版在这里,谢谢你的回复。我不是用flash开发这个,而是用cocos2d和我自己的矢量物理,用objective-c/c为iphone编写这个游戏。正如你所说,我已经尝试了滚动整个CCLayer,但我无法使其完美平滑。我将尝试探索相机和openGL ES。有人能解释一下相机的x,y坐标应该如何分别转换为播放器的运动吗?我熟悉OpenGL,但不熟悉OpenGL ES,所以我不知道它们的具体变化。在opengl中,您需要设置glMatrixMode(GL_MODELVIEW)以操纵模型视图矩阵,然后使用glTranslatef或glLoadMatrixf方法(并在opengl之外维护您自己的视图矩阵)操纵虚拟相机。我通常维护自己的矩阵,因为在一个复杂的程序中更容易访问所有需要的数据。