From 39b24ca2df9239af12e910230d3d9d6584290b01 Mon Sep 17 00:00:00 2001 From: Mahdi Dibaiee Date: Wed, 18 Apr 2018 10:26:50 +0430 Subject: [PATCH] feat(font): add new font and texts feat(about): about page feat(flip): new magic --- android/assets/fonts/PatrickHand.ttf | Bin 0 -> 56460 bytes build.gradle | 10 +- core/src/com/mdibaiee/supersnake/Colors.java | 1 + core/src/com/mdibaiee/supersnake/Magic.java | 3 +- .../com/mdibaiee/supersnake/Magics/Flip.java | 33 ++++ .../mdibaiee/supersnake/Magics/Growth.java | 3 +- .../com/mdibaiee/supersnake/Magics/Skull.java | 15 +- .../supersnake/Magics/SpeedBoost.java | 3 +- .../mdibaiee/supersnake/Magics/StarPoint.java | 10 +- core/src/com/mdibaiee/supersnake/Snake.java | 16 +- .../com/mdibaiee/supersnake/SuperSnake.java | 146 ++++++++++++++++-- 11 files changed, 213 insertions(+), 27 deletions(-) create mode 100644 android/assets/fonts/PatrickHand.ttf create mode 100644 core/src/com/mdibaiee/supersnake/Magics/Flip.java diff --git a/android/assets/fonts/PatrickHand.ttf b/android/assets/fonts/PatrickHand.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7528dcd5abbd17d598cba4eccb5bc0bcd74d9126 GIT binary patch literal 56460 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

