我对火焰引擎和它的性能是新手.

我有两个组件:

  1. 播放器组件
  2. 火炮组件

这个 idea 是让枪组件在玩家移动时跟随玩家.至于瞄准枪,我该如何让枪部件绕着玩家部件旋转呢?

类似于游戏《核王座》,请看下面的参考:

enter image description here

推荐答案

因此,如果您想要像gif中那样旋转枪支组件,您似乎根本不想真正绕着它自己的轴旋转它.所以你想把枪的位置绕着球员的局部中心旋转.

如果将枪组件作为球员的子组件,则所有位置都是相对于球员的,0,0位于球员的左上角,您希望围绕球员的中心旋转它.

要达到这一点,您可以这样做(以onLoad为单位进行计算,这样您就不会在update循环中创建不必要的Vector2个对象:

final localCenter = player.size / 2;

然后为了得到枪的位置,你首先必须决定你想要的距离玩家的长度,这当然可以像你的例子一样动态改变.

final length = 100;
final gun.position.setValues(length, 0); // This means that the zero angle is straight up
gun.position.rotate(yourAngle, center: localCenter);

Flutter相关问答推荐

如何在容器中移动图标按钮?

无法在Flatter中设计正确的布局

使用ThemeProvider不在亮模式和暗模式之间切换

我不能通过第5步了解Flutter 翼Firebase教程

在setState之后,Ffltter ListView.Builder未更新

SingleChildScrollView在ErrorWidget.builder中不工作

在flutter web上渲染多个Youtube视频

抖动问题:检测到0个或2个或更多具有相同值的[DropdownMenuItem]

在Dart中使用Riverpod代码生成时出现问题(addListener)

Flutter飞溅屏幕即使在修改后仍显示默认徽标和背景色

Flutter中有没有办法区分鼠标左右平移?

如何使用 Material3 创建带有高度的完美白色提升按钮?

使用 Play Integrity API 时,Firebase 电话身份验证问题缺少客户端标识符错误

如何在android中 Select 任何文件/文件路径 - Flutter

ListView 后台可见

Flutter:如何从运行时创建的列表中访问单个子部件的值

Flutter/Riverpod 创建复杂对象的副本,其值在某处发生变化

Android Studio - Electric Eel 2022.1.1 更新 destruct 了 dart 文件图标

Flutter sliver 持久化

Getx Flutter 在更新值时抛出空错误