Skip to content

Commit 0690c1c

Browse files
committed
fixed mouse position with graphics scale
1 parent 07fcd37 commit 0690c1c

File tree

11 files changed

+50
-25
lines changed

11 files changed

+50
-25
lines changed
793 Bytes
Binary file not shown.

src/Testing/Main.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import javagameengine.backend.Scene;
44
import javagameengine.backend.UpdateThread;
5+
import javagameengine.backend.input.Input;
56
import javagameengine.components.Component;
67
import javagameengine.components.colliders.SquareCollider;
78
import javagameengine.components.GameObject;
@@ -109,11 +110,21 @@ public Level1(){
109110

110111
// add(mainPanel);
111112

112-
Player s = new Player(new Vector2(-100,-110));
113+
/* Player s = new Player(new Vector2(-100,-110));
113114
components.add(s);
114115
components.add(new Goal(new Vector2(100,-100)));
115-
components.add(new Ground(new Vector2(0,0)));
116+
components.add(new Ground(new Vector2(0,0)));*/
117+
118+
GameObject g = new GameObject(){
119+
@Override
120+
public void draw(Graphics g) {
121+
super.draw(g);
122+
g.fillOval((int) Input.getMouseWorldPosition().getX(), (int) Input.getMouseWorldPosition().getY(),10,10);
123+
}
124+
};
125+
g.addChild(new GameObject());
116126

127+
add(g);
117128

118129

119130
}

src/Testing/Player.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public Player(Vector2 pos) {
5858

5959
addChild(physicsBody);
6060
setTag("player");
61-
SquareCollider s = new SquareCollider();
61+
SquareCollider s = new SquareCollider(true);
6262
s.setLocalScale(new Vector2(-20,0));
6363
addChild(s);
6464
addChild(new PlayerMovement());

src/javagameengine/JavaGameEngine.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import javagameengine.backend.GameWorld;
33
import javagameengine.backend.Scene;
44
import javagameengine.backend.UpdateThread;
5-
import javagameengine.msc.Debug;
65
import javagameengine.msc.Vector2;
76

87
import java.util.LinkedList;
@@ -85,8 +84,12 @@ private void startGame(){
8584
calcThread.start();
8685
mainClass = this;
8786
}
87+
boolean started = false;
8888
public void update(){
89-
89+
if(!started && getWindowSize().getX()>0){
90+
started = true;
91+
getScene().startScene();
92+
}
9093
}
9194

9295
}

src/javagameengine/backend/GameWorld.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,5 +110,4 @@ public void setCurrentScene(Scene currentScene) {
110110
public Scene getCurrentScene() {
111111
return currentScene;
112112
}
113-
114113
}

src/javagameengine/backend/Scene.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
package javagameengine.backend;
22

3-
import Testing.Main;
43
import javagameengine.JavaGameEngine;
5-
import javagameengine.backend.input.Input;
64
import javagameengine.components.Camera;
75
import javagameengine.components.Component;
8-
import javagameengine.msc.Debug;
96
import javagameengine.msc.Vector2;
107

