2d - 在 Godot 中,如果 vector.y 已达到最大值,如何限制 vector.x?
问题描述
我是godot引擎的新手。我正在尝试制作一款太空射击游戏,但遇到了一个小问题。我正在使用该代码移动我的船:
if button_up.is_pressed():`
velocity += Vector2(acceleration, 0).rotated(rotation + deg2rad(-90))
move_and_slide(velocity)
我做了它,所以船移动到它指向的地方,它工作得很好。但是,当我移动到 1 和 89、91 和 179 等之间的度数时,velocity.x 和 velocity.y 都会继续上升,直到达到 max_speed,这导致我的船直接移动 45、135、225 或 315 度和不是它指向的地方。我想这样做,例如当velocity.x 达到max_speed 时,velocity.y 被限制为它的当前值。可能吗?
提前谢谢你,对不起我的英语
解决方案
在 move_and_slide 之前,做velocity = velocity.clamped(max_speed)
如果它小于最大值,这不会有任何影响,但如果它结束,它将设置为最大值。
推荐阅读
- php - 我们可以在 PHP 7.3 或任何最新版本上运行 Zend 框架 2.0.5 或 2.xx 版本吗?
- java - 如何从 xml 文件迁移到编程配置
- google-cloud-pubsub - 如何使用 Google 监控查询语言从不同的资源类型中获取指标?
- android - 如何从材料日期选择器中选择数据并替换编辑文本字段中的选定日期?
- javascript - 在heroku上成功部署后无法从mongodb检索数据
- magento2 - Magento 2.3 到 2.4 升级 Sales、Cataloge、Customer 后我们找不到任何记录
- amazon-web-services - 从 AWS DynamoDB pyspark AWS 胶水读取数据(不使用动态框架)
- meteor - Blaze Js 模板的条件渲染
- javascript - sweet Alert : 修改一个按钮的位置
- nginx - Nginx缓存无效参数不起作用