у меня есть следующий код, чтобы сделать свой ход: игроксделать скорость 5, когда клавиша переключения нажата
class Player {
PVector direction;
PVector location;
float rotation;
int speed;
Player() {
location = new PVector(width/2, height/2);
speed =2;
}
void visualPlayer() {
direction = new PVector(mouseX, mouseY);
rotation = atan2(direction.y - location.y, direction.x - location.x)/ PI * 180;
if (keyPressed) {
if ((key == 'w' && dist(location.x, location.y, direction.x, direction.y)>5) || (key == 'w' && key == SHIFT && dist(location.x, location.y, direction.x, direction.y)>5)) {
speed = 2;
location.x = location.x + cos(rotation/180*PI)*speed;
location.y = location.y + sin(rotation/180*PI)*speed;
if (key == SHIFT) {
speed = 5;
}
}
} else {
location.x = location.x;
location.y = location.y;
}
println(speed);
ellipse(location.x, location.y, 10, 10);
}
}
при нажатии W ключ игрок перемещается в направлении мыши. но я хочу, чтобы игрок двигался быстрее, если я нажимаю клавишу shift. но теперь мой плеер перестает двигаться, когда я нажимаю клавишу смены ... почему это происходит? любые предложения, чтобы помочь мне решить эту проблему, не приветствуются :)
Что такое 'keyPressed' и' SHIFT' в вашем коде? На ваш взгляд, как этот ключ 'key == 'w' && key == SHIFT' будет истинным? – jhamon
[этот вопрос] (http://stackoverflow.com/questions/14301775/get-key-combinations) может помочь вам – jhamon
попробуйте переместить 'if (key == SHIFT) {...}' перед 'location.x = loca ... ' –