118
import javax.swing.*;
129
import java.awt.*;
13-
import java.awt.geom.AffineTransform;
1410
import java.util.Collections;
1511
import java.util.Comparator;
1612
import java.util.LinkedList;
@@ -55,13 +51,21 @@ public boolean isActive() {
5551
/**
5652
Start the scene. Sets som default values
5753
*/
58-
public void start(){
54+
public void startScene(){
5955

6056
setActive(true);
6157
setBackground(new Color(44, 157, 228));
6258
getCamera().setPosition(new Vector2(0,0));
6359

6460
}
61+
62+
/**
63+
* This method is called when the frame has been initialized
64+
*/
65+
public void start(){
66+
67+
}
68+
6569
public void starts(){
6670
for(Component a : components){
6771
a.start();

src/javagameengine/backend/UpdateThread.java

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

33
import javagameengine.components.Component;
44
import javagameengine.JavaGameEngine;
5-
import javagameengine.msc.Debug;
6-
import javagameengine.msc.Vector2;
75

86
import java.awt.*;
97
import java.util.LinkedList;
@@ -51,7 +49,8 @@ public void Update() {
5149
JavaGameEngine.getScene().components=(UpdateObjects());
5250
if(UpdateThread.newObjects.size()>0) {
5351
for (Component o : UpdateThread.newObjects) {
54-
o.setPosition(o.getPosition().add(JavaGameEngine.origin));
52+
o.localOrigin = JavaGameEngine.origin;
53+
o.setPosition(o.getPosition());
5554
JavaGameEngine.getScene().components.add(o);
5655
}
5756
newObjects.clear();
@@ -98,7 +97,7 @@ public void run() {
9897
JavaGameEngine.gameWorld.validate();
9998
JavaGameEngine.gameWorld.repaint();
10099
if(JavaGameEngine.startNewScene){
101-
JavaGameEngine.gameWorld.getCurrentScene().start();
100+
JavaGameEngine.gameWorld.getCurrentScene().startScene();
102101
JavaGameEngine.startNewScene = false;
103102
}
104103

src/javagameengine/backend/input/Input.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import Testing.Main;
44
import javagameengine.JavaGameEngine;
55
import javagameengine.backend.UpdateThread;
6+
import javagameengine.msc.Debug;
67
import javagameengine.msc.Vector2;
78

89
import java.awt.event.KeyEvent;
@@ -21,7 +22,12 @@ public static Vector2 getMousePosition() {
2122
return mousePosition;
2223
}
2324
public static Vector2 getMouseWorldPosition(){
24-
return Input.getMousePosition().add(Main.getScene().getCamera().getPosition().add(0).subtract(JavaGameEngine.getWindowSize().devide(2)));
25+
Vector2 scale = JavaGameEngine.getWindowSize().devide(new Vector2(1920,1080));
26+
scale = scale.multiply(JavaGameEngine.getScene().getCamera().getScale());
27+
28+
Vector2 pos = Input.getMousePosition().devide(scale).add(JavaGameEngine.getWindowSize().subtract(new Vector2(1920,1080)).devide(2));
29+
30+
return pos;
2531
}
2632
public static void setScrollValue(float scrollValue1){
2733
scrollValue = scrollValue1;
@@ -46,11 +52,13 @@ public static void removeMouseButton(MouseEvent e) {
4652
if(isMouseDown(e.getButton()))
4753
mouseButtonDowns.remove(new Integer(e.getButton()));
4854
}
55+
public static LinkedList<Integer> getMouseDown(){
56+
return mouseButtonDowns;
57+
}
4958
public static boolean isMouseDown(int mouseButtonDown)
5059
{
5160
return(mouseButtonDowns.contains(mouseButtonDown));
5261
}
53-
5462
public static boolean isMouseDown() {
5563
return mouseButtonDowns.size() > 0;
5664
}

src/javagameengine/components/Component.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ public void setPosition(Vector2 position) {
140140
*
141141
*/
142142
public Vector2 getSpritePosition(){
143-
float x = (getPosition().subtract(Main.getScene().getCamera().getPosition()).getX()-((getScale().getX()/2)));
144-
float y = (getPosition().subtract(Main.getScene().getCamera().getPosition()).getY()-((getScale().getY()/2)));
143+
float x = (getPosition().subtract(Main.getScene().getCamera().getPosition()).getX());
144+
float y = (getPosition().subtract(Main.getScene().getCamera().getPosition()).getY());
145145

146146
return new Vector2(x,y);
147147
}
@@ -301,13 +301,14 @@ public void update() {
301301
setMouseInside(false);
302302
}
303303
if (isMouseInside() && Input.isMousePressed() && isEnabled()) {
304+
onMousePressed(Input.getMouseDown());
304305
onMousePressed();
305306
if (getParent() != null) getParent().onMousePressed();
306307
}
307308

308309
if(parent!=null) {
309-
float x = (parent.getPosition().getX())-scale.getX()/2;
310-
float y = (parent.getPosition().getY())-scale.getY()/2;
310+
float x = (parent.getPosition().getX());
311+
float y = (parent.getPosition().getY());
311312

312313
setPosition(new Vector2(x,y).add(getLocalPosition())); // we get the parents position and we add our localPosition
313314
// update this in the setScale and setRotation instead
@@ -446,10 +447,10 @@ public Vector2 movePosition(Vector2 add) {
446447
return add;
447448
}
448449

450+
public void onMousePressed(LinkedList<Integer> mouseKeys) {
451+
}
449452
public void onMousePressed() {
450-
Debug.log("pressed on "+this+" :/");
451453
}
452-
453454
public void onMouseEntered() {
454455
//Debug.log("entered "+this);
455456
}

src/javagameengine/components/colliders/SquareCollider.java

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

157157
if(isVisible()){
158158
g.setColor(Color.GREEN);
159-
g.drawRect((int) ((int) getSpritePosition().getX()+getScale().getX()/2), (int) ((int) getSpritePosition().getY()+getScale().getY()/2), (int) getScale().getX(), (int) getScale().getY());
159+
g.drawRect((int) ((int) getSpritePosition().getX()), (int) ((int) getSpritePosition().getY()), (int) getScale().getX(), (int) getScale().getY());
160160
g.setColor(Color.darkGray);
161161
}
162162
/*

0 commit comments

Comments
 (0)