Articles of 角度

为弹丸产生一个角度,使其面向下方

我正在游戏引擎中构建游戏。 这个游戏是一个2D平台,玩家可以左右移动,并跳下。 游戏的一部分是从“天空”坠落的实物抛射物的存在。 当这些对象被创建(在天空中)时,冲动被应用于他们朝向玩家的当前位置[图1]。 请注意,使用对象位置处的玩家位置一次施加冲量,而不是一直施加到移动玩家的位置。 射弹应该朝着玩家的位置移动,而不一定是移动到位置 – 它会移动 – 但是当它到达目标时,物体开始向上curl[图2]。 我已经尝试了几个公式来设置每个刻度(每个帧)的角度,即 Set Angle Toward: PlayerWasAtX, LayoutHeight Set Angle Toward: Self.X, LayoutHeight Set Angle Toward: If (Self.X > Self.PlayerWasAtX) Then (Self.X – PlayerWasAtX) / 2 Else (PlayerWasAtX – Self.X) / 2 , LayoutHeight 其中, PlayerWasAtX是玩家在弹丸创建时存储的位置, LayoutHeight是canvas的总高度, LayoutHeight是投射者的X坐标。 在这些例子中,例子1会curl,例子2会使物体始终保持垂直向下,即使在曲线下降时,iirc例子2也只是起了古怪的作用,或者它的作用与例子1相同。 任何帮助,将不胜感激。 这里是我的参考图片:

如何拍摄触摸的方向

我是新来的电晕SDK(我也吸三角),我试图实现这一点: 从玩家射出一颗子弹,朝着用户触摸点的方向射击,但始终以相同的速度射击,无论玩家的触摸距离多远。 我尝试了几个解决scheme。 经过一番研究,我发现我应该用两个三角形来度量角度,然后分别用角度的cos和sin作为x和y的值。 但是当我尝试这样做,我得到相当随机的结果。 从我想要达到的距离越近,就可以使用deltavariables作为X和Y(乘以速度因子)。 它的工作,但速度变化的基础上,我所触摸的球员多远,我希望速度是固定的。 这是我最新的代码(使用罪和COS) local math, physics = require("math"), require('physics') physics.start() physics.setGravity( 0, 0 ) display.setStatusBar( display.HiddenStatusBar ) local screenW, screenH = display.contentWidth, display.contentHeight local playerX, playerY = (screenW / 2), (screenH / 2) local player = display.newRect( 0, 0, 30, 30 ) player.x = playerX player.y = playerY — local […]

枪手单位的3D旋转射击目标

我正在开发一个场景,通过一个特定的炮手部队来射击目标,但是我很困惑于用枪射击物体的实际逻辑。 我正在3D环境中工作。 我们的目标的位置向量即[x,y,z]及其旋转向量[x,y,z,angle]以及Gun的位置向量即[x,y,z]及其旋转向量[x,y,z,angle] 。 枪有两个组成部分,即一个TopDondur和一组枪,这两个组件都沿y轴旋转,即只有旋转vector[0 1 0 angle]才能将枪手单元移动到目标。 什么样的动作应该让枪手部队同时旋转TopDondur和Barrels ,即TopDondur旋转到目标, Barrels将相对于目标上下移动。

桥由一个角度块做成

我想让玩家select2点(向量)。 有了这两点,应该创建一个地板。 当这些点与x轴平行时,很容易,只需计算简单分割所需的块的数量,循环遍历该数量(x和y),然后继续按该块的大小增加坐标。 当2个vector不平行于一个轴,例如45度角时,麻烦就开始了。 2个红点将是玩家select的地点。 (这些街区确实不是正方形的。) 。 我如何处理这背后的math?

指向坐标function

我正在做一个游戏,我需要一艘敌方船只指向玩家。 这里是我提出的等式: 角度= sin -1 ( abs(y 1 -y 2 ) / √(x 1 -x 2 ) 2 – (y 1 -y 2 ) 2 ) 这基本上把斜边的反正弦除以斜边。 不幸的是,这个algorithm不起作用。 任何想法,我需要改变? 请注意,角度是一个弧度值。

投射一个物体来自的方向线

