после урока 22 я сделал другой контроллер для вида сверху но при нажатии кнопок wd и если их отпустить в порядку dw то персонаж все равно идет
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
void control(){ if (Keyboard::isKeyPressed && pause==0){ if (Keyboard::isKeyPressed(Keyboard::A)) { state = left; speed = 0.1; } if (Keyboard::isKeyPressed(Keyboard::D)) { state = right; speed = 0.1; } if (Keyboard::isKeyPressed(Keyboard::W)) { state = up; upxy = 0.1; } if (Keyboard::isKeyPressed(Keyboard::S)) { state = down; upxy = 0.1; } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
switch (state) { case right:dx = speed; break; case left:dx = -speed; break; case up: dy = -upxy; break; case down: dy = upxy; break; case stay: speed = 0; upxy = 0; break; } x += dx*time; checkCollisionWithMap(dx, 0); y += dy*time; checkCollisionWithMap(0, dy); view.setCenter(x, y); sprite.setPosition(x + w / 2, y + h / 2); if (!isMove){ speed = 0; upxy = 0; } setPlayerCoordinateForView(x, y); speed = 0; upxy = 0; |