Articles of 方向

dynamic更改从纵向到横向的游戏

我有多个类实现Screen 。 比方说,我想要主菜单屏幕portrait ,然后是播放屏幕 landscape 。 有没有改变orientationdynamic? 我以为我可以开始另一个Activity并有播放屏幕扩展Game 。 而新的Activity将intialize 播放屏幕 。 但是,显然你不能调用startActivity之类的,显然,因为LibGDX是独立LibGDX平台的。 我使用Gdx.graphics.getWidth()和Gdx.graphics.getHeight()来alignmentSprites和Actors ,使它看起来在不同的设备上是“正确的”。 我也试着分别交换Gdx.graphics.getWidth()和Gdx.graphics.getHeight() ,但似乎无法得到精灵和演员正确的位置。

SceneKit – 将旋转vector转换为旋转matrix

我很新,我正在从github上的RPasecky/CubesInSpace学习这个ARKit代码,他/她将视角的旋转vector转换成一个旋转matrix https://raw.githubusercontent.com/RPasecky/CubesInSpace/master/CubesInSpace/MainViewController.swift func calculateCameraDirection(cameraNode: SCNVector4) -> SCNVector3 { let x = -cameraNode.x let y = -cameraNode.y let z = -cameraNode.z let w = cameraNode.w let cameraRotationMatrix = GLKMatrix3Make(cos(w) + pow(x, 2) * (1 – cos(w)), x * y * (1 – cos(w)) – z * sin(w), x * z * (1 – cos(w)) + y*sin(w), […]

设置和维护Unity的旋转方向

我试图做一个分为6个部分的旋转轮。 每个部分都标有一个以该部分为中心的游戏对象。 玩家旋转车轮后,它会旋转,直到开始减速。 然后,轮子根据随机select的部分在中心移动并停止。 我使用下面的代码在x轴上向0方向旋转​​轮子。 此代码工作正常,轮子旋转正常,但只有当选定的部分在x轴上超过0。 float rotateFloat = (((randomReward + 1) * 60) – 30) – transform.rotation.z; Quaternion targetRotation = Quaternion.Euler(new Vector3(0, 0, rotateFloat)); transform.rotation = Quaternion.RotateTowards(transform.rotation, targetRotation, f_difX * Time.deltaTime); 我做了一些挖掘,发现Quaternion.RotateTowards()find最接近目标的方向,并使用该方向旋转(这导致旋转方向的问题)。 例子(见图):玩家滑动旋转,randomReward设置为旋转轮上的#5,当轮子慢下来时,轮子开始旋转,开始向中心移动。 然后它将停止沿着滑动的方向旋转,并将向另一侧旋转(因为到中心的距离更靠近左侧)。 无论哪个靠近中心,我怎样才能将它设置为按照相同的方向滑动? 而且,如果有更好的方法来做到这一点,请赐教。 谢谢。

获取在Unity中实例化的GameObject

我怎样才能从另一个游戏对象获得一个游戏对象? 如果我知道,GameObject我想要实例化(使用函数Instantite())我想从中获取它的GameObject。 如果没有解决scheme,我怎么能find应该移动实例化子弹的方向? 我的意思是应该是1或-1。

从现有的旋转创建任意方向的旋转

我正在Unity中开发一款游戏,目前我有一个位于原点的游戏对象(对象A)。 我有这个游戏对象(对象B)的一个孩子,这是在Z轴上的10个单位。 当我旋转对象A时,它会导致对象B从原点以10个单位进行轨道运动。 就这样说,我有许多游戏对象的轨道相同的方式。 我希望(在任何时候)能够产生一个新的游戏对象距离对象B一定的距离。这个特定的距离实际上会在球体周围60度,从对象B的任意方向。当我创建一个新的游戏对象时,我将创建一个新的轴心点对象(对象C)和该轴心点(对象D)的一个新的子元素,距离Z轴10个单位。 我知道我需要从对象A的当前旋转创建一个新的旋转,但是这需要在一个随机的方向,新的旋转应该是在这个方向60度。 让我知道,如果没有意义,或者如果你需要任何其他信息。 我真的不知道如何去确定这些旋转,但我目前正在尝试使用Unity的Quaternion类,我相信这个类会工作,但我想我需要退后一步,看看是否有其他人有更好的方法去这个。 感谢帮助!

确定绘制正方形的方向

对不起,这个愚蠢的问题,但我没有想法,不知道如何search这个。 :/ 我试图通过使用开始和结束位置来确定绘制正方形的方向。 问题是我只需要一个方向(X或Y)作为答案,而不是2的组合。 为了显示: 在Origin中单击鼠标光标,将其移动到Destination将创建一个正方形。 我想得到的预期方向是向下的,就像侧面的箭头指向的那样。 (Y方向下) 这意味着我不能使用X或Y上的最大距离,因为在这种情况下,X会更大,但Y是我之后的那个。 起源和目的地可以在任何地方,并在任何方向,同样的广场大小。 任何想法/建议? :S

