feat(font): add new font and texts
feat(about): about page feat(flip): new magic
This commit is contained in:
parent
7be2c8bd6a
commit
39b24ca2df
BIN
android/assets/fonts/PatrickHand.ttf
Normal file
BIN
android/assets/fonts/PatrickHand.ttf
Normal file
Binary file not shown.
10
build.gradle
10
build.gradle
@ -56,7 +56,13 @@ project(":android") {
|
|||||||
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"
|
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"
|
||||||
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86_64"
|
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86_64"
|
||||||
compile "com.badlogicgames.ashley:ashley:$ashleyVersion"
|
compile "com.badlogicgames.ashley:ashley:$ashleyVersion"
|
||||||
|
|
||||||
|
compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
|
||||||
|
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,7 +74,7 @@ project(":core") {
|
|||||||
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
|
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
|
||||||
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
|
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
|
||||||
compile "com.badlogicgames.ashley:ashley:$ashleyVersion"
|
compile "com.badlogicgames.ashley:ashley:$ashleyVersion"
|
||||||
|
compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,4 +7,5 @@ public class Colors {
|
|||||||
static public Color snake = new Color(0, 0.9f, 0.7f, 1);
|
static public Color snake = new Color(0, 0.9f, 0.7f, 1);
|
||||||
static public Color ball = new Color(1, 0.4f, 0, 1);
|
static public Color ball = new Color(1, 0.4f, 0, 1);
|
||||||
static public Color red = new Color(1, 0.34f, 0, 1);
|
static public Color red = new Color(1, 0.34f, 0, 1);
|
||||||
|
static public Color spray = new Color(0.36f, 0.74f, 0.8f, 1);
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import com.badlogic.gdx.Gdx;
|
|||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
import com.badlogic.gdx.graphics.Texture;
|
import com.badlogic.gdx.graphics.Texture;
|
||||||
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
|
|
||||||
public abstract class Magic extends SizedPoint {
|
public abstract class Magic extends SizedPoint {
|
||||||
SpriteBatch batch;
|
SpriteBatch batch;
|
||||||
@ -67,7 +68,7 @@ public abstract class Magic extends SizedPoint {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract public void action(Snake snake);
|
abstract public void action(Snake snake, Array<Magic> magics);
|
||||||
|
|
||||||
// this method will be called after action at each iteration until it returns true
|
// this method will be called after action at each iteration until it returns true
|
||||||
// when it does return true ,the object is disposed
|
// when it does return true ,the object is disposed
|
||||||
|
33
core/src/com/mdibaiee/supersnake/Magics/Flip.java
Normal file
33
core/src/com/mdibaiee/supersnake/Magics/Flip.java
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package com.mdibaiee.supersnake.Magics;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
|
import com.mdibaiee.supersnake.Magic;
|
||||||
|
import com.mdibaiee.supersnake.Snake;
|
||||||
|
|
||||||
|
|
||||||
|
public class Flip extends Magic {
|
||||||
|
private Snake snake;
|
||||||
|
|
||||||
|
public Flip(float x, float y) {
|
||||||
|
super(x, y, "spiral.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void action(Snake snake, Array<Magic> magics) {
|
||||||
|
for (int i = 0; i < magics.size; i++) {
|
||||||
|
Magic m = magics.get(i);
|
||||||
|
m.move(m.y, m.x);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.snake = snake;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean draw() {
|
||||||
|
rotation = drawn % 360;
|
||||||
|
|
||||||
|
return super.draw();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean iter() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
package com.mdibaiee.supersnake.Magics;
|
package com.mdibaiee.supersnake.Magics;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
import com.mdibaiee.supersnake.Magic;
|
import com.mdibaiee.supersnake.Magic;
|
||||||
import com.mdibaiee.supersnake.Snake;
|
import com.mdibaiee.supersnake.Snake;
|
||||||
|
|
||||||
@ -11,7 +12,7 @@ public class Growth extends Magic {
|
|||||||
super(x, y, "blue.png");
|
super(x, y, "blue.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void action(Snake snake) {
|
public void action(Snake snake, Array<Magic> magics) {
|
||||||
this.snake = snake;
|
this.snake = snake;
|
||||||
snake.size += 10;
|
snake.size += 10;
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,29 @@
|
|||||||
package com.mdibaiee.supersnake.Magics;
|
package com.mdibaiee.supersnake.Magics;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
import com.mdibaiee.supersnake.Colors;
|
import com.mdibaiee.supersnake.Colors;
|
||||||
import com.mdibaiee.supersnake.Magic;
|
import com.mdibaiee.supersnake.Magic;
|
||||||
import com.mdibaiee.supersnake.Snake;
|
import com.mdibaiee.supersnake.Snake;
|
||||||
|
|
||||||
public class Skull extends Magic {
|
public class Skull extends Magic {
|
||||||
private Snake snake;
|
private Snake snake;
|
||||||
private int seconds = 15;
|
private int seconds = 7;
|
||||||
|
private int original_points;
|
||||||
|
|
||||||
public Skull(float x, float y) {
|
public Skull(float x, float y) {
|
||||||
super(x, y, "skull.png");
|
super(x, y, "skull.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void action(Snake snake) {
|
public boolean draw() {
|
||||||
|
float rx = (float) Math.random() * 30 - 15;
|
||||||
|
rotation = rx;
|
||||||
|
|
||||||
|
return super.draw();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void action(Snake snake, Array<Magic> magics) {
|
||||||
this.snake = snake;
|
this.snake = snake;
|
||||||
|
original_points = snake.point;
|
||||||
snake.color = Colors.red;
|
snake.color = Colors.red;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -22,6 +32,7 @@ public class Skull extends Magic {
|
|||||||
|
|
||||||
if (frames > seconds * 60) {
|
if (frames > seconds * 60) {
|
||||||
snake.color = Colors.snake;
|
snake.color = Colors.snake;
|
||||||
|
if (snake.point <= original_points) { snake.lives -= 1; }
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.mdibaiee.supersnake.Magics;
|
package com.mdibaiee.supersnake.Magics;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
import com.mdibaiee.supersnake.Magic;
|
import com.mdibaiee.supersnake.Magic;
|
||||||
import com.mdibaiee.supersnake.Snake;
|
import com.mdibaiee.supersnake.Snake;
|
||||||
|
|
||||||
@ -16,7 +17,7 @@ public class SpeedBoost extends Magic {
|
|||||||
original_y = y;
|
original_y = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void action(Snake snake) {
|
public void action(Snake snake, Array<Magic> magics) {
|
||||||
this.snake = snake;
|
this.snake = snake;
|
||||||
snake.speed += 5;
|
snake.speed += 5;
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,8 @@ package com.mdibaiee.supersnake.Magics;
|
|||||||
|
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
|
import com.mdibaiee.supersnake.Colors;
|
||||||
import com.mdibaiee.supersnake.Magic;
|
import com.mdibaiee.supersnake.Magic;
|
||||||
import com.mdibaiee.supersnake.Snake;
|
import com.mdibaiee.supersnake.Snake;
|
||||||
|
|
||||||
@ -16,8 +18,14 @@ public class StarPoint extends Magic {
|
|||||||
return super.draw();
|
return super.draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void action(Snake snake) {
|
public void action(Snake snake, Array<Magic> magics) {
|
||||||
snake.point++;
|
snake.point++;
|
||||||
|
|
||||||
|
if (snake.color != Colors.snake) {
|
||||||
|
snake.point++;
|
||||||
|
}
|
||||||
|
|
||||||
|
snake.color = Colors.snake;
|
||||||
snake.addTail();
|
snake.addTail();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ public class Snake extends DirectedPoint {
|
|||||||
|
|
||||||
private Array<Tail> tail = new Array<Tail>();
|
private Array<Tail> tail = new Array<Tail>();
|
||||||
|
|
||||||
public float speed = 2;
|
public float speed = 4;
|
||||||
public int lives = 3;
|
public int lives = 3;
|
||||||
|
|
||||||
public Snake(float x, float y, int length) {
|
public Snake(float x, float y, int length) {
|
||||||
@ -89,7 +89,7 @@ public class Snake extends DirectedPoint {
|
|||||||
boolean cycled = this.move(x + cx(direction) * speed,
|
boolean cycled = this.move(x + cx(direction) * speed,
|
||||||
y + cy(direction) * speed);
|
y + cy(direction) * speed);
|
||||||
|
|
||||||
Gdx.app.log("Snake", "(" + ox + ", " + oy + ") > " + "(" + x + ", " + y + ")");
|
// Gdx.app.log("Snake", "(" + ox + ", " + oy + ") > " + "(" + x + ", " + y + ")");
|
||||||
|
|
||||||
if (cycled) {
|
if (cycled) {
|
||||||
tail.insert(0, new Tail(ox, oy, direction, 0));
|
tail.insert(0, new Tail(ox, oy, direction, 0));
|
||||||
@ -112,11 +112,15 @@ public class Snake extends DirectedPoint {
|
|||||||
|
|
||||||
public void addTail() {
|
public void addTail() {
|
||||||
Tail last = tail.peek();
|
Tail last = tail.peek();
|
||||||
last.length += 5;
|
last.length += 25;
|
||||||
last.x -= cx(last.direction) * 5;
|
last.x -= cx(last.direction) * 25;
|
||||||
last.y -= cy(last.direction) * 5;
|
last.y -= cy(last.direction) * 25;
|
||||||
|
|
||||||
speed += 0.5;
|
speed += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clearTail() {
|
||||||
|
tail.removeRange(1, tail.size);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean head_collision(SizedPoint p) {
|
public boolean head_collision(SizedPoint p) {
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
package com.mdibaiee.supersnake;
|
package com.mdibaiee.supersnake;
|
||||||
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.FreeTypeFontParameter;
|
||||||
import com.mdibaiee.supersnake.Magics.*;
|
import com.mdibaiee.supersnake.Magics.*;
|
||||||
|
|
||||||
import com.badlogic.gdx.ApplicationAdapter;
|
import com.badlogic.gdx.ApplicationAdapter;
|
||||||
@ -14,38 +17,103 @@ public class SuperSnake extends ApplicationAdapter {
|
|||||||
public int WIDTH = 800;
|
public int WIDTH = 800;
|
||||||
public int HEIGHT = 480;
|
public int HEIGHT = 480;
|
||||||
|
|
||||||
|
private int PADDED_WIDTH;
|
||||||
|
private int PADDED_HEIGHT;
|
||||||
|
private int PADDING = 20;
|
||||||
|
|
||||||
|
private int INITIAL_SNAKE_LENGTH = 70;
|
||||||
|
|
||||||
|
private boolean paused;
|
||||||
|
|
||||||
SpriteBatch batch;
|
SpriteBatch batch;
|
||||||
ShapeRenderer shapeRenderer;
|
ShapeRenderer shapeRenderer;
|
||||||
Texture img;
|
Texture img;
|
||||||
Snake snake;
|
Snake snake;
|
||||||
BitmapFont font;
|
BitmapFont font;
|
||||||
|
BitmapFont fontBig;
|
||||||
|
BitmapFont fontBtn;
|
||||||
|
|
||||||
|
Snake pause_snake;
|
||||||
|
private int pause_frames = 0;
|
||||||
|
|
||||||
|
private int gameover_timer = 3 * 60;
|
||||||
|
|
||||||
private Array<Magic> magics = new Array<Magic>();
|
private Array<Magic> magics = new Array<Magic>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void create () {
|
public void create () {
|
||||||
batch = new SpriteBatch();
|
batch = new SpriteBatch();
|
||||||
font = new BitmapFont();
|
|
||||||
|
|
||||||
WIDTH = Gdx.graphics.getBackBufferWidth();
|
WIDTH = Gdx.graphics.getBackBufferWidth();
|
||||||
HEIGHT = Gdx.graphics.getBackBufferHeight();
|
HEIGHT = Gdx.graphics.getBackBufferHeight();
|
||||||
|
|
||||||
|
PADDED_WIDTH = WIDTH - PADDING;
|
||||||
|
PADDED_HEIGHT = HEIGHT - PADDING;
|
||||||
|
|
||||||
Gdx.app.log("Snake", "VIEWPORT " + WIDTH + ", " + HEIGHT);
|
Gdx.app.log("Snake", "VIEWPORT " + WIDTH + ", " + HEIGHT);
|
||||||
|
|
||||||
shapeRenderer = new ShapeRenderer();
|
shapeRenderer = new ShapeRenderer();
|
||||||
|
|
||||||
snake = new Snake(WIDTH / 2, HEIGHT / 2, 50);
|
snake = new Snake(WIDTH / 2, HEIGHT / 2, INITIAL_SNAKE_LENGTH);
|
||||||
|
pause_snake = new Snake(WIDTH / 2, 200, 100);
|
||||||
|
|
||||||
|
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/PatrickHand.ttf"));
|
||||||
|
FreeTypeFontParameter parameter = new FreeTypeFontParameter();
|
||||||
|
parameter.size = 32;
|
||||||
|
font = generator.generateFont(parameter);
|
||||||
|
|
||||||
|
parameter.size = 52;
|
||||||
|
parameter.borderColor = Colors.spray;
|
||||||
|
parameter.borderWidth = 2;
|
||||||
|
fontBtn = generator.generateFont(parameter);
|
||||||
|
|
||||||
|
parameter.size = 80;
|
||||||
|
parameter.color = Color.WHITE;
|
||||||
|
parameter.borderWidth = 2;
|
||||||
|
parameter.borderColor = Colors.red;
|
||||||
|
fontBig = generator.generateFont(parameter);
|
||||||
|
|
||||||
|
generator.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Point random_point() {
|
||||||
|
float rx = (float) Math.random() * PADDED_WIDTH + PADDING;
|
||||||
|
float ry = (float) Math.random() * PADDED_HEIGHT + PADDING;
|
||||||
|
|
||||||
|
return new Point(rx, ry);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Direction random_direction() {
|
||||||
|
double r = Math.random() * 100;
|
||||||
|
if (r < 25) {
|
||||||
|
return Direction.Down;
|
||||||
|
} else if (r < 50) {
|
||||||
|
return Direction.Up;
|
||||||
|
} else if (r < 75) {
|
||||||
|
return Direction.Left;
|
||||||
|
} else {
|
||||||
|
return Direction.Right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render () {
|
public void render () {
|
||||||
Gdx.gl.glClearColor(Colors.background.r, Colors.background.g, Colors.background.b, Colors.background.a);
|
Gdx.gl.glClearColor(Colors.background.r, Colors.background.g, Colors.background.b, Colors.background.a);
|
||||||
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
|
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
|
||||||
|
|
||||||
|
|
||||||
if(Gdx.input.justTouched()) {
|
if(Gdx.input.justTouched()) {
|
||||||
float x = Gdx.input.getX();
|
float x = Gdx.input.getX();
|
||||||
float y = Gdx.input.getY();
|
float y = Gdx.input.getY();
|
||||||
|
|
||||||
|
if (x > WIDTH - 150 && y > HEIGHT - 60) {
|
||||||
|
paused = true;
|
||||||
|
return;
|
||||||
|
} else if (paused) {
|
||||||
|
paused = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (snake.direction == Direction.Left || snake.direction == Direction.Right) {
|
if (snake.direction == Direction.Left || snake.direction == Direction.Right) {
|
||||||
if (y < HEIGHT / 2) {
|
if (y < HEIGHT / 2) {
|
||||||
snake.setDirection(Direction.Up);
|
snake.setDirection(Direction.Up);
|
||||||
@ -61,6 +129,54 @@ public class SuperSnake extends ApplicationAdapter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (paused) {
|
||||||
|
batch.begin();
|
||||||
|
fontBtn.draw(batch, "Super Snake", WIDTH / 2 - 125, HEIGHT - 150);
|
||||||
|
|
||||||
|
font.draw(batch, "Simple, fast-paced snake game packed with extra fun!", WIDTH / 2 - 300, HEIGHT - 250);
|
||||||
|
font.draw(batch, "by Mahdi Dibaiee", WIDTH / 2 - 100, HEIGHT - 300);
|
||||||
|
|
||||||
|
font.draw(batch, "Source code available on", WIDTH / 2 - 135, HEIGHT - 400);
|
||||||
|
font.draw(batch, "github.com/mdibaiee/super-snake", WIDTH / 2 - 200, HEIGHT - 450);
|
||||||
|
|
||||||
|
font.draw(batch, "Powered by LibGDX", WIDTH / 2 - 120, 150);
|
||||||
|
batch.end();
|
||||||
|
|
||||||
|
pause_snake.draw(shapeRenderer);
|
||||||
|
pause_snake.move();
|
||||||
|
|
||||||
|
int luck = (int) (Math.random() * 30 - 15);
|
||||||
|
if (pause_frames % (20 + luck) == 0) {
|
||||||
|
pause_snake.setDirection(random_direction());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pause_frames % (250 + luck) == 0 && pause_frames < 1000) {
|
||||||
|
pause_snake.addTail();
|
||||||
|
}
|
||||||
|
|
||||||
|
pause_frames++;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (snake.isDead()) {
|
||||||
|
batch.begin();
|
||||||
|
fontBig.draw(batch, "Game Over", WIDTH / 2 - 160, HEIGHT / 2 + 40);
|
||||||
|
String seconds = String.format("%.1f", gameover_timer / 60f);
|
||||||
|
font.draw(batch, seconds, WIDTH / 2 - 10, HEIGHT / 2 - 50);
|
||||||
|
gameover_timer -= 1;
|
||||||
|
batch.end();
|
||||||
|
|
||||||
|
if (gameover_timer <= 0) {
|
||||||
|
Point r = random_point();
|
||||||
|
snake = new Snake(r.x, r.y, INITIAL_SNAKE_LENGTH);
|
||||||
|
magics.clear();
|
||||||
|
gameover_timer = 3 * 60;
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int drawn_magics = 0;
|
int drawn_magics = 0;
|
||||||
|
|
||||||
for (Magic m: magics) {
|
for (Magic m: magics) {
|
||||||
@ -68,23 +184,24 @@ public class SuperSnake extends ApplicationAdapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (drawn_magics < 3) {
|
if (drawn_magics < 3) {
|
||||||
|
|
||||||
double r = Math.random() * 100;
|
double r = Math.random() * 100;
|
||||||
float mx = (float) Math.random() * WIDTH;
|
|
||||||
float my = (float) Math.random() * HEIGHT;
|
Point p = random_point();
|
||||||
|
|
||||||
Magic newMagic;
|
Magic newMagic;
|
||||||
if (r < 70) {
|
if (r < 60) {
|
||||||
newMagic = new StarPoint(mx, my);
|
newMagic = new StarPoint(p.x, p.y);
|
||||||
|
} else if (r < 70) {
|
||||||
|
newMagic = new SpeedBoost(p.x, p.y);
|
||||||
} else if (r < 80) {
|
} else if (r < 80) {
|
||||||
newMagic = new SpeedBoost(mx, my);
|
newMagic = new Growth(p.x, p.y);
|
||||||
} else if (r < 90) {
|
} else if (r < 90) {
|
||||||
newMagic = new Growth(mx, my);
|
newMagic = new Skull(p.x, p.y);
|
||||||
} else {
|
} else {
|
||||||
newMagic = new Skull(mx, my);
|
newMagic = new Flip(p.x, p.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
newMagic = new SpeedBoost(mx, my);
|
|
||||||
|
|
||||||
magics.add(newMagic);
|
magics.add(newMagic);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,14 +217,17 @@ public class SuperSnake extends ApplicationAdapter {
|
|||||||
if (m.draw()) {
|
if (m.draw()) {
|
||||||
magics.removeValue(m, true);
|
magics.removeValue(m, true);
|
||||||
} else if (snake.head_collision(m)) {
|
} else if (snake.head_collision(m)) {
|
||||||
m.action(snake);
|
m.action(snake, magics);
|
||||||
m.active = true;
|
m.active = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
batch.begin();
|
batch.begin();
|
||||||
font.draw(batch, Integer.toString(snake.point), 10, 25);
|
font.draw(batch, "Points: " + snake.point, 20, 35);
|
||||||
|
font.draw(batch, "Lives: " + snake.lives, 150, 35);
|
||||||
|
|
||||||
|
font.draw(batch, "About", WIDTH - 90, 35);
|
||||||
batch.end();
|
batch.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user