Skip to content

Commit 3085e83

Browse files
committed
Update
1 parent 82214ba commit 3085e83

File tree

6 files changed

+61
-38
lines changed

6 files changed

+61
-38
lines changed
2.7 KB
Binary file not shown.

src/JavaGameEngine/Components/Collider/Collider.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import JavaGameEngine.Components.Component;
44

5+
import java.util.LinkedList;
6+
57
public abstract class Collider extends Component {
68

79
private boolean isTrigger= false;
@@ -32,6 +34,7 @@ implement collider code here (extends)
3234

3335
public abstract void collisionHandler(Component ob2);
3436

37+
3538
public Object copy() {
3639
return this;
3740
}

src/JavaGameEngine/Components/Collider/SquareCollider.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package JavaGameEngine.Components.Collider;
22

33
import JavaGameEngine.Components.Component;
4+
import JavaGameEngine.Components.GameObject;
45
import JavaGameEngine.msc.Debug;
56

67
import java.awt.*;
@@ -49,7 +50,8 @@ class Player{
4950

5051
for(Component ob :objects)
5152
{
52-
if(ob!=ob1.getParent()&&ob!=parent.getParent()) {
53+
if(ob!=ob1.getParent()&&ob!=parent.getParent()&&!((GameObject)parent.getParent().getFirstObject()).getIgnoreTags().contains(ob.getTag()))
54+
{
5355
for (Component ob21 : ob.getChildren(new SquareCollider())) {
5456
Collider ob2 = (Collider) ob21;
5557
Player player2 = new Player();

src/JavaGameEngine/Components/Component.java

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ public class Component {
2626

2727
Component parent = null; // if component has parent it should update with some of the parents data
2828
LinkedList<Component> components = new LinkedList<>(); // children
29-
private boolean mouseInside = false;
3029

30+
private boolean mouseInside = false;
3131

3232
boolean isEnabled = true;
3333
private String tag = "unnamed";
@@ -67,8 +67,15 @@ public Component getParent() {
6767
public void setParent(Component parent) {
6868
this.parent = parent;
6969
}
70-
71-
70+
public boolean isParent(){
71+
return getParent()==null;
72+
}
73+
public Component getFirstObject(){
74+
if(!isParent()){
75+
return getParent().getFirstObject();
76+
}
77+
return this;
78+
}
7279
public Vector2 getPosition() {
7380
return position;
7481
}
@@ -204,8 +211,21 @@ public void destroy(){
204211
*/
205212
public void update() {
206213

207-
// if(this instanceof Collider)
208-
// Debug.log(this);
214+
if(insideComp()&&isEnabled){
215+
if(!isMouseInside()){
216+
onMouseEntered();
217+
setMouseInside(true);
218+
}
219+
220+
}
221+
else if (isMouseInside()&&isEnabled){
222+
onMouseExit();
223+
setMouseInside(false);
224+
}
225+
if(isMouseInside()&&Input.isMousePressed()&&isEnabled){
226+
onMousePressed();
227+
if(getParent()!=null) getParent().onMousePressed();
228+
}
209229

210230
if(parent!=null) {
211231
float x = (parent.getPosition().getX()-((getScale().getX()/2)));
@@ -222,30 +242,17 @@ public void update() {
222242
updateChildren(); // updates all the children
223243
}
224244
//mouse enter and exit
225-
if(insideComp()&&isEnabled){
226-
if(!isMouseInside()){
227-
onMouseEntered();
228-
setMouseInside(true);
229-
}
230-
}
231-
else if (isMouseInside()&&isEnabled){
232-
onMouseExit();
233-
setMouseInside(false);
234-
}
235-
if(isMouseInside()&&Input.isMousePressed()&&isEnabled){
236-
onMousePressed();
237-
if(getParent()!=null) getParent().onMousePressed();
238-
}
245+
239246
}
240247
private boolean insideComp(){
241-
float width = getScale().getX()/2;
242-
float height = getScale().getY()/2;
248+
float width = getScale().getX();
249+
float height = getScale().getY();
243250

244-
float xMin = getPosition().getX()-width;
245-
float xMax = getPosition().getX()+width;
251+
float xMin = getSpritePosition().getX();
252+
float xMax = getSpritePosition().getX()+width;
246253

247-
float yMin = getPosition().getY()-height;
248-
float yMax = getPosition().getY()+height;
254+
float yMin = getSpritePosition().getY();
255+
float yMax = getSpritePosition().getY()+height;
249256

250257
float mx = Input.getMousePosition().getX();
251258
float my = Input.getMousePosition().getY();

src/JavaGameEngine/Components/GameObject.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,21 @@
88
import JavaGameEngine.msc.Vector2;
99

1010
import java.awt.*;
11+
import java.util.LinkedList;
1112

1213
public class GameObject extends Component{
1314

14-
/**
15-
* this is the method that draws the GameObject
16-
*/
15+
private LinkedList<String> ignoreTags = new LinkedList<>();
1716

17+
public void addIgnoreTags(String tag){
18+
ignoreTags.add(tag);
19+
}
20+
public void setIgnoreTags(LinkedList<String> tags){
21+
this.ignoreTags = tags;
22+
}
23+
public LinkedList<String> getIgnoreTags(){
24+
return ignoreTags;
25+
}
1826
private Color color = Color.darkGray;
1927

2028
public void setColor(Color color) {
@@ -25,10 +33,14 @@ public Color getColor() {
2533
return color;
2634
}
2735

36+
37+
/**
38+
* this is the method that draws the GameObject
39+
*/
2840
@Override
2941
public void draw(Graphics g){
30-
g.drawString(getPosition().toString(), (int) getSpritePosition().getX(), (int) (getSpritePosition().getY()-50));
31-
g.drawString(getSpritePosition().toString(), (int) getSpritePosition().getX(), (int) (getSpritePosition().getY()-20));
42+
//g.drawString(getPosition().toString(), (int) getSpritePosition().getX(), (int) (getSpritePosition().getY()-50));
43+
// g.drawString(getSpritePosition().toString(), (int) getSpritePosition().getX(), (int) (getSpritePosition().getY()-20));
3244
g.setColor(this.color);
3345
Sprite sprite = (Sprite) getChild(new Sprite());
3446
if(sprite!=null){
@@ -90,7 +102,6 @@ public Vector2 movePosition(Vector2 position) {
90102
if(getChildren(new SquareCollider()).size()>0)
91103
{
92104
for(Collider c : getChildren(new SquareCollider())) {
93-
94105
if(!c.isTrigger()) {
95106

96107
Collider c2=null; //will be the other object we collide with (if)

src/JavaGameEngine/Components/Sprite/Sprite.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package JavaGameEngine.Components.Sprite;
22

33
import JavaGameEngine.Components.Component;
4+
import JavaGameEngine.msc.Debug;
45
import JavaGameEngine.msc.Vector2;
56

67
import javax.imageio.ImageIO;
@@ -14,9 +15,9 @@
1415
public class Sprite extends Component {
1516

1617
ArrayList<ArrayList<Rectangle>> animations1 = new ArrayList<>();
17-
ArrayList<BufferedImage[]> animations = new ArrayList<>();
18+
public ArrayList<BufferedImage[]> animations = new ArrayList<>();
1819
BufferedImage spriteSheet;
19-
private int animationIndex = 0;
20+
public int animationIndex = 0;
2021
private int spriteCounter;
2122
float timer = 10;
2223
int currentSprite = 0;
@@ -41,9 +42,8 @@ public void loadAnimation(Rectangle[] tiles,String spriteSheetPath){
4142
e.printStackTrace();
4243
}
4344

44-
if (spriteSheet == null) {
45-
spriteSheet = sprite;
46-
}
45+
spriteSheet = sprite;
46+
4747
BufferedImage[] animation = new BufferedImage[tiles.length];
4848
int i = 0;
4949
for(Rectangle r : tiles){
@@ -102,7 +102,7 @@ public BufferedImage getAnimation(){
102102
@Override
103103
public void draw(Graphics g) {
104104
super.draw(g);
105-
g.drawImage(getAnimation(),(int)getPosition().getX(),(int)getPosition().getY(),(int)getScale().getX(),(int)getScale().getY(),null);
105+
g.drawImage(getAnimation(),(int) ((int) getSpritePosition().getX()+getScale().getX()/2), (int) ((int) getSpritePosition().getY()+getScale().getY()/2),(int)getScale().getX(),(int)getScale().getY(),null);
106106

107107
}
108108

0 commit comments

Comments
 (0)