Наверно каждый играл в такую игру как пинг понг, давайте попробуем ее создать.
Для начала скачайте игровой движок Gobot 2.0. Это очень компактный и простой движок для создания 2D игр, состоящий всего из одного файла. К нему не требуется скачивать ни каких дополнительных библиотек и баз, просто скачиваете и запускаете редактор, и можете приступать к созданию проекта.
Давайте приступим. Создайте отдельную папку и распакуйте туда скачанный архив. Здесь будет компилироваться наша игра, так же, отдельно, распакуйте движок в другое место, желательно на рабочий стол. Это нужно для того, чтобы отдельно запускать игровой движок, далее вы поймете зачем это нужно.
Запустите движок с рабочего стола и создайте новый проект. Нажмите кнопку New project и укажите папку, желательно ту в которую поместили разархивированный файл, тут будет хранится наш проект. Укажите название проекта и нажмите Create.

Для создания пинг понга мы будем использовать разрешение экрана 640х480. Перейдите в настройки проекта Scene – Project settings. Откройте вкладку Display и измените параметры width и height соответственно 640 и 480.

Следующий этап — добавление объектов.
Создайте объект Node 2d. И переименуйте его в game.

Тем же способом создайте 4 Sprite дочерними node и обзовите их как показано на картинке.
![]()
Для каждого спрайта установите текстуры.
При нажатии на спрайт в правой части экрана открывается окно Inspector, где нужно в строке Texture выбрать текстуру. Можете взять текстуры отсюда и поместить их в папку с проектом.

Разместите объекты на сцене.
Если все сделали правильно, в окне редактора появится синий прямоугольник, в этой области и будут происходить все действия. Ваша задача разместить эти четыре спрайта так, как показано на картинке (мяч – boll должен находится в центре экрана).

Сохраните сцену в папку с проектом Scene – Save scene as.. и назовите ее pingboll.scn
Управление объектами.
Теперь необходимо настроить управление нашими объектами (спрайтами left и right). Откройте настройки проекта и перейдите во вкладку Input map. Добавьте четыре действия left_move_up, left_move_down, right_move_up, right_move_down и для каждого действия назначьте клавиши передвижения.

Для левого спрайта я назначил клавиши W и S, для правого, клавиши вверх и вниз.
Следующий этап – написание скрипта.
К Node 2d добавьте скрипт

и скопируйте туда текст написанный ниже
extends Node2D
var screen_size
var pad_size
func _ready():
screen_size = get_viewport_rect().size
pad_size = get_node("left").get_texture().get_size()
set_process(true)
#скорость мяча (в пикселях/second)
var ball_speed = 80
#направление мяча (нормальный вектор)
var direction = Vector2(-1,0)
const PAD_SPEED = 150
func _process(delta):
# небольшая корректировка размера планок
var ball_pos = get_node("ball").get_pos()
var left_rect = Rect2( get_node("left").get_pos() - pad_size/2, pad_size )
var right_rect = Rect2( get_node("right").get_pos() - pad_size/2, pad_size )
ball_pos+=direction*ball_speed*delta
#отскок мяча от стенок верха и низа
if ( (ball_pos.y<0 and direction.y <0) or (ball_pos.y>screen_size.y and direction.y>0)):
direction.y = -direction.y
# если мяч задел планку он изменяет направление и скорость
if ( (left_rect.has_point(ball_pos) and direction.x < 0) or (right_rect.has_point(ball_pos) and direction.x > 0)):
direction.x=-direction.x
ball_speed*=1.1
direction.y=randf()*2.0-1
direction = direction.normalized()
# если мяч ушел за пределы экрана игра перезапускается
if (ball_pos.x<0 or ball_pos.x>screen_size.x):
ball_pos=screen_size*0.5 #ball goes to screen center
ball_speed=80
direction=Vector2(-1,0)
get_node("ball").set_pos(ball_pos)
#перемещение левой планки
var left_pos = get_node("left").get_pos()
if (left_pos.y > 0 and Input.is_action_pressed("left_move_up")):
left_pos.y+=-PAD_SPEED*delta
if (left_pos.y < screen_size.y and Input.is_action_pressed("left_move_down")):
left_pos.y+=PAD_SPEED*delta
get_node("left").set_pos(left_pos)
#перемещение правой планки
var right_pos = get_node("right").get_pos()
if (right_pos.y > 0 and Input.is_action_pressed("right_move_up")):
right_pos.y+=-PAD_SPEED*delta
if (right_pos.y < screen_size.y and Input.is_action_pressed("right_move_down")):
right_pos.y+=PAD_SPEED*delta
get_node("right").set_pos(right_pos)
Перед запуском игры укажите вашу сцену главной в настройках проекта Scene — Project settings, вкладка Application, строка Mine scene.

Запустите проект клавишей F5, и попробуйте поиграть в свою игру, проверьте, работают ли клавиши управления планками.

Для компиляции проекта и сохранения в файл exe нажмите клавишу F6. В папке проекта, файл с движком, который мы разархивировали, заменится на вашу скомпилированную игру, переименуйте его и запустите. Поздравляем, вы создали свою игру Ping pong.

Скачать пример игры PingPong
📸 Видео
How to make Pong in Godot 4 in 9 minutesСкачать

Beginner Godot Tutorial - How to Make Pong with AIСкачать

Создание 2D платформера в Godot за 30 минут / Изучение движка GodotСкачать

твоя первая игра за 1 деньСкачать

ШемКодит#10. Godot. PingPong с анимацией за час!Скачать

Creating Pong In Godot Game Engine Episode #1Скачать

How to make Ping Pong in Godot 4 (Complete Tutorial) 🏓🎮Скачать

ПРОСТАЯ игра на Godot Engine ДЛЯ НОВИЧКОВСкачать

Simple Pong Game (Godot Engine)Скачать

Создание 3D игры в Godot за час / Уроки Godot Engine 3DСкачать

Godot Ping Pong Game using RaycastsСкачать

С ЭТИМ ты сможешь делать ЛЮБЫЕ ИГРЫ на ТЕЛЕФОНЕ! Обзор Godot EngineСкачать

[Judlup] | Ping Pong GodotСкачать
![[Judlup] | Ping Pong Godot](https://i.ytimg.com/vi/3FC1kFXmHM0/0.jpg)
Как начать делать игры на Godot / Создаем платформер с нуля #1Скачать

Ping Pong in GodotСкачать

Программирование игр в среде разработки Godot PongСкачать









