- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个简单的游戏,但我似乎无法旋转一个简单的多边形。我在下面做了一个测试。
我在上面初始化了 (ShapeRenderer shape
) 和 (shape = new ShapeRenderer()
)。
下面是我的代码。
float x1 = 200;
float y1 = 200;
float x2 = 250;
float y2 = 200;
float x3 = 250;
float y3 = 250;
float x4 = 200;
float y4 = 250;
float[] f = {x1,y1,x2,y2,x3,y3,x4,y4};
Polygon polygonTest = new Polygon();
polygonTest.setVertices(f);
polygonTest.setOrigin(x1+25,y1+25);
polygonTest.rotate(-45f);
shape.begin(ShapeRenderer.ShapeType.Line);
shape.polygon(polygonTest.getVertices());
shape.end();
旋转后,我使用 polygonTest.getRotation()
仔细检查了它的旋转值,它返回了正确的值。我也尝试过参数中没有“f”(浮点)指示符的正值,但没有成功。
我读过的关于这个特定问题的所有线程都提到了 setOrigin 然后轮换,但它对我不起作用。
感谢任何帮助!
最佳答案
Polygon
的
getVertices()
方法返回多边形的局部顶点,不缩放或旋转。
使用 getTransformedVertices()
返回缩放、旋转后多边形的顶点。
这是测试代码:
public class GdxTest extends ApplicationAdapter {
ShapeRenderer shapeRenderer;
Polygon polygonTest;
@Override
public void create() {
shapeRenderer= new ShapeRenderer();
float x1 = 200;
float y1 = 200;
float x2 = 250;
float y2 = 200;
float x3 = 250;
float y3 = 250;
float x4 = 200;
float y4 = 250;
float[] f = {x1,y1,x2,y2,x3,y3,x4,y4};
polygonTest = new Polygon();
polygonTest.setVertices(f);
polygonTest.setOrigin(x1+25,y1+25);
polygonTest.rotate(-45f);
}
@Override
public void render() {
Gdx.gl.glClearColor(0,0,0,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
if (polygonTest.getRotation()<360){
polygonTest.setRotation(polygonTest.getRotation()+1);
}else
polygonTest.setRotation(0);
shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
shapeRenderer.polygon(polygonTest.getTransformedVertices());
shapeRenderer.end();
}
@Override
public void dispose() {
shapeRenderer.dispose();
}
}
关于java - 如何在 ShapeRenderer LibGDX/Java 中显示旋转的多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49021463/
TL;DR 我的 ShapeRenderer 会渲染线条,但只是有时。 我看过这些帖子:LibGDX: ShapeRenderer drawing... nothing , Libgdx NESTED
我正在使用 libgdx 开发一个新应用程序,并且在我的源代码中我使用 shaperenderer 类,但是由于我购买了我的新平板电脑(Acer Iconia One 10 B3-A20),我的应用程
我不知道为什么 ShapeRenderer 对象没有在屏幕上绘制圆形。我尝试修改代码以包括建议,例如将 shaperenderer 对象的投影矩阵和变换矩阵更改为批处理矩阵,甚至在 shaperend
注意:我是 LibGdx 与 android 的新手。 我正在创建著名游戏 Color Switch 的克隆以供练习。 我使用 ShapeRenderer 来创建球和移动圆圈。在阅读了有关 Shape
我正在尝试使用 libgdx 形状渲染器绘制一条特定宽度的线。我关注了这个 link 问题是如果我指定更多的线宽,即超过 9,它不会显示增加的宽度。超过 9 或者我指定 20 或 100 像素,它将具
我决定使用 Libgdx ShapeRenderer 来绘制多边形。我想看看这有多高效,让相机在渲染时穿过 x 轴,但奇怪的事情发生了,请看这张图片: 在右侧,我没有移动相机,但在左侧,我通过移动相机
我正在尝试在 Libgdx 中创建圆角正方形我已经很好地绘制了正方形,现在在每个角上使用一个圆来绘制圆角 shapeRenderer.begin(ShapeType.Filled);
如何围绕中心旋转矩形?我在 ShapeRenderer 中找到了旋转功能: void rotate(float axisX, float axisY, float axisZ, float angle
我已经尝试了几种将圆圈绘制到生成坐标的解决方案。它不起作用,但我不知道 filledCircle 方法有什么问题?我该如何更换它? 留言: FilledCircle cannot be resolve
我使用 SpriteBatch 绘制纹理和 ShapeRenderer 绘制一些形状。 这是我在 Actor 中的代码 @Override public void draw(Batch batch,
当我使用 ShapeRenderer 时,它总是出现像素化。但如果我在 Photoshop 中以相同的尺寸绘制形状,它会非常平滑且干净。 我的方法如下: package com.me.actors;
我正在尝试让一个简单的矩形在屏幕上移动。我已经定义了我的对象并分离了更新和渲染的任务。我知道我必须在 Gamerenderer 中放置一些东西,但不知道使用什么代码来引用我的对象。任何帮助将非常感激。
我想在 shaperenderer 中绘制一个二维矩形。那没问题。但我想在这个矩形上创建一个自定义着色器。 所以我不需要纹理,我只想要一个带有自定义着色器的矩形。是否可以?怎么办? 我的矩形现在是渐变
我正在开发一款包含大量旋转变换的游戏,但我遇到了一个看似非常简单的问题 - 我认为我做错了什么。 我用 ShapeRenderer 绘制一个三角形,如下所示: shapeRend.begin(Shap
我已经使用顶点数组定义了一个形状: float[] points = new float[]{50,60,50,70,60,70, 60,60,50,60}; 我在这里画这个: shapeRende
我正在尝试使用带有此代码的 ShapeRenderer 来实现淡入淡出效果: Gdx.gl.glEnable(GL20.GL_BLEND); Gdx.g
我使用 ShapeRenderer 绘制了一个实心圆,现在我想将此圆绘制为透明圆。我正在使用以下代码来做到这一点:但圆圈并不透明。另外,我检查了 libgdx API 和 wiki,它说需要创建 Ca
我是 libgdx 新手。我正在尝试使用 libgdx 框架编写一个基本的 Android 游戏 是否有可能用给定的图像填充用 libgdx ShapeRenderer 绘制的矩形? 如果是,如何实现
我制作了一款小行星游戏,但在使用不同的屏幕尺寸时遇到了问题。是的,我知道视口(viewport),但就我而言,我认为这行不通。我尝试使用它,但我的对象不是图像。相反,它们是由 ShapeRendere
我正在尝试使用 LibGDX 上的类进行一些 JUnit 测试,但在尝试初始化所述类时遇到 NullPointerError,这可以追溯到使用 ShapeRenderer。 这是我初始化的类: imp
我是一名优秀的程序员,十分优秀!