Skip to content

Commit 49393fc

Browse files
committed
Added animation tile class and animated tiles(bubbles, waves)
1 parent b8e0066 commit 49393fc

17 files changed

Lines changed: 145 additions & 22 deletions

File tree

config.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
fullscreen=Off
2-
music_volume=2
2+
music_volume=0
33
se_volume=1

src/main/java/com/khomsi/game/entity/Entity.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,6 @@ public void update() {
189189
} else {
190190
setAction();
191191
changeDirection(direction);
192-
//TODO idk how to make special movement for each mob yet
193192
spriteMovement();
194193
}
195194
if (invincible) {
@@ -342,10 +341,6 @@ public boolean inCamera() {
342341
}
343342

344343
public void draw(Graphics2D graphics2D) {
345-
/*
346-
@multiplier increase the draw distance of entity to avoid the optimization
347-
(when object disappear earlier, than it moved from our screen)
348-
*/
349344
//actual coords to draw the stuff on game screen
350345
int screenX = getScreenX();
351346
int screenY = getScreenY();
@@ -819,14 +814,6 @@ public int getParticleMaxHp() {
819814
return maxHp;
820815
}
821816

822-
// public void changeDirection() {
823-
// switch (direction) {
824-
// case "up" -> worldY -= speed;
825-
// case "down" -> worldY += speed;
826-
// case "left" -> worldX -= speed;
827-
// case "right" -> worldX += speed;
828-
// }
829-
// }
830817
public void moveObj(String direction) {
831818

832819
}

src/main/java/com/khomsi/game/main/GameManager.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public class GameManager extends JPanel implements Runnable {
5050
int screenWidthFull = SCREEN_WIDTH;
5151
int screenHeightFull = SCREEN_HEIGHT;
5252
BufferedImage tempScreen;
53-
public Graphics2D g2d;
53+
public Graphics2D g2d;
5454

5555
//TOOLS FOR GAME
5656
public KeyHandler keyHandler = new KeyHandler(this);
@@ -73,8 +73,9 @@ public class GameManager extends JPanel implements Runnable {
7373
//ENTITY AND OBJECTS
7474
//TODO extend the massive, when you'll have more objects
7575
public Entity[][] object = new Entity[maxMap][30];
76-
public Entity[][] npcList = new Entity[maxMap][20];
77-
public Entity[][] mobs = new Entity[maxMap][20];
76+
public Entity[][] npcList = new Entity[maxMap][30];
77+
public Entity[][] mobs = new Entity[maxMap][30];
78+
public Entity[][] animatedTiles = new Entity[maxMap][30];
7879
List<Entity> entities = new ArrayList<>();
7980
public InteractiveTile[][] interactTile = new InteractiveTile[maxMap][50];
8081
public Entity[][] projectile = new Entity[maxMap][20];
@@ -220,6 +221,10 @@ public void update() {
220221
if (npc != null)
221222
npc.update();
222223

224+
for (Entity animated : animatedTiles[currentMap])
225+
if (animated != null)
226+
animated.update();
227+
223228
//Mob loop
224229
for (int i = 0; i < mobs[1].length; i++) {
225230
if (mobs[currentMap][i] != null) {
@@ -283,6 +288,7 @@ else if (gameState == MAP_STATE) {
283288
entities.add(player);
284289
//Add and render npc, obj, mobs, projectiles to draw list
285290
drawMethodArray(npcList);
291+
drawMethodArray(animatedTiles);
286292
drawMethodArray(object);
287293
drawMethodArray(mobs);
288294
//Interactive tiles

src/main/java/com/khomsi/game/main/logic/EntityGenerator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
package com.khomsi.game.main.logic;
22

3+
import com.khomsi.game.entity.Entity;
34
import com.khomsi.game.main.GameManager;
45
import com.khomsi.game.objects.equipment.*;
5-
import com.khomsi.game.objects.spells.ManaObject;
66
import com.khomsi.game.objects.interact.ChestObject;
77
import com.khomsi.game.objects.interact.CoinBObject;
88
import com.khomsi.game.objects.interact.KeyObject;
9+
import com.khomsi.game.objects.light.LanternObject;
910
import com.khomsi.game.objects.outside.*;
1011
import com.khomsi.game.objects.projectTiles.FireBallObject;
11-
import com.khomsi.game.entity.Entity;
12-
import com.khomsi.game.objects.spells.HeartObject;
13-
import com.khomsi.game.objects.light.LanternObject;
1412
import com.khomsi.game.objects.projectTiles.MagicArrowObject;
1513
import com.khomsi.game.objects.projectTiles.RockObject;
14+
import com.khomsi.game.objects.spells.HeartObject;
15+
import com.khomsi.game.objects.spells.ManaObject;
1616
import com.khomsi.game.objects.spells.PotionObject;
1717

1818
public class EntityGenerator {

src/main/java/com/khomsi/game/main/tools/PlaceObjects.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import com.khomsi.game.tilesinteractive.Bush;
1919
import com.khomsi.game.tilesinteractive.DestructibleWall;
2020
import com.khomsi.game.tilesinteractive.SwitchPress;
21+
import com.khomsi.game.tilesinteractive.animated.water.WaterBubbles;
22+
import com.khomsi.game.tilesinteractive.animated.water.WaterHurricane;
2123

2224
public class PlaceObjects {
2325
GameManager gameManager;
@@ -156,6 +158,7 @@ private void interactiveTilesOnMap0() {
156158
gameManager.interactTile[mapNum][index] = new Bush(gameManager, 21, 28);
157159
index++;
158160
gameManager.interactTile[mapNum][index] = new Bush(gameManager, 28, 28);
161+
159162
}
160163

161164
private void interactiveTilesOnMap2() {
@@ -192,6 +195,7 @@ public void setNpc() {
192195
npcOnMap0();
193196
npcOnMap1();
194197
npcOnMap2();
198+
setAnimatedTiles();
195199
}
196200

197201
private void npcOnMap0() {
@@ -204,6 +208,30 @@ private void npcOnMap0() {
204208
index++;
205209
}
206210

211+
public void setAnimatedTiles() {
212+
drawWaterAnimationOnMap0();
213+
}
214+
215+
private void drawWaterAnimationOnMap0() {
216+
int index = 0;
217+
int mapNum = 0;
218+
gameManager.animatedTiles[mapNum][index] = new WaterBubbles(gameManager);
219+
gameManager.animatedTiles[mapNum][index].worldX = GameManager.TILE_SIZE * 35;
220+
gameManager.animatedTiles[mapNum][index].worldY = GameManager.TILE_SIZE * 18;
221+
index++;
222+
gameManager.animatedTiles[mapNum][index] = new WaterBubbles(gameManager);
223+
gameManager.animatedTiles[mapNum][index].worldX = GameManager.TILE_SIZE * 38;
224+
gameManager.animatedTiles[mapNum][index].worldY = GameManager.TILE_SIZE * 20;
225+
index++;
226+
gameManager.animatedTiles[mapNum][index] = new WaterBubbles(gameManager);
227+
gameManager.animatedTiles[mapNum][index].worldX = GameManager.TILE_SIZE * 39;
228+
gameManager.animatedTiles[mapNum][index].worldY = GameManager.TILE_SIZE * 19;
229+
index++;
230+
gameManager.animatedTiles[mapNum][index] = new WaterHurricane(gameManager);
231+
gameManager.animatedTiles[mapNum][index].worldX = GameManager.TILE_SIZE * 37;
232+
gameManager.animatedTiles[mapNum][index].worldY = GameManager.TILE_SIZE * 21;
233+
}
234+
207235
private void npcOnMap1() {
208236
int mapNum;
209237
int index;

src/main/java/com/khomsi/game/tilesinteractive/InteractiveTile.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public boolean isCorrectWeapon(Entity entity) {
2323
public void update() {
2424
if (invincible) {
2525
invincibleCounter++;
26-
if (invincibleCounter > 40) {
26+
if (invincibleCounter > 20) {
2727
invincible = false;
2828
invincibleCounter = 0;
2929
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.khomsi.game.tilesinteractive.animated;
2+
3+
import com.khomsi.game.entity.Entity;
4+
import com.khomsi.game.main.GameManager;
5+
6+
public class AnimatedTile extends Entity {
7+
GameManager gameManager;
8+
9+
public AnimatedTile(GameManager gameManager) {
10+
super(gameManager);
11+
this.gameManager = gameManager;
12+
direction = "down";
13+
speed = 0;
14+
}
15+
16+
@Override
17+
public void update() {
18+
int entitySpeed = 5;
19+
spriteCounter++;
20+
if (spriteCounter <= entitySpeed) {
21+
spriteNum = 0;
22+
}
23+
if (spriteCounter > entitySpeed && spriteCounter <= entitySpeed + 5) {
24+
spriteNum = 1;
25+
}
26+
if (spriteCounter > entitySpeed + 5 && spriteCounter <= entitySpeed + 13) {
27+
spriteNum = 2;
28+
}
29+
if (spriteCounter > entitySpeed + 13 && spriteCounter <= entitySpeed + 18) {
30+
spriteNum = 3;
31+
}
32+
if (spriteCounter > entitySpeed + 18) {
33+
spriteCounter = 0;
34+
}
35+
}
36+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.khomsi.game.tilesinteractive.animated.water;
2+
3+
import com.khomsi.game.main.GameManager;
4+
import com.khomsi.game.tilesinteractive.animated.AnimatedTile;
5+
6+
public class WaterBubbles extends AnimatedTile {
7+
public WaterBubbles(GameManager gameManager) {
8+
super(gameManager);
9+
getImage();
10+
}
11+
12+
public void getImage() {
13+
up = setup("/tilesinteractive/water/bubbles/water_0");
14+
up1 = setup("/tilesinteractive/water/bubbles/water_1");
15+
up2 = setup("/tilesinteractive/water/bubbles/water_2");
16+
up3 = setup("/tilesinteractive/water/bubbles/water_3");
17+
18+
down = setup("/tilesinteractive/water/bubbles/water_0");
19+
down1 = setup("/tilesinteractive/water/bubbles/water_1");
20+
down2 = setup("/tilesinteractive/water/bubbles/water_2");
21+
down3 = setup("/tilesinteractive/water/bubbles/water_3");
22+
23+
left = setup("/tilesinteractive/water/bubbles/water_0");
24+
left1 = setup("/tilesinteractive/water/bubbles/water_1");
25+
left2 = setup("/tilesinteractive/water/bubbles/water_2");
26+
left3 = setup("/tilesinteractive/water/bubbles/water_3");
27+
28+
right = setup("/tilesinteractive/water/bubbles/water_0");
29+
right1 = setup("/tilesinteractive/water/bubbles/water_1");
30+
right2 = setup("/tilesinteractive/water/bubbles/water_2");
31+
right3 = setup("/tilesinteractive/water/bubbles/water_3");
32+
}
33+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.khomsi.game.tilesinteractive.animated.water;
2+
3+
import com.khomsi.game.main.GameManager;
4+
import com.khomsi.game.tilesinteractive.animated.AnimatedTile;
5+
6+
public class WaterHurricane extends AnimatedTile {
7+
public WaterHurricane(GameManager gameManager) {
8+
super(gameManager);
9+
getImage();
10+
}
11+
12+
public void getImage() {
13+
up = setup("/tilesinteractive/water/hurricane/water_4");
14+
up1 = setup("/tilesinteractive/water/hurricane/water_5");
15+
up2 = setup("/tilesinteractive/water/hurricane/water_6");
16+
up3 = setup("/tilesinteractive/water/hurricane/water_7");
17+
18+
down = setup("/tilesinteractive/water/hurricane/water_4");
19+
down1 = setup("/tilesinteractive/water/hurricane/water_5");
20+
down2 = setup("/tilesinteractive/water/hurricane/water_6");
21+
down3 = setup("/tilesinteractive/water/hurricane/water_7");
22+
23+
left = setup("/tilesinteractive/water/hurricane/water_4");
24+
left1 = setup("/tilesinteractive/water/hurricane/water_5");
25+
left2 = setup("/tilesinteractive/water/hurricane/water_6");
26+
left3 = setup("/tilesinteractive/water/hurricane/water_7");
27+
28+
right = setup("/tilesinteractive/water/hurricane/water_4");
29+
right1 = setup("/tilesinteractive/water/hurricane/water_5");
30+
right2 = setup("/tilesinteractive/water/hurricane/water_6");
31+
right3 = setup("/tilesinteractive/water/hurricane/water_7");
32+
}
33+
}
146 Bytes
Loading

0 commit comments

Comments
 (0)