strategy for tank fire and folder refactor

master
terry 3 years ago
parent 927effc67d
commit 961f1cea63

Binary file not shown.

@ -1,9 +1,10 @@
package com.demo.tank.course6;
import com.demo.tank.course6.strategy.FireStrategy;
import com.demo.tank.course6.strategy.FourDirectionFireStrategy;
import com.demo.tank.strategy.DefaultFireStrategy;
import com.demo.tank.strategy.FireStrategy;
import com.demo.tank.enums.Direction;
import com.demo.tank.enums.Group;
import com.demo.tank.util.PropertyManager;
import com.demo.tank.util.ResourceManager;
import java.awt.*;
@ -21,8 +22,7 @@ public class Tank {
public static final int HEIGHT = ResourceManager.tankD.getHeight();
private Random random = new Random();
Rectangle rect = new Rectangle();
// FireStrategy fireStrategy = new DefaultFireStrategy();
FireStrategy fireStrategy = new FourDirectionFireStrategy();
FireStrategy fireStrategy;
public Tank(int x, int y, Direction dir, Group group, TankFrameV6 tankFrame) {
@ -36,6 +36,20 @@ public class Tank {
rect.y = this.y;
rect.width = Tank.WIDTH;
rect.height = Tank.HEIGHT;
if(this.group == Group.GOOD) {
String className = PropertyManager.getString("good.tank.fire.strategy");
try {
fireStrategy = (FireStrategy) Class.forName(className).newInstance();
System.out.println(fireStrategy);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}else if(this.group == Group.BAD) fireStrategy = new DefaultFireStrategy();
}
public void paint(Graphics g) {

@ -1,4 +1,4 @@
package com.demo.tank.course6.strategy;
package com.demo.tank.strategy;
import com.demo.tank.course6.Bullet;
import com.demo.tank.enums.Group;

@ -1,4 +1,4 @@
package com.demo.tank.course6.strategy;
package com.demo.tank.strategy;
import com.demo.tank.course6.Tank;

@ -1,4 +1,4 @@
package com.demo.tank.course6.strategy;
package com.demo.tank.strategy;
import com.demo.tank.course6.Bullet;
import com.demo.tank.enums.Direction;

@ -19,4 +19,9 @@ public class PropertyManager {
if(property == null) return 0;
return Integer.valueOf((String)property.get(key));
}
public static String getString(String key){
if(property == null) return "";
return (String)property.get(key);
}
}

@ -2,4 +2,6 @@ enemy.tank.number=8
tank.speed=5
bullet.speed=5
game.width=1080
game.height=720
game.height=720
good.tank.fire.strategy=com.demo.tank.strategy.FourDirectionFireStrategy
bad.tank.fire.strategy=com.demo.tank.strategy.DefaultFireStrategy
Loading…
Cancel
Save