Изображение

В примере буду стараться придерживаться принципа MVC. По крайней мере постараюсь использовать модель и вид. В первой части на сцену будет добавлено некоторое фоновое изображение, и несколько окружностей Первое -- запустим мастер проекта

Скрин

  • Name: Aquarium
  • Package: kz.dsdk.aquarium
  • Game class: starter
  • Destination: <Расположение проекта>
  • Android SDK: <Расположение SDK Android>

Далее импортируем проект в Android Studio

Скрин

  • В приветсвенном окне выбрать пункт Import project
  • Выбрать файл build.gradle в каталоге указанном в Destination на предыдущем шаге

Добавляем в каталог assets два изображения Фон:

Скрин

Окружность:

Скрин

Реализуем возможность запуска в режиме рабочего стола. Для этого настроим конфигурацию запуска в выпадающем списке вариантов запуска выбрать Edit Configuration

Скрин

Скрин

В верхнем левом углу нажав на Плюс выбрать Application.

  • Name: Desktop
  • Main class: DesktopLauncher (можно выбрать в диалоге)
  • Working directory: Каталог ресурсов проекта. (можно выбрать в диалоге)
  • Use classpath of module: desktop

Подготовка завершена. Теперь можно начинать размещение изображений В наш пакет добавим еще три: models, controllers и views. В пакет models добавим классы Object -- отображаемые объекты и World -- создаваемый мир.

Object.java

package kz.dsdk.aquarium.models;

import com.badlogic.gdx.math.Vector3;

/**

* Created by ytzh on 1/18/16.

*/

public class Object {

Vector3 position;

Vector3 velosity;

public Object(Vector3 position, Vector3 velosity){

this.position = position;

this.velosity = velosity;

}

public Vector3 getPosition() {

return position;

}

}

Colored with dumpz.org

World.java

package kz.dsdk.aquarium.models;

import com.badlogic.gdx.Gdx;

import com.badlogic.gdx.graphics.Texture;

import com.badlogic.gdx.graphics.g2d.SpriteBatch;

import com.badlogic.gdx.math.MathUtils;

import com.badlogic.gdx.math.Vector3;

import com.badlogic.gdx.utils.Array;

/**

* Created by ytzh on 1/18/16.

*/

public class World {

private Array<Object> objects;

Texture bgt;

Texture objt;

private int width, height;

public World(int width, int height) {

this.width = width;

this.height = height;

objects = new Array<Object>();

this.bgt = new Texture(Gdx.files.internal("sea.jpg"));

this.objt = new Texture(Gdx.files.internal("ball.png"));

for(int i = 0; i<60;i++){

objects.add(new Object(new Vector3(MathUtils.random(0,this.width-objt.getWidth()),MathUtils.random(0,this.height-objt.getHeight()),0), new Vector3(0,0,0)));

}

}

public void render(SpriteBatch sb){

sb.draw(bgt,0,0);

for(Object obj:objects){

sb.draw(objt,obj.getPosition().x,obj.getPosition().y);

}

}

public void dispose(){

bgt.dispose();

objt.dispose();

}

}

Colored with [dumpz.org](http://dumpz.org target = )

Тек же внесем изменения в стартовый класс

starter.java

package kz.dsdk.aquarium;

import com.badlogic.gdx.ApplicationAdapter;

import com.badlogic.gdx.Gdx;

import com.badlogic.gdx.graphics.GL20;

import com.badlogic.gdx.graphics.g2d.SpriteBatch;

import kz.dsdk.aquarium.models.World;

public class starter extends ApplicationAdapter {

World world;

SpriteBatch batch;

@Override

public void create () {

batch = new SpriteBatch();

world = new World(Gdx.graphics.getWidth(),Gdx.graphics.getHeight());

}

@Override

public void render () {

Gdx.gl.glClearColor(1, 0, 0, 1);

Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

batch.begin();

world.render(batch);

batch.end();

}

}

Colored with dumpz.org

Класс Object представляет собой объект нашего мира. Хранит только свои координаты и скорость движения. Класс World хранит массив всех используемых объектов. При заполнении массива координаты объектов берутся случайным образом starter.java -- стартовый класс, который предосавляет SpriteBatch для выводимых объектов нашего мира.