java-用旋转创建一个简单的精灵多边形

 书友30905431 发布于 2023-02-06 18:31

我正试图在libGDX中制作一个简单的游戏.主精灵是潜艇,可以通过其中心原点(宽度/ 2,高度/ 2)旋转.

这个精灵是唯一一个会在我的游戏中旋转的精灵,也是唯一一个需要多边形的精灵,对于其余的精灵来说,矩形边界框就足够了.我需要创建一个多边形,所以我可以处理交叉点.多边形将是一个非常简单的多边形,只有8个顶点.

如果我知道精灵,旋转和原点的位置,我怎样才能得到多边形的顶点?

这张图片可以准确地解释我想要的东西: 在此输入图像描述

1 个回答
  • 您可以使用多边形并手动定义主体.它可能如下所示,从左下角开始,顺时针方向直到右下角.您当然可以更改这些值并将其调整为精灵.

    float[] vertices = new float[] {
        -2,   -2,
        -2,    2,
        -0.5f, 2,
        -0.5f, 3,
         0.5f, 3,
         0.5f, 2,
         2,    2,
         2,   -2
    };
    
    Polygon submarine = new Polygon();
    submarine.setVertices(vertices);
    

    现在,您可以像精灵一样旋转此多边形,然后移动它并缩放它.只需确保保持多边形和精灵同步.对于碰撞,您可以使用Intersector.

    对于多边形的调试,您可以使用ShapeRenderer在屏幕上呈现它.

    shapeRenderer.begin();
    shapeRenderer.polygon(polygon.getTransformedVertices());
    shapeRenderer.end();
    

    2023-02-06 18:34 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有