Skip to content

Instantly share code, notes, and snippets.

@dinarname
Last active June 9, 2020 20:54
Show Gist options
  • Save dinarname/d88afee905c4060b84a82e55c10a36b8 to your computer and use it in GitHub Desktop.
Save dinarname/d88afee905c4060b84a82e55c10a36b8 to your computer and use it in GitHub Desktop.
Учебный пример для игры Pong
// игра Pong
// читайте step by step guide — https://bit.ly/pong-lesson
void setup() {
size(640, 480);
}
int x = 50, y = 50; // переменные для хранения координат шарика
int vx = 3, vy = 3; // скорость по оси X и оси Y
int dir = -1; // direction — переменная для изменения направления
int counter = 0; // переменная для подсчёта очков
void draw() {
background(#FFCE50); // фон всего экрана
fill(#1CD9FC); // цвет шарика
noStroke(); // убираем обводку с фигур
ellipse(x, y, 15, 15);
x = x + vx; // увеличиваем координату x на vx
y = y + vy;
// рисуем платформу шириной 50 px и высотой 10px
// платформа двигается по оси X вслед за мышью
// по оси Y платформа на координате 450 px
rect(mouseX, 450, 50, 10);
// условие для отражения от стен:
// ЕСЛИ (шарик вылетает за правую границу ИЛИ вылетает за левую границу)
// то поменять знак переменной vx
if (x > 640 || x < 0) vx = vx * dir;
// условие для отражения от потолка
if (y < 0) vy = vy *dir;
// Если шарик попадает в платформу, то он меняет направление
// и мы увеличивем очки на 1
if (y >= 450 && x >= mouseX && x <= mouseX + 50) {
vy = vy* dir;
counter = counter + 1;
}
// Вывод очков на экран в правый верхний угол
fill(#1C4EFC); // цвет текста
textSize(20); // высота текста 20 px
text(counter, 580, 50); // выводим значение переменной counter в точку (580, 50)
// Остановка игры
if (y > 480) {
text("Мяч улетел :(", 280, 220);
noLoop();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment