Дипломная (вкр): Разработка игрового приложения для мобильных платформ

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

}Scenario(String _fileMap, String _fileSpawn, String _filePlayer, String _fileEnemy) {

//TODO: scenario init

}void setMap(String _filename) {= new Map(_filename);

}void setMap(Map _map) {= _map;

}void setSpawns(String _filename) {= new ArrayList<Point>();= new ArrayList<Point>();(_filename);

}void addPlayerSpawn(Point _point) {.add(_point);

}void addEnemySpawn(Point _point) {.add(_point);

}void setPlayerTeam(String _filename) {= new ArrayList<Unit>();(_filename);

}void setEnemyTeam(String _filename) {= new ArrayList<Unit>();(_filename);

}void addPlayerUnit(Unit _unit) {.add(_unit);

_unit.setFlag(Game1.flagPlayer);

}void addEnemyUnit(Unit _unit) {.add(_unit);

_unit.setFlag(Game1.flagEnemy);

}void parseSpawns(String _filename) {file = Gdx.files.internal(_filename);str = Game1.formatString(file.readString());spacePos;(int y = 0; y < map.HEIGHT; y++) {(int x = 0; x < map.WIDTH - 1; x++) {= str.indexOf(" ");(Integer.parseInt(str.substring(0, spacePos)), x, y);= str.substring(spacePos + 1);

}(y == map.HEIGHT - 1) {(Integer.parseInt(str.substring(0)), map.WIDTH - 1, y);

} else {= str.indexOf(" ");(Integer.parseInt(str.substring(0, spacePos)), map.WIDTH - 1, y);= str.substring(spacePos + 1);

}

}

}void parsePlayerTeam(String _filename) {

//TODO: parse

}void parseEnemyTeam(String _filename) {

//TODO: parse

}void parseSpawnCode(int _code, int _x, int _y) {(_code) {1: {(new Point(_x, _y));;

}

}

}void placeUnits() {p;(Unit unit: playerTeam) {(!playerSpawn.isEmpty()) {= playerSpawn.remove(0);.getField(p).setUnit(unit);.setLocate(p);

}

}(Unit unit: enemyTeam) {(!enemySpawn.isEmpty()) {= enemySpawn.remove(0);.getField(p).setUnit(unit);.setLocate(p);

}

}

}void drawUnits(Pixmap _pxmp) {(Unit unit: playerTeam) {

_pxmp.drawPixmap(unit.getPixmap(), unit.getLocate().x * Game1.SCALE, unit.getLocate().y * Game1.SCALE, 0, 0, Game1.SCALE, Game1.SCALE);

}(Unit unit: enemyTeam) {

_pxmp.drawPixmap(unit.getPixmap(), unit.getLocate().x * Game1.SCALE, unit.getLocate().y * Game1.SCALE, 0, 0, Game1.SCALE, Game1.SCALE);

}

}void drawUnits(SpriteBatch _sb) {(Unit unit: playerTeam) {.setSpritePosition(Gdx.graphics.getWidth() * unit.getLocate().x / map.WIDTH,

((Gdx.graphics.getHeight() - Game1.INTERFACE_HEIGHT) * unit.getLocate().y / map.HEIGHT) + Game1.INTERFACE_HEIGHT);.getSprite().draw(_sb);.getFlag().draw(_sb);

}(Unit unit: enemyTeam) {.setSpritePosition(Gdx.graphics.getWidth() * unit.getLocate().x / map.WIDTH,

((Gdx.graphics.getHeight() - Game1.INTERFACE_HEIGHT) * unit.getLocate().y / map.HEIGHT) + Game1.INTERFACE_HEIGHT);.getSprite().draw(_sb);.getFlag().draw(_sb);

}

}

}

Unit.java

package com.vlerof.game1.Scenario;com.badlogic.gdx.graphics.Pixmap;com.badlogic.gdx.graphics.Texture;com.badlogic.gdx.graphics.g2d.Sprite;com.vlerof.game1.Tile;java.awt.Point;java.util.ArrayList;class Unit {Texture texture;Sprite sprite;Sprite flag;Pixmap pixmap;String name;Point locate;Level level;ArrayList<Point> moves;ArrayList<FieldType> moveTypes;ArrayList<Attack> attacks;boolean alive;int healthCurrent;int healthMax;int healthPerLvl;int defenseMelee;int defenseRange;int defenseFire;Unit(String _name, int _maxLevel, Tile _tile) {= _name;= new Level(0, _maxLevel);= new ArrayList<Attack>();= _tile.getTexture();= new Sprite(texture);= _tile.getPixmap();

}Unit setLocate(Point _locate) {= _locate;this;

}Point getLocate() {locate;

}void setSpritePosition(float _x, float _y) {.setPosition(_x, _y);.setPosition(_x + 32, _y);

}void addExp(int _amount) {lvlUps = level.addExp(_amount);(lvlUps > 0) {+= lvlUps * healthPerLvl;= healthMax;

}

}int getLevel() {level.getLevel();

}void setHealth(int _hpMax, int _hpPerLvl){= healthMax = _hpMax;= _hpPerLvl;= true;

}void setDefenses(int _defMelee, int _defRange, int _defFire) {= _defMelee;= _defRange;= _defFire;

}void addMove(Point _point) {.add(_point);

}void addMoveType(FieldType _type) {.add(_type);

}void addAttack(Attack _attack) {.add(_attack);

}ArrayList<Point> getMoves(){moves;

}ArrayList<FieldType> getMoveTypes(){moveTypes;

}ArrayList<Attack> getAttacks(){attacks;

}Texture getTexture() {texture;

}Sprite getSprite() {sprite;

}Pixmap getPixmap() {pixmap;

}void setFlag(Texture _texture) {= new Sprite(_texture);

}Sprite getFlag() {flag;

}boolean isAlive() {alive;

}

}

Level.java

package com.vlerof.game1.Scenario;java.util.ArrayList;class Level {int level;final int max;int experience;static final ArrayList<Integer> sumToUp = new ArrayList<Integer>();Level(int _experience, int _max) {(_experience > 0 && _experience < 1000000) {= _experience;

} else {= 0;

}(_max > 0 && _max < 100) {= _max;

} else {= 10;

}

}int getLevel() {level;

}int addExp(int _amount) {levelUps = 0;+= _amount;sumToNext = sumToUp.get(level);(experience > sumToNext && level < max) {-= sumToNext;++;++;= sumToUp.get(level);

}levelUps;

}static void initLevels() {.add(15);(int i = 1; i < 100; i++) {.add((i + 3) * 5 + sumToUp.get(i - 1));

}

}

}

FieldType.java

package com.vlerof.game1.Scenario;enum FieldType {,,,,,

}

Field.java

package com.vlerof.game1.Scenario;com.vlerof.game1.Game1;com.vlerof.game1.Tile;java.util.ArrayList;java.util.HashMap;class Field {static HashMap<FieldType, ArrayList<Tile>> tilesMap = new HashMap<FieldType, ArrayList<Tile>>();FieldType fieldType;Unit unit;int tileNumber;Field(FieldType _type, int _tileNumber) {= _type;= null;(_tileNumber < tilesMap.get(_type).size()) {= _tileNumber;

} else {= 0;

}

}Tile getTile() {tilesMap.get(fieldType).get(tileNumber);

}FieldType getType() {fieldType;

}Unit getUnit(){unit;

}void setUnit(Unit _unit) {= _unit;

}int getTilesCount() {tilesMap.get(fieldType).size();

}static int getTypeTilesCount(FieldType _type) {tilesMap.get(_type).size();

}static void initTiles() {.put(FieldType.PLAIN, new ArrayList<Tile>());.put(FieldType.FOREST, new ArrayList<Tile>());.put(FieldType.MOUNTAIN, new ArrayList<Tile>());.put(FieldType.WATER, new ArrayList<Tile>());.put(FieldType.BLOCKED, new ArrayList<Tile>());.put(FieldType.SNOW, new ArrayList<Tile>());

}(int i = 0; i < 6; i++) {.add(new Tile(Game1.fieldMap, i, 3));

}(int i = 0; i < 3; i++) {.add(new Tile(Game1.fieldMap, i + 3, 4));

}

///////////////////////////////////////////////////////

//Forests= tilesMap.get(FieldType.FOREST);(int i = 0; i < 9; i++) {.add(new Tile(Game1.fieldMap, i, 6));

}(int i = 0; i < 3; i++) {.add(new Tile(Game1.fieldMap, i + 6, 7));

}

///////////////////////////////////////////////////////

//Mountains= tilesMap.get(FieldType.MOUNTAIN);(int i = 0; i < 3; i++) {.add(new Tile(Game1.fieldMap, i, 9));

}(int i = 0; i < 3; i++) {.add(new Tile(Game1.fieldMap, i + 6, 9));

}(int i = 0; i < 9; i++) {.add(new Tile(Game1.fieldMap, i, 13));

}

///////////////////////////////////////////////////////

//Water= tilesMap.get(FieldType.WATER);(int i = 0; i < 3; i++) {.add(new Tile(Game1.fieldMap, i + 6, 1));

}(int i = 0; i < 3; i++) {.add(new Tile(Game1.fieldMap, i, 2));

}

///////////////////////////////////////////////////////

//Blocked= tilesMap.get(FieldType.BLOCKED);(int i = 0; i < 3; i++) {.add(new Tile(Game1.fieldMap, i, 3));

}(int i = 0; i < 3; i++) {.add(new Tile(Game1.fieldMap, i + 6, 4));

}(int i = 0; i < 3; i++) {.add(new Tile(Game1.fieldMap, i + 6, 8));

}

///////////////////////////////////////////////////////

//Snow= tilesMap.get(FieldType.SNOW);(int i = 0; i < 3; i++) {.add(new Tile(Game1.fieldMap, i + 3, 9));

}(int i = 0; i < 3; i++) {.add(new Tile(Game1.fieldMap, i + 6, 10));

}(int i = 0; i < 3; i++) {.add(new Tile(Game1.fieldMap, i + 6, 11));

}

///////////////////////////////////////////////////////

}

}

GameStateManager.java

package com.vlerof.game1.States;com.badlogic.gdx.graphics.g2d.SpriteBatch;java.util.Stack;class GameStateManager {Stack<State> states;GameStateManager() {= new Stack<State>();

}void push(State _state) {.push(_state);

}void pop() {.pop().dispose();

}void set(State _state) {.pop().dispose();.push(_state);

}void update(float _dt) {.peek().update(_dt);

}void render(SpriteBatch _sb) {.peek().render(_sb);

}

}

State.java

package com.vlerof.game1.States;com.badlogic.gdx.graphics.OrthographicCamera;com.badlogic.gdx.graphics.g2d.SpriteBatch;com.badlogic.gdx.math.Vector3;abstract class State {OrthographicCamera camera;Vector3 mouse;GameStateManager gsm;State(GameStateManager _gsm) {= _gsm;= new OrthographicCamera();= new Vector3();

}abstract void handleInput();abstract void update(float dt);abstract void render(SpriteBatch sb);abstract void dispose();

}

MenuState.java

package com.vlerof.game1.States;com.badlogic.gdx.Gdx;com.badlogic.gdx.graphics.Texture;com.badlogic.gdx.graphics.g2d.SpriteBatch;com.vlerof.game1.Game1;class MenuState extends State {Texture background;MenuState(GameStateManager _gsm) {(_gsm);= new Texture("Map.jpg");

}

@Overridevoid handleInput() {(Gdx.input.justTouched()) {x = Gdx.input.getX();y = Gdx.input.getY();(x > Gdx.graphics.getWidth() / 2 - Game1.buttonStart.getWidth() / 2 &&< Gdx.graphics.getWidth() / 2 + Game1.buttonStart.getWidth() / 2 &&< Gdx.graphics.getHeight() / 3 &&> Gdx.graphics.getHeight() / 3 - Game1.buttonStart.getHeight()) {.set(new ScenarioState(gsm, Game1.getDefaultScenario()));

} else if (x > Gdx.graphics.getWidth() / 2 - Game1.buttonExit.getWidth() / 2 &&< Gdx.graphics.getWidth() / 2 + Game1.buttonExit.getWidth() / 2 &&< Gdx.graphics.getHeight() * 2 / 3 &&> Gdx.graphics.getHeight() * 2 / 3 - Game1.buttonExit.getHeight()) {.app.exit();

}

}

}

@Overridevoid update(float dt) {();

}

@Overridevoid render(SpriteBatch sb) {.begin();.draw(background, 0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());.draw(Game1.buttonStart, Gdx.graphics.getWidth() / 2 - Game1.buttonStart.getWidth() / 2,.graphics.getHeight() * 2 / 3);.draw(Game1.buttonExit, Gdx.graphics.getWidth() / 2 - Game1.buttonExit.getWidth() / 2,.graphics.getHeight() / 3);

//TODO: Buttons.end();

}

@Overridevoid dispose() {.dispose();

}

}

ScenarioState.java

package com.vlerof.game1.States;com.badlogic.gdx.Gdx;com.badlogic.gdx.graphics.GL20;com.badlogic.gdx.graphics.Pixmap;com.badlogic.gdx.graphics.Texture;com.badlogic.gdx.graphics.g2d.SpriteBatch;com.vlerof.game1.Game1;com.vlerof.game1.Scenario.Scenario;class ScenarioState extends State {Scenario scenario;Pixmap mapPixmap;Texture mapTexture;Texture interfaceTexture;ScenarioState(GameStateManager gsm, Scenario _scenario) {(gsm);= _scenario;.placeUnits();= _scenario.map.getPixmap();= new Texture(mapPixmap);pxmp = new Pixmap(Game1.WIDTH, Game1.INTERFACE_HEIGHT, Pixmap.Format.RGBA8888);.setColor(Game1.COLOR_SIENNA);.fillRectangle(0, 0, Game1.WIDTH, Game1.INTERFACE_HEIGHT);.setColor(Game1.COLOR_SADDLEBROWN);.fillRectangle(Game1.ATTACK_BORDER, 0, 2, Game1.INTERFACE_HEIGHT);.setColor(Game1.COLOR_SADDLEBROWN);.fillRectangle(0, 0, Game1.WIDTH, 5);= new Texture(pxmp);

}

@Overridevoid handleInput() {

}

@Overridevoid update(float dt) {

}

@Overridevoid render(SpriteBatch sb) {.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);.begin();.draw(mapTexture, 0, Game1.INTERFACE_HEIGHT, Gdx.graphics.getWidth(), Gdx.graphics.getHeight() - Game1.INTERFACE_HEIGHT);.draw(interfaceTexture, 0, 0, Game1.WIDTH, Game1.INTERFACE_HEIGHT);.drawUnits(sb);.end();

}

@Overridevoid dispose() {.dispose();.dispose();

}

}

Источник: https://www.bibliofond.ru/detail.aspx?id=897401