概述
我已经创建了Polygon对象来包裹我的飞机(飞机的TextureRegion的大小是256×74,但是这个游戏的大小是70×20).所以:
TextureRegion[] texRegsAirplane = TextureRegion.split(textureAirplane, 256, 74);
Rectangle bounds = new Rectangle(0, 0, 70, 20);
Polygon polygon = new Polygon(new float[]{0,0,bounds.width,0,bounds.width,bounds.height,0,bounds.height,0,0});
在我的更新功能之后,我更新它的位置:
public void update(float delta){
Vector2 v = getPosition();
v.add(velocity);
polygon.setPosition(v.x, v.y);
}
然后我渲染多边形以了解它的位置:
public void render(SpriteBatch spriteBatch, float pixelPerUnitX, float pixelPerUnitY){
spriteBatch.draw(testTexture,polygon.getX()*pixelPerUnitX, polygon.getY()*pixelPerUnitY,
polygon.getBoundingRectangle().width*pixelPerUnitX,polygon.getBoundingRectangle().height*pixelPerUnitY);
}
最后,我创建了2架飞机,让它们相互飞行,每次迭代我都会尝试检测碰撞,如下所示:
public void detectCollision(){
for(Airplane airplane1 : Airplanes){
for(Airplane airplane2 : Airplanes){
if(Intersector.overlapConvexPolygons(airplane1.getPolygon(), airplane2.getPolygon())){
//COLLISION DON'T HAPPEN!!!
}
}
}
我看到2个矩形相互移动并相交,但overlapConvexPolygons函数不起作用!为什么?
最后
以上就是唠叨热狗为你收集整理的java polygon 用法_java – LibGDX – 正确使用Polygon类的全部内容,希望文章能够帮你解决java polygon 用法_java – LibGDX – 正确使用Polygon类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复