Я хочу сделать игру в понг в обработке. Но движение мяча было не очень гладким. Я попытался изменить частоту кадров и уменьшить скорость мяча, но скорость движения кажется не постоянной. Может ли это быть проблемой производительности? Я что-то делаю неправильно или обрабатываю, может быть, неправильно, даже для простых игр? (Моя цель состояла в том, чтобы опробовать process.js и создать игру, которая работает без плагина). Вот мой код:Понг движение не гладкое
// Colorset
color scrBG;
color bastards;
// Border for the Paddle
int border;
// The Paddle
int padWid;
int padHei;
float padX;
float padY;
// The Ball
float ballX;
float ballY;
int ballRad;
int speed;
float velX;
float velY;
boolean playing = false;
void setup()
{
border = 5;
scrBG = #EEEEEE;
bastards = #FFF0EB;
padWid = 80;
padHei = 10;
ballRad = 15;
speed = 5;
velX = velY = speed;
size(800, 600);
background(scrBG);
noStroke();
noCursor();
//frameRate(100);
smooth();
}
void draw()
{
background(bastards);drawPaddle();
drawBall();
}
void drawBall()
{
if(!playing)
{
ballX = padX+padWid/2;
ballY = height-border-padHei-ballRad/2-2;
}
else
{
if(ballY > height)
{
ballOut();
}
if(ballY > padY && ballX < padX + padWid && ballX > padX)
{
velY = -velY;
ballY = padY-ballRad-1;
}
if(ballX < ballRad)
{
velX = -velX;
ballX = ballRad+1;
}
if(ballX > width-ballRad)
{
velX = -velX;
ballX = width-ballRad-1;
}
if(ballY < ballRad)
{
velY = -velY;
ballY = ballRad+1;
}
ballY += velY;
ballX += velX;
}
fill(0);
ellipse(ballX, ballY, ballRad*2, ballRad*2);
}
void drawPaddle()
{
padX = constrain(mouseX, border, width-padWid-border);
padY = height-padHei-border;
fill(0);
rect(padX, padY, padWid, padHei);
}
void startLevel()
{
playing = true;
}
void resetLevel()
{
playing = false;
}
void ballOut()
{
playing = false;
}
void mouseClicked()
{
if(playing)
{
resetLevel();
}
else
{
startLevel();
}
}
Спасибо, что ответили. Как вы можете видеть, высокая частота кадров закомментирована. Я просто протестировал его. Я использовал поплавки для всего, что связано с движением шаров. Я попытался сделать все поплавком, но это не имеет никакого значения. Просто чтобы уточнить: нет большой проблемы, я просто думаю, что движение не является полностью постоянным. –
Если вы закомментируете frameRate, ваш скрипт будет работать так же быстро, как ваш компьютер будет работать. Таким образом, комментируя, что high frameRate может заставить его работать быстрее, чем 100FPS. Проверьте использование процессора. Я использую mac, и я заметил, что обработка может быть необычно тяжелой. Когда я искал это через некоторое время назад, я обнаружил, что я не единственный, у кого была эта проблема. –
Я тоже это сделал, но движение мяча все еще шатко. Вы тоже это видите? (Я использую окна. Я не думаю, что использование процессора должно быть проблемой, его новый компьютер) –