Добавим новый класс WorldController, который будет управлять расположением объектов на сцене. В класс World добавим ссылку на объект данного класса, а так же в функции render() будем вызывать обновление. Так же в при создании объектов укажем начальное значение скоростей по осям в виде случайного числа от 20 до 150. Для возможности доступа к скорости для класса Object добавим getter функцию для velosity.

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;


}


public Vector3 getVelosity() {


return velosity;


}


}

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;


import kz.dsdk.aquarium.controllers.WorldController;


/**


* Created by ytzh on 1/18/16.


*/


public class World {


private Array<Object> objects;


Texture bgt;


Texture objt;


WorldController worldController;


private int width, height;


public Array<Object> getObjects() {


return objects;


}


public Texture getBgt() {


return bgt;


}


public Texture getObjt() {


return objt;


}


public World(int width, int height) {


this.width = width;


this.height = height;


this.worldController = new WorldController(this);


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(//Скорость


MathUtils.random(20,150),


MathUtils.random(20,150),0)));


}


}


public void render(SpriteBatch sb){


sb.draw(bgt,0,0);


for(Object obj:objects){


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


}


worldController.update();


}


public void dispose(){


bgt.dispose();


objt.dispose();


}


}

Colored with dumpz.org

WorldController.java

package kz.dsdk.aquarium.controllers;


import com.badlogic.gdx.Gdx;


import kz.dsdk.aquarium.models.*;


/**


* Created by ytzh on 1/18/16.


*/


public class WorldController {


private World world;


public WorldController(World world) {


this.world = world;


}


public void update(){


for(kz.dsdk.aquarium.models.Object object:world.getObjects()){


if(object.getPosition().x>=world.getBgt().getWidth()-world.getObjt().getWidth() || object.getPosition().x<= 0 ){


object.getVelosity().x *= -1;


}


if(object.getPosition().y>=world.getBgt().getHeight()-world.getObjt().getHeight() || object.getPosition().y<= 0 ){


object.getVelosity().y *= -1;


}


object.getPosition().add(object.getVelosity().x * Gdx.graphics.getDeltaTime(),object.getVelosity().y*Gdx.graphics.getDeltaTime(),0);


}


}


}

Colored with dumpz.org