From 81a1fefdec392d5c2bcc0d8f7ae203921411d34e Mon Sep 17 00:00:00 2001 From: Andreas Jakobsson Date: Sun, 11 Jan 2009 17:08:19 +0100 Subject: [PATCH] HashMap with images in prototypefactory --- .../dit06ajnajs/agent/AgentPrototypeFactory.java | 32 +++++++++++++++++----- src/se/umu/cs/dit06ajnajs/agent/FootmanUnit.java | 16 ++++++----- src/se/umu/cs/dit06ajnajs/agent/Unit.java | 19 +++++++++---- 3 files changed, 48 insertions(+), 19 deletions(-) diff --git a/src/se/umu/cs/dit06ajnajs/agent/AgentPrototypeFactory.java b/src/se/umu/cs/dit06ajnajs/agent/AgentPrototypeFactory.java index 466f545..4273371 100644 --- a/src/se/umu/cs/dit06ajnajs/agent/AgentPrototypeFactory.java +++ b/src/se/umu/cs/dit06ajnajs/agent/AgentPrototypeFactory.java @@ -1,5 +1,6 @@ package se.umu.cs.dit06ajnajs.agent; +import java.awt.Image; import java.awt.image.BufferedImage; import java.io.IOException; import java.net.URL; @@ -48,19 +49,36 @@ public class AgentPrototypeFactory { try { // Get directory containing images // TODO: move to config class of file - URL imagesURL = this.getClass().getResource("/resources/"); + URL imagesURL = this.getClass().getResource("/resources/unit-images/"); // Init Units // Create Standard FootmanUnit - BufferedImage image = ImageIO.read(new URL(imagesURL, "unit1.gif")); - unitMap.put("FootmanUnit", - new FootmanUnit("FootmanUnit", 20, 20, 2, 100, 500, image)); + HashMap images = new HashMap(); + + BufferedImage image = ImageIO.read(new URL(imagesURL, "footmanDown.gif")); + images.put(Direction.DOWN, image); + image = ImageIO.read(new URL(imagesURL, "footmanUp.gif")); + images.put(Direction.UP, image); + image = ImageIO.read(new URL(imagesURL, "footmanLeft.gif")); + images.put(Direction.LEFT, image); + image = ImageIO.read(new URL(imagesURL, "footmanRight.gif")); + images.put(Direction.RIGHT, image); + unitMap.put("Footman", + new FootmanUnit("Footman", 40, 40, 2, 100, 500, images)); // Create SuperFootmanUnit - image = ImageIO.read(new URL(imagesURL, "unit1.gif")); - unitMap.put("SuperFootmanUnit", - new SuperFootmanUnit("SuperFootmanUnit", 20, 20, 4, 100, 1000, image)); +// image = ImageIO.read(new URL(imagesURL, "knightDown.gif")); +// images.put(Direction.DOWN, image); +// image = ImageIO.read(new URL(imagesURL, "unit.gif")); +// images.put(Direction.UP, image); +// image = ImageIO.read(new URL(imagesURL, "unit.gif")); +// images.put(Direction.LEFT, image); +// image = ImageIO.read(new URL(imagesURL, "unit.gif")); +// images.put(Direction.RIGHT, image); +// image = ImageIO.read(new URL(imagesURL, "knight.gif")); +// unitMap.put("SuperFootmanUnit", +// new FootmanUnit("Knight", 40, 40, 4, 100, 1000, images)); // Init Towers diff --git a/src/se/umu/cs/dit06ajnajs/agent/FootmanUnit.java b/src/se/umu/cs/dit06ajnajs/agent/FootmanUnit.java index fe4ebe0..dc1a436 100644 --- a/src/se/umu/cs/dit06ajnajs/agent/FootmanUnit.java +++ b/src/se/umu/cs/dit06ajnajs/agent/FootmanUnit.java @@ -2,6 +2,8 @@ package se.umu.cs.dit06ajnajs.agent; import java.awt.Color; import java.awt.Graphics; +import java.util.HashMap; +import java.util.Map; import java.util.logging.Logger; import se.umu.cs.dit06ajnajs.map.Level; @@ -9,13 +11,13 @@ import java.awt.Image; public class FootmanUnit extends Unit { public FootmanUnit(String type, int width, int height, int speed, int health, - int cost, Image image) { - super(type, width, height, speed, health, cost, image); + int cost, Map images) { + super(type, width, height, speed, health, cost, images); } - public void paint(Graphics g) { - // TODO Auto-generated method stub - g.setColor(Color.BLACK); - g.fillRect(this.getX(), this.getY(), this.getWidth(), this.getHeight()); - } +// public void paint(Graphics g) { +// // TODO Auto-generated method stub +// g.setColor(Color.BLACK); +// g.fillRect(this.getX(), this.getY(), this.getWidth(), this.getHeight()); +// } } diff --git a/src/se/umu/cs/dit06ajnajs/agent/Unit.java b/src/se/umu/cs/dit06ajnajs/agent/Unit.java index c2e8c83..dd2f57f 100644 --- a/src/se/umu/cs/dit06ajnajs/agent/Unit.java +++ b/src/se/umu/cs/dit06ajnajs/agent/Unit.java @@ -1,7 +1,10 @@ package se.umu.cs.dit06ajnajs.agent; +import java.awt.Graphics; import java.awt.Image; import java.awt.Point; +import java.util.HashMap; +import java.util.Map; import java.util.logging.Logger; import se.umu.cs.dit06ajnajs.Paintable; @@ -28,7 +31,7 @@ public abstract class Unit implements Agent, Paintable, Cloneable { private int health; private int cost; - private Image image; + private Map images; private Direction direction; private Level level; private boolean alive; @@ -36,7 +39,7 @@ public abstract class Unit implements Agent, Paintable, Cloneable { private Object lastTurnedBy; public Unit(String type, int width, int height, int speed, int health, - int cost, Image image) { + int cost, Map images) { this.type = type; this.width = width; this.height = height; @@ -45,7 +48,7 @@ public abstract class Unit implements Agent, Paintable, Cloneable { this.speed = speed; this.health = health; this.cost = cost; - this.image = image; + this.images = images; this.alive = true; this.pause = false; @@ -59,8 +62,9 @@ public abstract class Unit implements Agent, Paintable, Cloneable { return this.type; } - public Image getImage() { - return this.image; + // TODO används denna? + public Map getImages() { + return this.images; } public void act() { @@ -314,4 +318,9 @@ public abstract class Unit implements Agent, Paintable, Cloneable { public boolean intersectsNextMove(Unit unit) { return this.getFutureBounds().intersects(unit.getBounds()); } + + public void paint(Graphics g) { + Image image = images.get(direction); + g.drawImage(image, x, y, null); + } } \ No newline at end of file -- 2.11.4.GIT