2016-10-03 18 views
1

自分のプログラムでfighterという変数を定義しました。キーに基づいて特定のイメージを選択するifPressedPressed関数があります。私が抱えている問題は、そのイメージが交換されていますが、元のイメージと重なっていることです。私はまた元の位置の戦闘機でelse文を追加しようとしましたが、それでも同じ反応をしました。p5.jsでの変数のスワップ

var fighter; 
var stance; 
var kick; 
var jab; 
var cross; 
var mx; //Use to constrain fighter to center of circle 
var my; 

function preload(){ 
    stance = loadImage("img/stance.svg"); 
    kick = loadImage("img/kick.svg"); 
    jab = loadImage("img/jab.svg"); 
    cross = loadImage("img/cross.svg"); 
}; 

function setup(){ 
    createCanvas(1280,720); 
}; 



function draw(){ 
    background(0, 246, 255); 
    fill("red"); 
    ellipse(width/2,height/2,500,500); 
    mx = constrain(mouseX,width/2-250,width/2+250); 
    my = constrain(mouseY,height/2-250,height/2+250); 
    fighter = image(stance,mx,my); 


    if(keyIsPressed){ 
     if((key == "a" || key == "A")){ 
      fighter = ""; 
      fighter = image(jab,mx,my); 
     } 
     else if ((key == "w" || key == "W")) { 
      fighter = image(cross,mx,my); 
     } 
     else if ((key == "s" || key == "S")) { 
      fighter = image(kick,mx,my); 
     } 
    }; 

}; 

答えて

1

あなたはいくつかの理由でimage()関数が返す値に等しいfighterを設定しています。これは意味をなさない。

代わりに、fighterを画像の1つと同じにして、をimage()関数に渡したいと思っています。このようなもの:

fighter = stance; 

if(keyIsPressed){ 
    if((key == "a" || key == "A")){ 
     fighter = jab; 
    } 
    else if ((key == "w" || key == "W")) { 
     fighter = cross 
    } 
    else if ((key == "s" || key == "S")) { 
     fighter = kick; 
    } 
} 

image(fighter, mx,my); 
+0

これは機能しました。ありがとう! – Roscoe

関連する問題