我正在制作一个玩家发射波浪的游戏(如潮汐而不是谐波),我有一个系统,我可以实现它移动一段距离并且它会消失。它也会从实体中反弹(我可能会添加得不太好)。我想知道是否有办法使这更加现实和可分离,而不是完全改变。 这是曲线(我使用的是slick2d)。
one = new Vector2f((float)referenceX, (float) referenceY);
two = new Vector2f((float) (referenceX + ((width * amplitude) / Math.PI)), (float)(referenceY - (height * amplitude)));
three = new Vector2f((float) ((referenceX + width) - ((width * amplitude) / Math.PI)), (float)(referenceY - (height * amplitude)));
four = new Vector2f((float)(referenceX + width),(float)(referenceY));`
new Curve(one, two, three, four);
通过移动参考点并扩展宽度来移动。
这是碰撞代码
if ((s.player.getBounds().getWidth() / 2) + s.player.getBounds().getX() >
(e.getBounds().getX() + e.getBounds().getWidth()) )
{
this.referenceX = e.getBounds().getX() + (e.getBounds().getWidth() / 4);
this.referenceY = e.getBounds().getY();
}
else if ((s.player.getBounds().getWidth() / 2) + s.player.getBounds().getX() <
e.getBounds().getX())
{
this.referenceX = e.getBounds().getX();
this.referenceY = e.getBounds().getY();
}
else
{
this.referenceX = s.player.getBounds().getX() + 4;
this.referenceY = e.getBounds().getY();
}
我应该如何解决这个问题,以使波浪看起来更逼真?
答案 0 :(得分:2)
看一下代码,我猜测波浪看起来并没有正确地从玩家身上扩散,而且可能没有弹跳好。即使你的波浪从最简单的实体上反弹,就像垂直于波浪路径的直墙一样,你会发现很难用曲线或甚至一堆曲线以逼真的方式表示波浪。我想你会发现用更多的光线投射方式来模拟波浪要容易得多:
不要让玩家拍摄波浪,而是想到他们拍摄固定数量的粒子: