Skip to content

Commit 82214ba

Browse files
committed
Update CAMERA
1 parent 4a3d7d1 commit 82214ba

File tree

5 files changed

+89
-7
lines changed

5 files changed

+89
-7
lines changed

src/JavaGameEngine/Backend/UpdateThread.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ private LinkedList<Component> UpdateObjects()
2929

3030
for (Component component : ComponentHandler.getObjects()) {
3131

32-
//component.setCameraPosition(UpdateThread.camera.getPosition().devide(4));
32+
component.setCameraPosition(UpdateThread.camera.getPosition());
3333
component.update();
3434
}
3535
return ComponentHandler.getObjects();

src/JavaGameEngine/Components/Collider/SquareCollider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public void draw(Graphics g) {
8282

8383
if(isVisible()){
8484
g.setColor(Color.GREEN);
85-
g.drawRect((int) getPosition().getX(), (int) getPosition().getY(), (int) getScale().getX(), (int) getScale().getY());
85+
g.drawRect((int) ((int) getSpritePosition().getX()+getScale().getX()/2), (int) ((int) getSpritePosition().getY()+getScale().getY()/2), (int) getScale().getX(), (int) getScale().getY());
8686
g.setColor(Color.darkGray);
8787
}
8888
/*

src/JavaGameEngine/Components/Component.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,16 +68,22 @@ public void setParent(Component parent) {
6868
this.parent = parent;
6969
}
7070

71+
7172
public Vector2 getPosition() {
72-
return position.subtract(cameraPosition);
73+
return position;
7374
}
7475
public void setPosition(Vector2 position) {
75-
this.position = position.add(cameraPosition);
76+
if(this.tag != "player"){
77+
this.position = position;
78+
}
79+
else{
80+
this.position = position;
81+
}
7682
// updateChildren();
7783
}
7884
public Vector2 getSpritePosition(){
79-
float x = (getPosition().getX()-((getScale().getX()/2)));
80-
float y = (getPosition().getY()-((getScale().getY()/2)));
85+
float x = (getPosition().subtract(cameraPosition).getX()-((getScale().getX()/2)));
86+
float y = (getPosition().subtract(cameraPosition).getY()-((getScale().getY()/2)));
8187

8288
return new Vector2(x,y);
8389
}
@@ -209,7 +215,7 @@ public void update() {
209215
// update this in the setScale and setRotation instead
210216
setRotation(parent.getRotation().add(getLocalRotation()));
211217
setScale(parent.getScale().add(getLocalScale()));
212-
218+
setCameraPosition(parent.getCameraPosition());
213219

214220
}
215221
if(components.size()>0){

src/JavaGameEngine/Components/GameObject.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ public Color getColor() {
2727

2828
@Override
2929
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));
3032
g.setColor(this.color);
3133
Sprite sprite = (Sprite) getChild(new Sprite());
3234
if(sprite!=null){

src/Testing/Test.java

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package Testing;
2+
3+
import JavaGameEngine.Backend.ComponentHandler;
4+
import JavaGameEngine.Backend.Input.Input;
5+
import JavaGameEngine.Backend.Input.Keys;
6+
import JavaGameEngine.Backend.UpdateThread;
7+
import JavaGameEngine.Components.Collider.SquareCollider;
8+
import JavaGameEngine.Components.Component;
9+
import JavaGameEngine.Components.GameObject;
10+
import JavaGameEngine.Components.Physics.PhysicsBody;
11+
import JavaGameEngine.JavaGameEngine;
12+
import JavaGameEngine.msc.Vector2;
13+
14+
import java.awt.*;
15+
16+
public class Test extends JavaGameEngine {
17+
18+
public static void main(String[] args){
19+
init();
20+
ComponentHandler.addObject(new Player());
21+
GameObject g = new GameObject();
22+
g.setScale(new Vector2(500,10));
23+
g.addChild(new SquareCollider());
24+
PhysicsBody b = new PhysicsBody();
25+
g.setPosition(new Vector2(0,500));
26+
b.setUseGravity(false);
27+
g.addChild(b);
28+
ComponentHandler.addObject(g);
29+
start();
30+
}
31+
static class Player extends GameObject{
32+
33+
public Player(){
34+
35+
setColor(Color.CYAN);
36+
37+
setTag("player");
38+
PhysicsBody b = new PhysicsBody();
39+
setPosition(new Vector2(400,300));
40+
b.setUseGravity(true);
41+
addChild(b);
42+
SquareCollider s = new SquareCollider();
43+
s.setVisible(true);
44+
addChild(s);
45+
}
46+
47+
@Override
48+
public void update() {
49+
super.update();
50+
if(Input.isKeyDown(Keys.D)){
51+
movePosition(getPosition().add(Vector2.right));
52+
}
53+
if(Input.isKeyDown(Keys.A)){
54+
movePosition(getPosition().add(Vector2.left));
55+
}
56+
if(Input.isKeyDown(Keys.W)){
57+
movePosition(getPosition().add(Vector2.up));
58+
}
59+
if(Input.isKeyDown(Keys.S)){
60+
movePosition(getPosition().add(Vector2.down));
61+
}
62+
//movePosition(Input.getMousePosition());
63+
UpdateThread.camera.setPosition(getPosition().subtract(new Vector2(Test.GAMEWORLD.getWidth()/2,Test.GAMEWORLD.getHeight()/2)));
64+
}
65+
66+
@Override
67+
public void draw(Graphics g) {
68+
super.draw(g);
69+
g.drawString(UpdateThread.camera.getPosition().toString(),50,50);
70+
g.drawString(getPosition().toString(),50,100);
71+
}
72+
}
73+
74+
}

0 commit comments

Comments
 (0)