1
여기는 마우스를 클릭 한 곳마다 볼 드롭과 바운스가있는 프로그램입니다. 공이 중력의 힘으로 떨어지는 속도를 변경하는 방법을 아는 사람이 있습니까? 임 : 이에 대한 적절한 해결책을 찾아 내려고 노력 중입니다 ...하지만 약간의 문제가 있습니다. 모든 도움이나 의견은 많은 도움이 될 것입니다.볼 드롭 속도 변경 중 ... 처리 중
float x;
float y;
float yspeed = 0;
float xspeed = 0;
float balldiameter = 10;
float ballradius = balldiameter/2;
void setup() {
size (400,400);
background (255);
fill (0);
ellipseMode(CENTER);
smooth();
noStroke();
x = width/2;
y = height/2;
}
void draw() {
mouseChecks();
boundaryChecks();
ballFunctions();
keyFunctions();
}
void mouseChecks() {
if (mousePressed == true) {
x = mouseX;
y = mouseY;
yspeed = mouseY - pmouseY;
xspeed = mouseX - pmouseX;
}
}
void boundaryChecks() {
if (y >= height - ballradius) {
y = height - ballradius;
yspeed = -yspeed/1.15;
}
if (y <= ballradius) {
y = ballradius;
yspeed = -yspeed/1.35;
}
if (x >= width -ballradius) {
x = width -ballradius;
xspeed = -xspeed/1.10;
}
if (x <= ballradius) {
x = ballradius;
xspeed = -xspeed/1.10;
}
}
void ballFunctions() {
if (balldiameter < 2) {
balldiameter = 2;
}
if (balldiameter > 400) {
balldiameter = 400;
}
ballradius = balldiameter/2;
background(255); //should this be in here?
ellipse (x,y,balldiameter,balldiameter);
yspeed = yspeed += 0.2;
xspeed = xspeed/1.005;
y = y + yspeed;
x = x + xspeed;
}
void keyFunctions() {
if (keyPressed) {
if(keyCode == UP) {
balldiameter +=1;
}
if (keyCode == DOWN) {
balldiameter -=1;
}
}
}
무엇을 시도 했습니까? 마지막 프레임에서 경과 시간을 얻을 수 있다면 draw() 중에 yspeed를 9.8 * 시간 (초 단위)으로 곱하면됩니다. –
어떤 라이브러리를 사용하고 있습니까? 당신은'size'와'background'와 같은 것을 호출하지만 그 함수들은 당신의 코드에서 정의되지 않습니다. – durron597