Skip to content

Commit b69762a

Browse files
committed
Update
1 parent 6f3a165 commit b69762a

12 files changed

Lines changed: 306 additions & 141 deletions

File tree

.idea/artifacts/SwingGameEngine_jar.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Manifest-Version: 1.0
2+
Main-Class: Testing.Main2
3+

src/META-INF/MANIFEST.MF

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Manifest-Version: 1.0
2+
Main-Class: Testing.Main2
3+

src/Main/Display/Map.java

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public void keyReleased(KeyEvent e) {
4242

4343
}
4444
int x = 0;
45-
public void CollisionHandler()
45+
public void CollisionHandler1()
4646
{
4747
for(Object obj : ObjectHandler.getObjects()) {
4848
for(Object obj2 : ObjectHandler.getObjects()) {
@@ -53,6 +53,21 @@ public void CollisionHandler()
5353
}
5454
}
5555
}
56+
//rect1.x < rect2.x + rect2.w &&
57+
// rect1.x + rect1.w > rect2.x &&
58+
// rect1.y < rect2.y + rect2.h &&
59+
// rect1.h + rect1.y > rect2.y
60+
public void CollisionHandler()
61+
{
62+
for(Object rect1 : ObjectHandler.getObjects()) {
63+
for(Object rect2 : ObjectHandler.getObjects()) {
64+
if((int)rect1.getSpritePosition().getX() < (int)rect2.getSpritePosition().getX() + (int)rect2.getScale().getX() && (int)rect1.getSpritePosition().getX() + (int)rect1.getScale().getX() > (int)rect2.getSpritePosition().getX() && (int)rect1.getSpritePosition().getY() < (int)rect2.getSpritePosition().getY() + (int)rect2.getScale().getY() && (int)rect1.getScale().getY() + (int)rect1.getSpritePosition().getY() > (int)rect2.getSpritePosition().getY())
65+
{
66+
rect1.onCollision(rect2);
67+
}
68+
}
69+
}
70+
}
5671
private void UpdateObjects()
5772
{
5873
for(Object obj:ObjectHandler.getObjects())
@@ -71,7 +86,7 @@ public void Update()
7186
}
7287
}
7388
UpdateObjects();
74-
CollisionHandler();
89+
CollisionHandler1();
7590
repaint();
7691
Toolkit.getDefaultToolkit().sync();
7792
}
@@ -82,9 +97,11 @@ protected void paintComponent(Graphics g) {
8297

8398
for(Object animal : ObjectHandler.getObjects())
8499
{
85-
g.drawImage((Image) animal.getAnimation(), (int) animal.getSpritePosition().getX(), (int) animal.getSpritePosition().getY(),null);
100+
g.drawImage((Image) animal.Display(), (int) animal.getSpritePosition().getX(), (int) animal.getSpritePosition().getY(),null);
101+
g.drawRect((int) ((int) animal.getPosition().getX()), (int) ((int) animal.getPosition().getY()), 10,10);
86102
if(animal.isShowHitBox())
87-
g.drawOval((int) ((int) animal.getPosition().getX()-animal.getRadius()/2), (int) ((int) animal.getPosition().getY()-animal.getRadius()/2), (int) animal.getRadius(), (int) animal.getRadius());
103+
//g.drawOval((int) ((int) animal.getPosition().getX()-animal.getScale().getX()/2), (int) ((int) animal.getPosition().getY()-animal.getScale().getY()/2), (int) animal.getRadius(), (int) animal.getRadius());
104+
g.drawRect((int) ((int) animal.getPosition().getX()-animal.getScale().getX()/2), (int) ((int) animal.getPosition().getY()-animal.getScale().getY()/2), (int) animal.getScale().getX(), (int) animal.getScale().getY());
88105

89106
}
90107

src/Main/Msc/Sprite.java

Lines changed: 5 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package Main.Msc;
22

3+
import Main.Objects.Animation;
4+
35
import javax.imageio.ImageIO;
46
import java.awt.*;
57
import java.awt.image.BufferedImage;
@@ -11,14 +13,13 @@ public class Sprite {
1113
private BufferedImage spriteImage;
1214
private BufferedImage spriteSheet;
1315

16+
1417
private String path;
1518
private Vector2 grid;
1619
private int TILE_SIZE = 255;
1720
private Vector2 scale = new Vector2(150,150);
1821

1922

20-
private BufferedImage[] sprites;
21-
2223
public Vector2 getScale() {
2324
return scale;
2425
}
@@ -72,27 +73,8 @@ public Sprite(String path) {
7273
this.path = path;
7374
}
7475

75-
public void loadSprite() {
76-
77-
BufferedImage sprite = null;
78-
79-
try {
80-
InputStream in = this.getClass().getResourceAsStream(path);
81-
sprite = ImageIO.read(in);
82-
} catch (IOException e) {
83-
e.printStackTrace();
84-
}
85-
86-
if (spriteSheet == null) {
87-
spriteSheet = sprite;
88-
}
89-
90-
spriteImage = Sprite.resize(spriteSheet.getSubimage((int) (grid.getX() * TILE_SIZE), (int) (grid.getY() * TILE_SIZE), TILE_SIZE, TILE_SIZE),scale);
91-
}
92-
93-
public BufferedImage getSprite(Vector2 grid) {
76+
public void loadSprite(Vector2 grid) {
9477

95-
System.out.println("loading "+path);
9678
BufferedImage sprite = null;
9779

9880
try {
@@ -106,28 +88,9 @@ public BufferedImage getSprite(Vector2 grid) {
10688
spriteSheet = sprite;
10789
}
10890

109-
return Sprite.resize(spriteSheet.getSubimage((int) (grid.getX() * TILE_SIZE), (int) (grid.getY() * TILE_SIZE), TILE_SIZE, TILE_SIZE),scale);
91+
Sprite.resize(spriteSheet.getSubimage((int) (grid.getX() * TILE_SIZE), (int) (grid.getY() * TILE_SIZE), TILE_SIZE, TILE_SIZE),scale);
11092
}
11193

112-
public BufferedImage[] getSprites() {
113-
return sprites;
114-
}
115-
116-
public void setSprites(BufferedImage[] sprites) {
117-
this.sprites = sprites;
118-
}
119-
120-
public void loadSprites(Vector2[] grids)
121-
{
122-
//sprites = new Vector2[(to.getX()-from.getY())+1];
123-
sprites = new BufferedImage[grids.length];
124-
int i=0;
125-
for(Vector2 grid : grids)
126-
{
127-
sprites[i] = getSprite(grid);
128-
i++;
129-
}
130-
}
13194

13295
public BufferedImage getSpriteImage() {
13396
return spriteImage;

src/Main/Msc/Vector2.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,10 @@ public double getDistance(Vector2 vector2)
6868
return Math.sqrt(Math.pow(Math.abs(vector2.getY()-y),2)+Math.pow(Math.abs(vector2.getX()-x),2));
6969
}
7070

71+
public float getAngle()
72+
{
73+
//A = atan2(V.y, V.x)
74+
return (float)(Math.toDegrees(Math.atan2(-y,-x)));
75+
}
76+
7177
}

src/Main/Objects/Animation.java

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
package Main.Objects;
2+
3+
import Main.Msc.Sprite;
4+
import Main.Msc.Vector2;
5+
6+
import javax.imageio.ImageIO;
7+
import java.awt.image.BufferedImage;
8+
import java.io.IOException;
9+
import java.io.InputStream;
10+
import java.util.ArrayList;
11+
12+
public class Animation {
13+
14+
15+
private BufferedImage[] sprites;
16+
private ArrayList<BufferedImage[]> animations = new ArrayList<>();
17+
18+
private int animationIndex=0;
19+
20+
private BufferedImage spriteSheet;
21+
22+
private String path;
23+
24+
private int TILE_SIZE = 250;
25+
26+
private int spriteCounter=0;
27+
private int currentSprite=0;
28+
29+
private Sprite sprite= new Sprite();
30+
private float timer=10;
31+
private float angle=0;
32+
private Vector2 scale=new Vector2(10,10);
33+
34+
public BufferedImage getAnimation()
35+
{
36+
37+
int spritesLen = animations.get(animationIndex).length;
38+
//Adds until timer then 0
39+
spriteCounter = (spriteCounter+1>=timer) ? 0 :spriteCounter+1;
40+
//Sets the current sprite index
41+
currentSprite = (currentSprite+1>=spritesLen&&spriteCounter>=timer-1) ?0:(spriteCounter>=timer-1)? (currentSprite+1): currentSprite;
42+
//Sprite.resize(getSprite().getSpriteImage(),new Vector2(100,100));
43+
//sprite.setSpriteImage(sprite.getSprites()[currentSprite]);
44+
45+
sprite.setSpriteImage(animations.get(animationIndex)[currentSprite]);
46+
return (sprite.rotate(angle));
47+
}
48+
49+
public int getAnimationIndex() {
50+
return animationIndex;
51+
}
52+
53+
public void setAnimationIndex(int animationIndex) {
54+
this.animationIndex = animationIndex;
55+
}
56+
57+
public Vector2 getScale() {
58+
return scale;
59+
}
60+
61+
public void setScale(Vector2 scale) {
62+
this.scale = scale;
63+
}
64+
65+
public float getAngle() {
66+
return angle;
67+
}
68+
69+
public void setAngle(float angle) {
70+
this.angle = angle;
71+
}
72+
73+
public float getTimer() {
74+
return timer;
75+
}
76+
77+
public void setTimer(float timer) {
78+
this.timer = timer;
79+
}
80+
81+
public BufferedImage[] getSprites() {
82+
return sprites;
83+
}
84+
85+
public void setSprites(BufferedImage[] sprites) {
86+
this.sprites = sprites;
87+
}
88+
89+
public BufferedImage getSpriteSheet() {
90+
return spriteSheet;
91+
}
92+
93+
public void setSpriteSheet(BufferedImage spriteSheet) {
94+
this.spriteSheet = spriteSheet;
95+
}
96+
97+
public String getPath() {
98+
return path;
99+
}
100+
101+
public void setPath(String path) {
102+
this.path = path;
103+
}
104+
105+
public int getTILE_SIZE() {
106+
return TILE_SIZE;
107+
}
108+
109+
public void setTILE_SIZE(int TILE_SIZE) {
110+
this.TILE_SIZE = TILE_SIZE;
111+
}
112+
113+
private BufferedImage getSprite(Vector2 grid) {
114+
115+
BufferedImage sprite = null;
116+
117+
118+
try {
119+
InputStream in = this.getClass().getResourceAsStream(path);
120+
sprite = ImageIO.read(in);
121+
} catch (IOException e) {
122+
e.printStackTrace();
123+
}
124+
125+
if (spriteSheet == null) {
126+
spriteSheet = sprite;
127+
}
128+
return Sprite.resize(spriteSheet.getSubimage((int) (grid.getX() * TILE_SIZE), (int) (grid.getY() * TILE_SIZE), TILE_SIZE, TILE_SIZE),scale);
129+
}
130+
131+
public void loadAnimation(Vector2[] grids)
132+
{
133+
//sprites = new Vector2[(to.getX()-from.getY())+1];
134+
sprites = new BufferedImage[grids.length];
135+
int i=0;
136+
for(Vector2 grid : grids)
137+
{
138+
sprites[i] = getSprite(grid);
139+
i++;
140+
}
141+
animations.add(sprites.clone());
142+
}
143+
144+
public void loadSprites(Vector2[] grids)
145+
{
146+
sprites = new BufferedImage[grids.length];
147+
int i=0;
148+
for(Vector2 grid : grids)
149+
{
150+
sprites[i] = getSprite(grid);
151+
i++;
152+
}
153+
}
154+
155+
156+
}

0 commit comments

Comments
 (0)