저는 프로그래밍에 익숙하지 않고 작은 게임을 만들기로 마음 먹었습니다. 지금까지 모든 4 방향 (왼쪽, 오른쪽, 위, 아래)으로 이동할 수있는 작은 블록 만 만들었습니다. . 아주 단순하고 특별한 것이 없습니다. 그러나 프로그램을 실행할 때 충돌이 발생하여 프로그램 자체가 중단되는 경우가 아니라 작업이 중단 될 수 있지만 프로그램이 종료됩니다.내 프로그램이 작동을 멈춘 것처럼 보입니다.
테스트가 진행되는 동안 W와 S와 같은 두 개의 키를 동시에 누르면이 문제가 발생한다고 생각합니다. 어떤 일이 멈추는 원인인지 아는 사람이 있습니까?
void setup(){
size(1080,720);
frameRate(30);
}
int shipLR = 0; //Variable for the ship to go left/right
int shipUD = 0; //Variable for the ship to go up/down
void draw(){
background(0);
shipLR = constrain(shipLR, 0, 1040); //Constrain the ship in the window
shipUD = constrain(shipUD,0,680); // Constrain the ship in the window
move();
Shuttle();
}
void Shuttle(){
rect(shipLR, shipUD, 40,40); //Draw the ship
}
void move(){
if (keyPressed) {
if (key == 'a') {
shipLR = shipLR - 20; // Go left
return;}
if (key == 'd') {
shipLR = shipLR + 20; // Go right
return;}
if (key == 'w'){
shipUD = shipUD - 20; // Go up
return;}
if (key == 's') {
shipUD = shipUD + 20; // Go down
return;}
}
}
어떤 도움
크게 이해할 수있을 것이다.편집 :이 문제가 더 자주 발생하도록하는 것을 발견했습니다. 60보다 낮은 값의 frameRate (현재 30을 시도 중)를 구현하면 더 자주 발생합니다.
편집 2 : 블록 하나에 내 이동 기능을 만들기위한 제안 사항은 다음과 같이 좋은 영향을 많이주었습니다. 이 프로그램은 더 이상 멈추지 않는 창 가운데에서 배를 움직일 때 더 이상 멈추지 않습니다. 드물게 창 테두리에 너무 자주 충돌 할 때만 작동합니다. 아마도 그것은 제약과 관련이 있습니까?
이것은 전체 프로그램이 아니므로 더 게시 할 수 있습니까? 그것은 틀림없이 보지 않습니다. –
하지만 전체 프로그램입니다. 그리고 내가 볼 수있는 한, 나는 틀린 것도 보지 못합니다. – Bruus
수 없습니다. 최소한 메인이 있어야합니다. 그렇지 않으면 작동하지 않습니다. –