W3 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 WCcfe%H2<`8`sNerk3FVgGyfl+i~#Te literal 0 HcmV?d00001 diff --git a/build.gradle b/build.gradle index 0514342..8d82a6e 100644 --- a/build.gradle +++ b/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_64" 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-box2d:$gdxVersion" compile "com.badlogicgames.ashley:ashley:$ashleyVersion" - + compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" } } diff --git a/core/src/com/mdibaiee/supersnake/Colors.java b/core/src/com/mdibaiee/supersnake/Colors.java index da696dd..4bbc2d1 100644 --- a/core/src/com/mdibaiee/supersnake/Colors.java +++ b/core/src/com/mdibaiee/supersnake/Colors.java @@ -7,4 +7,5 @@ public class Colors { 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 red = new Color(1, 0.34f, 0, 1); + static public Color spray = new Color(0.36f, 0.74f, 0.8f, 1); } diff --git a/core/src/com/mdibaiee/supersnake/Magic.java b/core/src/com/mdibaiee/supersnake/Magic.java index dfd3e87..4ed67d2 100644 --- a/core/src/com/mdibaiee/supersnake/Magic.java +++ b/core/src/com/mdibaiee/supersnake/Magic.java @@ -4,6 +4,7 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; +import com.badlogic.gdx.utils.Array; public abstract class Magic extends SizedPoint { SpriteBatch batch; @@ -67,7 +68,7 @@ public abstract class Magic extends SizedPoint { return false; } - abstract public void action(Snake snake); + abstract public void action(Snake snake, Array magics); // this method will be called after action at each iteration until it returns true // when it does return true ,the object is disposed diff --git a/core/src/com/mdibaiee/supersnake/Magics/Flip.java b/core/src/com/mdibaiee/supersnake/Magics/Flip.java new file mode 100644 index 0000000..d64f923 --- /dev/null +++ b/core/src/com/mdibaiee/supersnake/Magics/Flip.java @@ -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 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; + } +} diff --git a/core/src/com/mdibaiee/supersnake/Magics/Growth.java b/core/src/com/mdibaiee/supersnake/Magics/Growth.java index ac432bd..1f2d5b7 100644 --- a/core/src/com/mdibaiee/supersnake/Magics/Growth.java +++ b/core/src/com/mdibaiee/supersnake/Magics/Growth.java @@ -1,5 +1,6 @@ package com.mdibaiee.supersnake.Magics; +import com.badlogic.gdx.utils.Array; import com.mdibaiee.supersnake.Magic; import com.mdibaiee.supersnake.Snake; @@ -11,7 +12,7 @@ public class Growth extends Magic { super(x, y, "blue.png"); } - public void action(Snake snake) { + public void action(Snake snake, Array magics) { this.snake = snake; snake.size += 10; } diff --git a/core/src/com/mdibaiee/supersnake/Magics/Skull.java b/core/src/com/mdibaiee/supersnake/Magics/Skull.java index 1a94bcb..1e53a15 100644 --- a/core/src/com/mdibaiee/supersnake/Magics/Skull.java +++ b/core/src/com/mdibaiee/supersnake/Magics/Skull.java @@ -1,19 +1,29 @@ package com.mdibaiee.supersnake.Magics; +import com.badlogic.gdx.utils.Array; import com.mdibaiee.supersnake.Colors; import com.mdibaiee.supersnake.Magic; import com.mdibaiee.supersnake.Snake; public class Skull extends Magic { private Snake snake; - private int seconds = 15; + private int seconds = 7; + private int original_points; public Skull(float x, float y) { 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 magics) { this.snake = snake; + original_points = snake.point; snake.color = Colors.red; } @@ -22,6 +32,7 @@ public class Skull extends Magic { if (frames > seconds * 60) { snake.color = Colors.snake; + if (snake.point <= original_points) { snake.lives -= 1; } return true; } diff --git a/core/src/com/mdibaiee/supersnake/Magics/SpeedBoost.java b/core/src/com/mdibaiee/supersnake/Magics/SpeedBoost.java index 93153d2..e96c1eb 100644 --- a/core/src/com/mdibaiee/supersnake/Magics/SpeedBoost.java +++ b/core/src/com/mdibaiee/supersnake/Magics/SpeedBoost.java @@ -1,5 +1,6 @@ package com.mdibaiee.supersnake.Magics; +import com.badlogic.gdx.utils.Array; import com.mdibaiee.supersnake.Magic; import com.mdibaiee.supersnake.Snake; @@ -16,7 +17,7 @@ public class SpeedBoost extends Magic { original_y = y; } - public void action(Snake snake) { + public void action(Snake snake, Array magics) { this.snake = snake; snake.speed += 5; } diff --git a/core/src/com/mdibaiee/supersnake/Magics/StarPoint.java b/core/src/com/mdibaiee/supersnake/Magics/StarPoint.java index 1a2ef22..633ebb6 100644 --- a/core/src/com/mdibaiee/supersnake/Magics/StarPoint.java +++ b/core/src/com/mdibaiee/supersnake/Magics/StarPoint.java @@ -2,6 +2,8 @@ package com.mdibaiee.supersnake.Magics; 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.Snake; @@ -16,8 +18,14 @@ public class StarPoint extends Magic { return super.draw(); } - public void action(Snake snake) { + public void action(Snake snake, Array magics) { snake.point++; + + if (snake.color != Colors.snake) { + snake.point++; + } + + snake.color = Colors.snake; snake.addTail(); } diff --git a/core/src/com/mdibaiee/supersnake/Snake.java b/core/src/com/mdibaiee/supersnake/Snake.java index 6fcb5e1..8d3b15e 100644 --- a/core/src/com/mdibaiee/supersnake/Snake.java +++ b/core/src/com/mdibaiee/supersnake/Snake.java @@ -31,7 +31,7 @@ public class Snake extends DirectedPoint { private Array tail = new Array(); - public float speed = 2; + public float speed = 4; public int lives = 3; 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, y + cy(direction) * speed); - Gdx.app.log("Snake", "(" + ox + ", " + oy + ") > " + "(" + x + ", " + y + ")"); + // Gdx.app.log("Snake", "(" + ox + ", " + oy + ") > " + "(" + x + ", " + y + ")"); if (cycled) { tail.insert(0, new Tail(ox, oy, direction, 0)); @@ -112,11 +112,15 @@ public class Snake extends DirectedPoint { public void addTail() { Tail last = tail.peek(); - last.length += 5; - last.x -= cx(last.direction) * 5; - last.y -= cy(last.direction) * 5; + last.length += 25; + last.x -= cx(last.direction) * 25; + 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) { diff --git a/core/src/com/mdibaiee/supersnake/SuperSnake.java b/core/src/com/mdibaiee/supersnake/SuperSnake.java index b56ad3e..6b03aad 100644 --- a/core/src/com/mdibaiee/supersnake/SuperSnake.java +++ b/core/src/com/mdibaiee/supersnake/SuperSnake.java @@ -1,4 +1,7 @@ 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.badlogic.gdx.ApplicationAdapter; @@ -14,38 +17,103 @@ public class SuperSnake extends ApplicationAdapter { public int WIDTH = 800; 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; ShapeRenderer shapeRenderer; Texture img; Snake snake; BitmapFont font; + BitmapFont fontBig; + BitmapFont fontBtn; + + Snake pause_snake; + private int pause_frames = 0; + + private int gameover_timer = 3 * 60; private Array magics = new Array(); @Override public void create () { batch = new SpriteBatch(); - font = new BitmapFont(); WIDTH = Gdx.graphics.getBackBufferWidth(); HEIGHT = Gdx.graphics.getBackBufferHeight(); + PADDED_WIDTH = WIDTH - PADDING; + PADDED_HEIGHT = HEIGHT - PADDING; + Gdx.app.log("Snake", "VIEWPORT " + WIDTH + ", " + HEIGHT); 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 public void render () { Gdx.gl.glClearColor(Colors.background.r, Colors.background.g, Colors.background.b, Colors.background.a); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + if(Gdx.input.justTouched()) { float x = Gdx.input.getX(); 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 (y < HEIGHT / 2) { 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; for (Magic m: magics) { @@ -68,23 +184,24 @@ public class SuperSnake extends ApplicationAdapter { } if (drawn_magics < 3) { + double r = Math.random() * 100; - float mx = (float) Math.random() * WIDTH; - float my = (float) Math.random() * HEIGHT; + + Point p = random_point(); Magic newMagic; - if (r < 70) { - newMagic = new StarPoint(mx, my); + if (r < 60) { + newMagic = new StarPoint(p.x, p.y); + } else if (r < 70) { + newMagic = new SpeedBoost(p.x, p.y); } else if (r < 80) { - newMagic = new SpeedBoost(mx, my); + newMagic = new Growth(p.x, p.y); } else if (r < 90) { - newMagic = new Growth(mx, my); + newMagic = new Skull(p.x, p.y); } else { - newMagic = new Skull(mx, my); + newMagic = new Flip(p.x, p.y); } - newMagic = new SpeedBoost(mx, my); - magics.add(newMagic); } @@ -100,14 +217,17 @@ public class SuperSnake extends ApplicationAdapter { if (m.draw()) { magics.removeValue(m, true); } else if (snake.head_collision(m)) { - m.action(snake); + m.action(snake, magics); m.active = true; } } } 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(); }