2

JAVAのアニメーションについてです。すべての画像で同じ寸法を使用すると成功しました。しかし、すべての画像のサイズを同じサイズ (幅と高さ) に保つと、プレイヤーがパンチしたときにバグが発生します。プレイヤーの手が敵の体に触れる前に、敵が死亡した

しかし、アイドル、ラン、パンチの次元が異なる私の場合の他の人. 左向きのパンチアニメーションが非常に奇妙になりました。彼の手が左にヒットした場合、彼の体は右にシフトします. これは、x と y が同じであるためです。

どうすれば修正できますか?指示が必要です:D

私はpng cozサポート透明を使用します

これは2つのオプションで修正できると思います1.衝突検出を修正します2.何らかの条件が発生したときの画像の描画位置を修正します

4

1 に答える 1

2

あなたの問題を想像しようとして、これがお役に立てば幸いです。頭から直接入力しているため、コードにエラーがある可能性があります

  1. 連合の決定を修正する私はこれを試してみます

     Image fist
     Image enemy
        //in paint
    
    g2D.drawImage(fist,x,y,this);
    
    g2D.drawImage(enemy,x1,y1,this);
    
    Rectangle2D myFist = new Rectangle2D.Double(x,y,fist.getWidth(this),fist.getHeight(this));
    Rectangle2D myEnemy = new Rectangle2D.Double(x1,y1,enemy.getWidth(this),enemy.getHeight(this));
    if (myEnemy.contains(myFist){
    //action u want to happend
    }
    

私はこれのような何かが合体の問題を解決するはずだと思う

  1. 描画位置の修正

    //arm image can be the same image if u want
        Image leftArm;
        Image rightArm;
        image headLegsAndTorsoLeft;
        image headLegsAndTorsoRight;
        //where am i looking in game if true i look to the leftside of user thats playing
        boolean turnedLeft
        //in paint
        if(turnedLeft){
        //this lets it look like he is turned to the left with his right arm in the visible behind his left.
        //draw right arm
        g2D.drawImage(rightArm,x,y,this);
        //draw body moved a bit in x coor
                    g2D.drawImage(headLegsAndTorsoLeft,x-3,y,this);
       // draw left arm a bit more in x coor
        g2D.drawImage(leftArm,x-6,y,this);
        }else{
         //this lets it look like he is turned to the right with his left arm in the visible behind his right.
        // draw left arm
            g2D.drawImage(leftArm,x,y,this);
         //draw body moved a bit in x coor
            g2D.drawImage(headLegsAndTorsoRight,x-3,y,this);
     //draw right arm a bit more in x coor
            g2D.drawImage(rightArm,x-6,y,this);
            }
    

    腕のアニメーションの順序は同じですが、最終的には、胴体、左腕、右腕に異なる方法のアニメーションを使用します。左矢印のキーを押すと胴体が左に歩くアニメーションになり、左腕のキーを押すと左腕が動き、右腕のキーを押すと右腕が動きます。左腕と言って、今度はあなたのチャーが右に動かされたときのためにもう3つ必要です。

    それが私が物事をやろうとする方法です。

于 2011-06-11T19:22:13.837 に答える