我想创建一个方向线(曲线/线性),取决于方向来自哪里。 在一些游戏中,类似于愤怒的小鸟,显示的虚线指南提供了游戏对象的去向。 我想创造这样的东西。 但不是从出发点。 当我的意思是起点,它只是意味着从gameObject被释放的地方的虚线指引。 我想要的是从终点的虚线指引。 但是,这个终点是固定的。 我如何想象这是我有一个gameObject。 当这个gameObject靠近这个终点时,它会显示虚线的指引。 我问太多了吗? 对不起,如果我是,如何编写这个代码的结构性指导将是伟大的。 谢谢。 编辑 所以这就是我想要的视觉。 在图(A)中,它显示了整个path的虚线。 然而,我想要的是图(B)所示。 它分为两部分,一个橙色和红色的path。 我只想要红色的path。 但是为了清楚的理解,我列入了红色的path。 我只想要物体落在图(B)的那个点上。 我不想要的是从图(C)。 因为它没有在图(B)的地方着陆。 我不想让它显示任何东西。 我只想要图中的红色虚线出现在图(B)的那个点附近或即将降落。 谢谢

2D角度自上而下的相机的角度来看

我想创建一个类似于isaac绑定的游戏,这是一个稍微倾斜的自上而下的2D游戏。 在isaac的绑定中,角色沿着一条4path移动和射击,所以当他向东方射击时,角色面向东方,北方,西方和南方也是如此。 在我的游戏中,我需要以任何角度射击,所以如果角色面向东方而子弹正在向东北方向移动,那么看起来会非常糟糕,我考虑创建8个甚至16个角色,角色面对不同的角度。 但是我不知道它会不会好看。 我想知道是否有人遇到这个问题,如果除了切换到3D之外还有什么解决scheme的话,因为目前还不是解决scheme。 在这个图像(以撒的绑定),它可能看起来像玩家在任何给定的角度拍摄,但不是,他在拍摄后立即向左移动。

在Game Maker Studio中,为什么每一步都必须执行图像旋转?

我是一个软件开发人员,试图随便进入游戏开发。 前段时间,我在Steam销售中拿起了Game Maker Studio ,最后我开始使用它,特别是在听说像Undertale和Hotline Miami这样的游戏是这个工作室的产品之后。 我正在通过Shaun Spalding的Game Maker教程来熟悉一些Game Maker的特性和GML的编码语法。 按照这个教程 ,当他说把image_angle = direction; 在我的对象的步骤事件,而不是创建事件来旋转我的对象的精灵。 “为什么你想在每次创建时都设置一个相同的值? 我以我显然天真的心态思考着自己。 但是,请注意,在运行我的项目时,如果image_angle = direction; ,则图像不会旋转image_angle = direction; 是在创建事件,而不是步骤事件。 为什么? 如果image_angle是我的子弹对象的成员,我不应该创建一次就可以设置它吗? 还是不知何故在每一帧重置?

这个字符斜率math有什么问题?

我正在制作一个双向滚动平台游戏,并已经实现了一些代码,应该根据它们所在的表面角度将字符速度转换为X速度和Y速度。 这个实际的math是从一个网页,我不知道这是否正确。 // xSpeed and ySpeed are derived from speed, based on the angle xSpeed = speed * Mathf.Cos(angle); ySpeed = (speed * -Mathf.Sin (angle)) – gravity; 这个角度是用这个代码find的: RaycastHit ground; Physics.Raycast (transform.position, Vector3.down, out ground, 1.5f); Debug.DrawRay (transform.position, Vector3.down.normalized, Color.green, 2, false); if (ground.collider != null) { angle = Vector3.Angle (ground.normal, Vector3.up); } else { […]

重力vector和前向vector到本地航向(偏航),俯仰和滚转

我已经环顾了好几个小时,我根本就不明白。 我是第一个承认我严重缺乏math的人。 所以请保持简单。 我试图得到一个向量围绕另一个向量旋转(角度),所以我可以得到有用的偏航,从所述向量的俯仰和滚动。 这是一个具有向前的向量(当然伴随着向上和向上的向量)的“载体”,它以重力向着它的中心“飞行”在一个行星(球体)上。 这个重力vector也是已知的。 这是我正在看的一个例子: 我正在使用Unity进行实验。 目标是在另一个项目中实现。 因此,Unity的所有权力并不能帮助我find另一个项目的解决scheme。 我收缩到Vector3.Cross(),Vector3.Dot,Math.Cos / Sin / ACos / ASin / Tan / ATan / ATan2等 这是我的代码。 我确实删除了所有我之前尝试过的计算,因为他们都失败了,我宁愿有一个干净的答案。 // Time that debug lines and rays will be displayed for. var duration = Time.deltaTime; // Draws a line through the south/north poles of the sphwere. Debug.DrawLine(Vector3.down * 100, Vector3.up […]