Наверно каждый играл в такую игру как пинг понг, давайте попробуем ее создать.
Для начала скачайте игровой движок 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Скачать
Creating Pong In Godot Game Engine Episode #1Скачать
ПРОСТАЯ игра на Godot Engine ДЛЯ НОВИЧКОВСкачать
твоя первая игра за 1 деньСкачать
ШемКодит#10. Godot. PingPong с анимацией за час!Скачать
How to make Ping Pong in Godot 4 (Complete Tutorial) 🏓🎮Скачать
Godot Ping Pong Game using RaycastsСкачать
Создание 3D игры в Godot за час / Уроки Godot Engine 3DСкачать
Simple Pong Game (Godot Engine)Скачать
[Judlup] | Ping Pong GodotСкачать
С ЭТИМ ты сможешь делать ЛЮБЫЕ ИГРЫ на ТЕЛЕФОНЕ! Обзор Godot EngineСкачать
Как начать делать игры на Godot / Создаем платформер с нуля #1Скачать
Программирование игр в среде разработки Godot PongСкачать
Ping Pong in GodotСкачать