gpt4 book ai didi

game-engine - 2D 射击游戏(ikaruga 等...)真的在屏幕空间中玩吗?

转载 作者:行者123 更新时间:2023-12-01 13:28:32 26 4
gpt4 key购买 nike

抱歉,如果这是一个愚蠢的问题,但我正在开始像 ikaruga 等那样的太空射击游戏......并且注意到子弹,玩家,敌人不会随着滚动而移动。这种类型的游戏是否代表了屏幕空间中的一切?

我的意思是,你可以在背景中有一个滚动/旋转的环境,但碰撞等...只是在屏幕空间吗?

基于此,您如何看待这个游戏流程:

1) 玩家在屏幕坐标中2) 敌人在被唤醒之前都是世界坐标,此时他们被转换为屏幕坐标(只使用当前世界滚动位置)。3) 敌人和玩家的子弹是屏幕坐标。4) 如果我们在世界中有障碍物(比如在 2D 游戏中我们有一些代表障碍物的图 block )我们将不得不将子弹、敌人、玩家转换为世界以检查与 map 的碰撞。

优点:- 移动的一切都是屏幕空间,易于检查动态实体之间的碰撞等......

缺点:- 我们必须将每个实体转换为世界坐标以检查障碍物。

另一种方法是让世界上的所有东西都移动玩家(星际飞船)、子弹等...以相同的滚动量移动并应用它自己的速度。

优点:-一切都是屏幕空间映射/实体,因此不需要转换。

缺点:- 我们必须遍历每个实体,根据滚动速度对其位置进行修复,以模拟屏幕空间中的事物。

您认为最好的解决方案是什么?。我现在正在实现第一个。

提前致谢,十六进制转储。

最佳答案

我会避免使用两种不同的跟踪系统。如果你想让障碍物拦截子弹/敌人,很快就会让人头疼。

当我设置我的卷轴时,我有一个单独的子弹数组,我将它与标准游戏对象分开,以便我可以用必要的信息更新每个数组。我将我的子弹放在世界空间中,但如果我想出现在屏幕空间中,我根本不会将世界玩家移动转换为他们的更新。

我会推荐这样的方法,将相似的对象分组,然后告诉它们对不同的刺激使用react,而不是将它们放在两个不同的世界中,然后让您的子系统(碰撞、渲染)来处理这些问题。因为您最终会为子系统中的每个函数编写 2 个版本。

关于game-engine - 2D 射击游戏(ikaruga 等...)真的在屏幕空间中玩吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7191516/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com