2016-10-03 3 views
1

Я определил переменную, называемую истребителем в моей программе. У меня есть функция if keyPressed, которая выбирает конкретное изображение на основе ключа. Проблема, с которой я сталкиваюсь, заключается в том, что эти изображения меняются, но перекрывают исходное изображение. Я также попытался добавить инструкцию 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

Вы установки fighter равно значению, возвращаемому image() функции по какой-то причине. Это не имеет смысла.

Вместо этого, я думаю, вы хотите установить fighter, равное одному из изображений, а затем передать fighter в функцию 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