Здравствуйте, давайте создадим простую игру, в которой один предмет сталкивается с другим (2 актёра), есть кнопки и несколько экранов игры: меню, сама игра и конец игры.
Этот пример будет как простой образец кода, который можно исправлять, добавлять к нему свой код и создать игры, HTML5 баннеры и т.п.
Перед тем как приступить к созданию игры вам стоит позаботиться о безопасности своего компьютера – вот здесь можно скачать отличный .
Первым делом запускаем LibGDX и задаём следующие параметры:
Главное здесь, для реализации приведённого ниже кода:
Package (оставляем по умолчанию): com.mygdx.game
Game сlass (изменяем на следующий): MainGame
Галочки ставим на пунктах: Desktop, Android, HTML (если нужен будет HTML5 для сайта например), можно также поставить галочку напротив пункта Box2D (но в данном примере он применяться не будет, создание игра на основе Box2D буду писать в следующих статьях).
Жмем Generate, заходим в Android Studio и импортируем проекта – более подробно об этом читайте в моей предыдущей статье (пункт 1 и 2) –
А теперь приступим к созданию игры непосредственно в программе Android Studio:
Создадим основной экран игры, где будут сталкиваться 2 предмета:
Для игры нам понадобятся следующие изображения:
Скачать их можно здесь:
– скачать minijoe.png
– скачать pinchos.png
Помещаем их в папку assets, которая находится в папке Android:
Чтобы открыть папку assets из самой программы Android Studio достаточно кликнуть по ней правой кнопкой мышки и выбрать пункт File Path, а затем выбрать assets:
Далее переходим к написанию кода игры, создадим 5 файлов: MainGame, MainGameScreen, BaseScreen, ActorJugador, ActorPinchos.
Для этого заходим в папку Core, в ней выбираем папку java и подпапку com.mygdx.game в ней уже будет лежать файл MainGame.
Заменяем код файл MainGame на следующий:
package com.mygdx.game;
import com.badlogic.gdx.Game;
public class MainGame extends Game {
@Override
public void create () {
setScreen(new MainGameScreen(this));
}
}
Далее создаем файл MainGameScreen для этого наводим курсор мышки на папку com.mygdx.game, кликаем правой кнопкой мышки и выбираем New и Java Class:
И создаем новый файл с именем MainGameScreen:
Вставляем в файл MainGameScreen следующий код:
package com.mygdx.game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.mygdx.game.actors.ActorJugador;
import com.mygdx.game.actors.ActorPinchos;
public class MainGameScreen extends BaseScreen {
public MainGameScreen (MainGame game) {
super(game);
texturaJugator=new Texture("minijoe.png");
texturaPinchos=new Texture("pinchos.png");
regionPinchos=new TextureRegion(texturaPinchos, 0, 64, 128, 64);
}
private Stage stage;
private ActorJugador jugador;
private ActorPinchos pinchos;
private Texture texturaJugator, texturaPinchos;
private TextureRegion regionPinchos;
@Override
public void show() {
stage = new Stage();
jugador = new ActorJugador(texturaJugator);
pinchos=new ActorPinchos(regionPinchos);
stage.addActor(jugador);
stage.addActor(pinchos);
jugador.setPosition(20,100);
pinchos.setPosition(500,100);
}
@Override
public void hide() {
stage.dispose();
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0.4f, 0.5f, 0.8f, 1f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.act();
comprobarColisiones();
stage.draw();
}
private void comprobarColisiones(){
if (jugador.isAlive()&&jugador.getX()+jugador.getWidth()>pinchos.getX()){
System.out.println("Colision");
jugador.setAlive(false);
}
}
@Override
public void dispose() {
texturaJugator.dispose();
}
}
Аналогично создаем файл BaseScreen и вставляем в него следующий код:
package com.mygdx.game;
import com.badlogic.gdx.Screen;
public abstract class BaseScreen implements Screen {
private MainGame game;
public BaseScreen(MainGame game) {
this.game=game;
}
@Override
public void show() {
}
@Override
public void render(float delta) {
}
@Override
public void resize(int width, int height) {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void hide() {
}
@Override
public void dispose() {
}
}
У нас получилось три файла: MainGame, MainGameScreen, BaseScreen.
Наверное вы спросите зачем для игры мы создали 3 файла – это нужно, чтобы создать в следующем уроке несколько экранов: экран меню, экран игры и экран конец игры.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
А теперь приступим к созданию Актёров, то есть действующих лиц игры – для этого нам нужно создать ещё два файла, которые должны лежать в папке actors:
Далее создаем папки actors – наводим курсор мышки на папку com.mygdx.game, кликаем правой кнопкой мышки и выбираем New и Package:
И вводим имя папки – actors
Далее создаём в ней файл ActorJugador.
Далее создания файла ActorJugador – наводим курсор мышки на папку actors, кликаем правой кнопкой мышки и выбираем New и Java Class:
И вводим имя файла – ActorJugador.
После меняем код файла ActorJugador на следующий:
package com.mygdx.game.actors;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.scenes.scene2d.Actor;
public class ActorJugador extends Actor {
private Texture jugator;
private boolean alive;
public boolean isAlive() {
return alive;
}
public void setAlive(boolean alive) {
this.alive = alive;
}
public ActorJugador(Texture jugator){
this.jugator=jugator;
this.alive=true;
setSize(jugator.getWidth(), jugator.getHeight());
}
public void act (float delta){
super.act(delta);
}
public void draw (Batch batch, float parentAlpha){
batch.draw(jugator, getX(), getY());
}
}
Аналогично создаём файл ActorPinchos и меняем его код на следующий:
package com.mygdx.game.actors;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.Actor;
public class ActorPinchos extends Actor {
private TextureRegion pinchos;
public ActorPinchos (TextureRegion pinchos) {
this.pinchos=pinchos;
setSize(pinchos.getRegionWidth(), pinchos.getRegionHeight());
}
public void act (float delta){
setX(getX()-250*delta);
}
@Override
public void draw(Batch batch, float parentAlpha) {
batch.draw(pinchos, getX(), getY());
}
}
А в следующей части мы создадим дополнительно 2 экрана игры: экран меню и экран Конец Игры с кнопочками перехода между экранами.

