美文网首页
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏05

手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏05

作者: java涛仔 | 来源:发表于2022-01-11 13:23 被阅读0次

    项目源码

     项目源码 

    坐标变换

    该类利用java的仿射变换类AffineTransform,实现sprite的平移与缩放操作。该类通常的用法如下: 先调用setOrigin方法,锚定到图像的中心点。 对于图像的平移操作translate:

    先移动到中心点(_at.translate(_cx,_cy));

    平移到指定点(_at.translate(x, y));

    返回到初始点(_at.translate(-_cx,-_cy))

    因为我们有时需要连续的平移操作(比如sprite连续的向右平移),所以应该将这些操作连接在一起(_rat.preConcatenate(_at);)。

    对于图像的缩放操作:

    先移动到中心点(_rat.translate(_cx,_cy));

    缩放(_rat.scale(xscl,yscl));

    返回到初始点(_rat.translate(-_cx,-_cy))

    Sprite

    Sprite.java

    Sprite继承Transform,内部持有一个Image对象。 Sprite构造函数中,加载图像,设置锚定点到图像的中心点,并且将自身平移到屏幕的左上角。

    测试一下

    修改GameApp.java如下:

    sprite =newSprite("res/dog/01.png");sprite.scale(2,2);sprite.translate(200,100);sprite.translate(100,100);

    可以看到图像放大了2倍,并且向右平移了300像素,向下平移了200像素 我们可以暂时注释掉Image的makeTransparent方法调用,这样可以更清晰的看出来图像的平移和缩放。

    相关文章

      网友评论

          本文标题:手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏05

          本文链接:https://www.haomeiwen.com/subject/spdwcrtx.html