Преглед на файлове

Added sprite image to player

jancoow преди 10 години
родител
ревизия
ac1a6df4ee

+ 2 - 0
src/model/objects/DrawObject.java

@@ -27,6 +27,8 @@ public class DrawObject {
 		g2d.drawImage(image, getTransform(), null);
 	}
 	
+	public void update(){};
+	
 	private AffineTransform getTransform()
 	{
 		AffineTransform tx = new AffineTransform();

+ 48 - 0
src/model/objects/Player.java

@@ -0,0 +1,48 @@
+package model.objects;
+
+import java.awt.image.BufferedImage;
+import java.util.ArrayList;
+
+public class Player extends DrawObject {
+
+	private int score;
+	private int health;
+	private ArrayList<PowerUp> powerups;
+	
+	private long lastMovement;
+	private int lastX;
+	private int lastDirection;
+	private int frame;
+	private BufferedImage spriteimage;
+	
+	public Player(BufferedImage image, int x, int y) {
+		super(image.getSubimage(38, 0, 40, 54));
+		super.setPosition(x, y);
+		spriteimage = image;
+		powerups = new ArrayList<PowerUp>();
+	}
+	
+	public void update(){
+		if(System.currentTimeMillis() - lastMovement > 100){
+			image = spriteimage.getSubimage(38, 0, 40, 54);
+			frame = 0;
+		}else{
+			frame++;
+			frame %= 1000;
+			image = spriteimage.getSubimage(2+(((frame / 4) % 4) * 38), 54*lastDirection, 38, 50);
+		}
+	}
+	
+	public void setX(double x)
+	{
+		lastX = (int) super.getX();
+		super.setX(x);
+		lastDirection = x < lastX ? 1 : 2;
+		lastMovement = System.currentTimeMillis();
+	}
+	public void setY(double y)
+	{
+		super.setY(y);
+	}
+
+}

+ 11 - 0
src/model/objects/PowerUp.java

@@ -0,0 +1,11 @@
+package model.objects;
+
+import java.awt.image.BufferedImage;
+
+public class PowerUp extends DrawObject {
+
+	public PowerUp(BufferedImage image) {
+		super(image);
+	}
+
+}

+ 10 - 24
src/model/state/PlayState.java

@@ -3,27 +3,27 @@ package model.state;
 import java.awt.Graphics2D;
 import java.awt.event.KeyEvent;
 
-import resources.image.Images;
-import resources.image.Images.ImageType;
 import main.Window;
 import model.GameStateManager;
 import model.objects.DrawObject;
+import model.objects.Player;
+import resources.image.Images;
+import resources.image.Images.ImageType;
 
 public class PlayState extends State{
 	
-	DrawObject player;
+	Player player;
 	
 	public PlayState(GameStateManager gsm) {
 		super("play", gsm);
 		
-		player = new DrawObject(Images.getImage(ImageType.PLAYER));
+		player = new Player(Images.getImage(ImageType.PLAYER1), 60, 500);
 	}
 
 	/* INIT AND EXIT */
 	@Override
 	public void init() {
 		System.out.println("Starting play state");
-		player.setPosition(0, 0);
 	}
 	
 	@Override 
@@ -38,21 +38,13 @@ public class PlayState extends State{
 	public void update() {		
 			if(player.getX() + player.getWidth() >= Window.WIDTH)
 			{
-				player.setX(Window.WIDTH - player.getWidth());
-			}
-			if(player.getY() + player.getHeigth() >= Window.HEIGHT)
-			{
-				player.setY(Window.HEIGHT - player.getHeigth());
+				player.setX(Window.WIDTH - player.getWidth()-1);
 			}
-			
 			if(player.getX() <= 0)
 			{
-				player.setX(0);
-			}
-			if(player.getY() <= 0)
-			{
-				player.setY(0);
+				player.setX(1);
 			}
+		player.update();
 	}
 
 	@Override
@@ -69,16 +61,10 @@ public class PlayState extends State{
 		switch(e.getKeyCode())
 		{
 		case KeyEvent.VK_RIGHT:
-			player.setX(player.getX()+5);
+			player.setX(player.getX()+10);
 			break;
 		case KeyEvent.VK_LEFT:
-			player.setX(player.getX()-5);
-			break;
-		case KeyEvent.VK_UP:
-			player.setY(player.getY()-5);
-			break;
-		case KeyEvent.VK_DOWN:
-			player.setY(player.getY()+5);
+			player.setX(player.getX()-10);
 			break;
 		}
 	}

+ 2 - 2
src/resources/image/Images.java

@@ -16,7 +16,7 @@ public class Images {
 
 	static{
 		try{
-			images.add(ImageIO.read(Main.class.getResource("/resources/image/player.png"))); 
+			images.add(ImageIO.read(Main.class.getResource("/resources/image/player1_sprite.png"))); 
 			images.add(ImageIO.read(Main.class.getResource("/resources/image/player2.png"))); 
 		  
 		}catch(IOException e){
@@ -31,7 +31,7 @@ public class Images {
 
 	 public static enum ImageType
 	 {
-		 PLAYER,
+		 PLAYER1,
 		 PLAYER2
 	 }
 }

BIN
src/resources/image/player1_sprite.png