Создание Ping Pong 2D на Gobot Game Engine

Создание Ping Pong 2D на Gobot Game Engine

Создание простой игры Ping Pong на движке Gobot 2.0

Наверно каждый  играл в такую игру как пинг понг, давайте попробуем ее создать.

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

Давайте приступим. Создайте отдельную папку и распакуйте туда скачанный архив. Здесь будет компилироваться наша игра, так же, отдельно, распакуйте движок в другое место, желательно на рабочий стол. Это нужно для того, чтобы отдельно запускать игровой движок, далее вы поймете зачем это нужно.

Запустите движок с рабочего стола и создайте новый проект.  Нажмите кнопку New project и укажите папку, желательно ту в которую поместили разархивированный файл, тут будет хранится наш проект. Укажите название проекта и нажмите Create.

newproject

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

razresh

Следующий этап — добавление объектов.

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

node

Тем же способом создайте 4 Sprite дочерними node и обзовите их как показано на картинке.

sprite

Для каждого спрайта установите текстуры.

При нажатии на спрайт в правой части экрана открывается окно Inspector, где нужно в строке Texture выбрать текстуру. Можете взять текстуры отсюда и поместить их в папку с проектом.

texturi

Разместите объекты на сцене.

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

ping

Сохраните сцену в папку с проектом SceneSave scene as.. и назовите ее pingboll.scn

scene

Управление объектами.

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

key

Для левого спрайта я назначил клавиши W и S, для правого, клавиши вверх и вниз.

Следующий этап – написание скрипта.

К Node 2d добавьте скрипт

skript

и скопируйте туда текст написанный ниже

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)

skript2

Перед запуском игры укажите вашу сцену главной в настройках проекта SceneProject settings, вкладка Application, строка Mine scene.

mineScene

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

pingpong

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

pingpong2

Скачать пример игры PingPong

         На главную      Следующий урок


Оставить Комментарий