私が作っているゲームでは、パワーアップをエアドロップにしたいと思っています。描いたものよりも大きく描きたい箱のイメージがあります。次に、空中から落としたように見えるように、画像を時間とともに徐々に小さくしていきます。私はうまくいくと思うこのコードを作成しましたが、何らかの理由でうまくいきません。
if(power.getPowerUp()){
double crateX = (int) power.getX();
double crateY = (int) power.getY();
Image crate = power.getCrate();
int crateW = crate.getWidth(null) + 100;
int crateH = crate.getHeight(null) + 100;
if(crateW > 64){
g2d.drawImage(
power.getCrate(), (int) crateX, (int) crateY, crateW, crateH, this );
crateX += .5;
crateX += .5;
crateW -= 1;
crateH -= 1;
}
else {
g2d.drawImage(
power.getCrate(), (int) crateX, (int) crateY, crateW, crateH, this );
}
}
内部にこのメソッドがpaintComponent(Graphics g)
あり、スレッドを使用してグラフィックを再描画します。うまくいかないのはなぜですか?別のクラスの値を使用することと関係がありますか? 徐々に小さくなるようにするにはどうすればよいですか?