Суббота, 21 Декабря 2024, 17:03

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [358]
Статьи об общих понятиях связанных с созданием игр.
Программирование [84]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [149]
Статьи о программах для создания игр, уроки и описания.
Софт [44]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [17]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [169]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [133]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Какой ЯП вы знаете?
Всего ответов: 27912
Главная » Статьи » Создание игр

Урок по основам Golden T Game Engine
Итак, начнем. Первым делом скачаем его, извлекем из него файл golden_x_x_x.jar. Его нужно добавить в нашу IDE. После этого мы можем писать игры на данном движке. Создайте класс Main и скопируйте этот код:

Code


import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.util.Random;

import com.golden.gamedev.*;
import com.golden.gamedev.object.*;
import com.golden.gamedev.object.background.*;

public class Main extends Game {
   
  public void initResources() {
   
  }

  public void update(long elapsedTime) {
   
  }

  public void render(Graphics2D g) {
   
  }

  public static void main(String[] args) {
  GameLoader game = new GameLoader();
  game.setup(new Main(), new Dimension(640,480), false);
  game.start();
  }
   

}

Разберем код по частям:

Code


import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.util.Random;

import com.golden.gamedev.*;
import com.golden.gamedev.object.*;
import com.golden.gamedev.object.background.*;

Тут мы импортируем нужные пакеты.

Code


public void update(long elapsedTime) {
  pf.update(elapsedTime);
  if (keyDown(KeyEvent.VK_W)) {
  spr_player.moveY(-3);
  }
  if (keyDown(KeyEvent.VK_S)) {
  spr_player.moveY(+3);
  }
  if (keyDown(KeyEvent.VK_A)) {
  spr_player.moveX(-3);
  }
  if (keyDown(KeyEvent.VK_D)) {
  spr_player.moveX(+3);
  }
  }

  public void render(Graphics2D g) {
  pf.render(g);
  }

Тут мы задаем 3 метода(функции) для игры - получение ресурсов, функция которая будет выполнятся всегда и рендер графики на экране.

Code


public static void main(String[] args) {
  GameLoader game = new GameLoader();
  game.setup(new Main(), new Dimension(640,480), false);
  game.start();
  }

Тут мы создаем экземпляр класса GameLoader для загрузки игры, ставим разрешение и выбираем полный экран или нет. Теперь мы создадим объект PlayField, в нем будут находиться спрайты и бекграунды. Добавляем этот код в начало класса(вне функций):

Code


PlayField pf;

Теперь допишем наши три первые функции чтоб они выглядели так:

Code


  public void initResources() {
  pf = new PlayField();
  }

  public void update(long elapsedTime) {
  pf.update(elapsedTime);
  }

  public void render(Graphics2D g) {
  pf.render(g);
  }

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

Теперь создаем группу спрайтов, для удобного управления ими(писать в начало класса):

Code


SpriteGroup grp_player;

Определим нашу группу(пишем в первую функцию):

Code


grp_player = new SpriteGroup("Player Sprite Group");

Объявим картинку :D(в начало класса):

Code


BufferedImage img_player;

Определим картинку(в первую функцию):

Code


img_player = getImage("plane1.png");

Наконец то создадим спрайт(пишем в начала класса, потом в первую функцию соответственно):

Code


Sprite spr_player;

Code


spr_player = new Sprite(img_player, 100,100);
grp_player.add(spr_player);
pf.addGroup(grp_player);

Можете запускать. Вы увидите вашу картинку на экране, внизу будет написан FPS.

Сделаем движение и хватит на сегодня(во вторую функцию):

Code


if (keyDown(KeyEvent.VK_W)) {
  spr_player.moveY(-3);
  }
  if (keyDown(KeyEvent.VK_S)) {
  spr_player.moveY(+3);
  }
  if (keyDown(KeyEvent.VK_A)) {
  spr_player.moveX(-3);
  }
  if (keyDown(KeyEvent.VK_D)) {
  spr_player.moveX(+3);
  }

И чуть не забыл, без бекграунда будет плохо :/, так что вот(в начало класса и в первую функцию соответственно):

Code


BufferedImage img_back;
ImageBackground back;

Code


img_back = getImage("fon.png");
back = new ImageBackground(img_back);
pf.setBackground(back);

На этом все, удачи в создании игр.

Категория: Создание игр | Добавил: Бомбер (03 Апреля 2011) | Автор: Александр
Просмотров: 9762 | Комментарии: 7 | Рейтинг: 5.0/4 |
Теги: java, начало работы, Урок, кодинг, уроки, классы, программирование, основы, GTGE, Golden T Game Engine
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Урок по основам Golden T Game Engine», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 7
+3-
1 noTformaT   (04 Апреля 2011 16:47) [Материал]
noTformaTСколько работаю на Java, но толком не видел норм 2д движка, надо посмотреть на это чудо smile
А вот библа AWT чет меня насторожила, хз, но все давно перешли на Swing smile

+3-
2 Бомбер   (04 Апреля 2011 16:54) [Материал]
БомберЕсли ты не знал, но Swing Больше не развивается. Проект закрыли. Теперь AWT, мне он даже больше нравится )

+3-
4 noTformaT   (04 Апреля 2011 18:31) [Материал]
noTformaTМож ты путаешь? Swing каркас развивается и он намного младше своей предшественницы.

+3-
5 Бомбер   (04 Апреля 2011 19:08) [Материал]
Бомберhttp://habrahabr.ru/blogs/java/71561/ - пруфлинк

+3-
6 noTformaT   (04 Апреля 2011 23:00) [Материал]
noTformaTха, странно, статье уже 2 года, а я все пользуюсь swing, хотя fx тоже мощный и видимо он и убил swing ^)

+2-
3 Бомбер   (04 Апреля 2011 17:17) [Материал]
БомберAWT тут нужна только для самого окна, не парься. Что в двиге плохо - отсутствие мультплеера angry Придется самому дописывать wink

+0-
7 TideS   (16 Мая 2011 20:13) [Материал]
TideSУже сделан кстати wink

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • RPGDTE
  • Doom Classic iOS
  • EDuke32
  • BlitzPlus
  • Mirage RPG Creator
  • Bladecoder Adventure Engine
  • 8bitworkshop
  • Aleph One
  • J2DS
  • Torque 3D
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг