Anthill Game Framework

Tiny framework for creating Flash games.

Инструменты пользователя

Инструменты сайта


guide:hello_world

Первый код

После того, как вы создали и настроили свой проект, необходимо инициализировать Anthill. Перейдите в основной класс вашего приложения и напишите или скопируйте следующий код. Обычно основной класс вашего приложения называется точно так же, как вы назвали ваш проект при его создании.

package
{
  import flash.display.Sprite;
  import flash.events.Event;
  
  import ru.antkarlov.anthill.Anthill;

  [SWF(width="640", height="480", backgroundColor="#FFFFFF")]
  public class NewProject extends Sprite
  {
    public function NewProject()
    {
       super();
       (stage == null) ? addEventListener(Event.ADDED_TO_STAGE, init) : init(null);
    }

    private function init(event:Event):void
    {
      if (event != null)
      {
        removeEventListener(Event.ADDED_TO_STAGE, init);
      }

      var anthill:Anthill = new Anthill(GameState, 60);
      addChild(anthill);
    }

  }

}

В данном коде мы создаем и добавляем на сцену Anthill. При создании Anthill в качестве аргументов мы передаем имя класса игрового состояния, которое будет создано автоматически при инициализации фреймворка, и указываем количество fps.

Anthil инициализируется автоматически и начинает работу, как только будет добавлен на сцену методом addChild(). После инициализации фреймворка вы можете использовать всего его ресурсы.

Теперь давайте рассмотрим код игрового состояния:

package
{
  import ru.antkarlov.anthill.*;

  public class GameState extends AntState
  {

    public function GameState()
    {
      super();
    }

    override public function create():void
    {
      // Создаем и добавляем камеру
      var camera:AntCamera = new AntCamera(0, 0, 640, 480);
      camera.fillBackground = true;
      AntG.addCamera(camera);
      
      // Создаем и добавляем текстовую метку
      var label:AntLabel = new AntLabel("system");
      label.text = "Hello World!";
      label.x = 320 - label.width / 2;
      label.y = 240;
      add(label);
    }

  }

}

В этом коде первым делом мы создаем камеру — камера это фактически окно в мир Anthill, которое будет показывать что там происходит. Класс камеры обладает полезными функциями, например: слежение за указанным объектом, ограничение движения камеры и т.п. Использование камер упрощает взаимодействие с игровым миром, например, не нужно двигать игровой мир чтобы следить за героем, упрощает создание параллакс-эффектов, а так же позволяет легко создавать игры на двух игроков за одним компьютером.

Примечание: С версии Anthill 0.3.1 камеру создавать не обязательно. Если камера не будет создана вручную, то она будет создана автоматически.

После того, как создана камера, мы создаем текстовую метку, для которой устанавливаем текст «Hello World!». При создании текстовой метки в конструкторе класса мы указываем имя шрифта, который следует использовать метке. В комплекте с Anthill идет свободный шрифт, который включается в проект под ключевым именем «system», поэтому вы всегда можете использовать это имя на начальных стадиях создания своего проекта.

Обратите внимание, что код создания камеры и метки находится не в конструкторе класса, как это следовало бы ожидать, а в перекрытом методе create() — данный метод для состояний вызывается автоматически после того, как фреймворк инициализировал класс состояния и добавил в свою структуру. Непосредственно в методе create() рекомендуется создавать камеры и остальные необходимые вам для работы ресурсы состояния. Также у состояний есть обратный метод destroy(), который вызывается перед тем, как состояние будет удалено из структуры Anthill. Чтобы при удалении состояния корректно удалить все использующиеся ресурсы, необходимо перекрыть метод destroy() и выполнить освобождение и удаление объектов. Например:

override public function destroy():void
{
  AntG.camera.destroy();
}

Примечание: Если камера создана автоматически, то не нужно удалять её вручную.

Если вы все сделали правильно, то после компиляции вы должны увидеть такой результат:

Теперь, когда вы разобрались, как подключать и инициализировать Anthill, вы можете немного углубиться и разобраться с графикой и анимациями.


Дополнительно

В случае, если не задано состояние по умолчанию при инициализации Anthill, то фреймворк не начнет работу и не будет выполнять обработку объектов и их рендер. Например, если код инициализации Anthill выглядит следующим образом:

// Указываем null вместо GameState
var anthill:Anthill = new Anthill(null, 60);
addChild(anthill);

То при добавлении состояния Anthill необходимо запустить вручную:

var myState:GameState = new GameState();
anthill.switchState(myState);

// Запускаем Anthill вручную
anthill.start();
Примичание: Начиная с версии 0.3.3 Anthill стартует автоматически при добавлении состояния. То есть, если вы используете Anthill 0.3.3 и старше, то вам нет необходимости запускать Anthill вручную после добавления состояния.


guide/hello_world.txt · Последние изменения: 11.05.2013 11:46 — Илья Уткин