我怎样才能在游戏中支持多种分辨率和多种方向?

我正在编写一个移动的Android和iOS游戏。 这个游戏类似于涂鸦跳跃,但没有滚动。 在我的游戏中,我显示一个应该覆盖整个屏幕的背景图片。 最重要的是,我画了一些构成平台的32×32平铺图像。 我有三个控制button,显示在屏幕的底部。 分数显示在屏幕的顶部。 我试图确保这个游戏可以在任何分辨率下工作,并且可以从风景模式旋转到纵向模式,反之亦然。 玩家应该能够改变方向而不会丢失任何平台。 我已经find了几个方法来做到这一点,但是如果你locking方向或倾斜图像,他们似乎只能工作。 缩放内容 将无法正常工作,因为它会歪斜图像太多,看起来不专业。 通过信箱缩放内容并保持宽高比 这引入的黑条可能会变得压倒性的。 例如,如果我将960×640分辨率的设备旋转为纵向,则新的分辨率将为640×960。 当我试图执行这个,它给了我可怕的结果。 肖像: 景观: 用单独的值缩放x,y轴 scaling factor (on x-axis) = screen width in pixels / target width in pixels scaling factor (on y-axis) = screen height in pixels / target height in pixels 这个方法改变了我试图避免的坐标系的边界。 使用虚拟视口 我喜欢这个想法,但它似乎还不能适应方向的变化。 纵横比的变化似乎是很大,当你尝试这种方法的景观和肖像。 我在这个主题上find的一些很好的链接可以在这里find http://blog.gemserk.com/2013/01/22/our-solution-to-handle-multiple-screen-sizes-in-android-part-one/ http://v-play.net/doc/vplay-different-screen-sizes/#approaches-for-content-scaling 我也曾经想过,只有在背景图像拉伸的时候,在方向改变的时候重新计算一切(玩家和平台)的新位置。 但是,我不确定这将如何影响碰撞检测和实时跳跃。 […]

Google游戏服务显示方向

我使用LibGDX开发游戏,并使用BaseGameUtils来实现Play游戏服务。 它工作得很好。 但是我的游戏是在横向模式下,所以当我打电话排行榜或者成就的时候,它会以横向模式打开。 我不要那个。 我希望游戏服务只能以肖像打开。 在清单文件中没有BaseGameUtils条目,我在BaseGameUtils模块中检查了Android Manifest文件,但是在那里没有<activity> 。 游戏服务显示时如何改变方向?

在Unity中改变运动的方向时翻转x

在Unity中改变运动的方向时,什么是最容易和最有效的方式来翻转SpriteRenderer x? 我使用Input.GetAxis()为了获得用户input。 当它返回0我想什么都不做,当它返回正数时,我想在一边是在SpriteRenderer中翻转X,当返回的数字是负的另一边。 到目前为止,我想出了一个使用variables的解决scheme,该variables将保持关于玩家转向哪一方的信息,并在必要时翻转x。 但是我相信这不是一个有效的方法,甚至不是一个方便的方法,因为我的代码会变得更大更混乱。

从多variables函数计算正确的法向

我正在使用一个平面模型,通过使用函数来抵消上轴上的顶点看起来像波浪: Sin(vertex.x * frequency)*幅度+ Cos(顶点.y *频率)*幅度 以前,我只用一个variables做了这个,通过得到导数,从中得到切线方向,并得到与切线垂直的方向,从而得到我的法线方向,从而能够确认我的法线方向是正确的。 然后,我把他们翻过来让他们面对正确的道路。 现在我已经添加了第二个variables,我试图采取类似的方法。 我在哪里取两个偏导数,得到每个的切线方向,从中得到每个的正常值,然后将法线加起来得到我的最终法线方向。 但是,我得到的结果似乎不同于统一计算的结果,这是正确的。 以下是将我的结果与正确的Unity计算进行比较的图像: 有没有人知道我的错在哪里我的计算? 我认为这可能与我正在进行正常化的时间和地点有关,但是我已经testing了很多不同的选项,似乎无法使其看起来正确,现在正在质疑我的两种法线结合的方法是错误的。 感谢您的任何意见。 下面是我用来做这个的代码的一个片段。 offsetAmount = Mathf.Sin(vertices[i].x * _Frequency) * _Amplitude + Mathf.Cos(vertices[i].y * _Frequency) * _Amplitude; private void DifferentiateNormals() { // Loop through every normal and calculate it manually for (int i = 0; i < vertices.Length; i++) { // The derivative […]