Skip to content

Commit 08a13e1

Browse files
committed
Merge branch 'arraylist'
2 parents a5d4480 + be53aff commit 08a13e1

File tree

8 files changed

+58
-57
lines changed

8 files changed

+58
-57
lines changed

src/com/javagamemaker/javagameengine/Scene.java

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.javagamemaker.javagameengine.components.Camera;
44
import com.javagamemaker.javagameengine.components.Component;
55
import com.javagamemaker.javagameengine.input.Input;
6+
import com.javagamemaker.javagameengine.msc.Debug;
67
import com.javagamemaker.javagameengine.msc.Vector2;
78

89
import javax.swing.*;
@@ -20,11 +21,11 @@
2021
* (after start) myscene.destroy(new Component())
2122
*/
2223
public class Scene extends JPanel {
23-
public LinkedList<Component> layerList = new LinkedList<>();
24+
public ArrayList<Component> layerList = new ArrayList<>();
2425
private ArrayList<Component> components = new ArrayList<>();
25-
private final LinkedList<Component> newComponents = new LinkedList<>();
26-
private final LinkedList<Component> remove = new LinkedList<>();
27-
private LinkedList<java.awt.Component> uiElements = new LinkedList<>();
26+
private final ArrayList<Component> newComponents = new ArrayList<>();
27+
private final ArrayList<Component> remove = new ArrayList<>();
28+
private ArrayList<java.awt.Component> uiElements = new ArrayList<>();
2829
Camera camera = new Camera();
2930

3031
public Scene() {
@@ -55,15 +56,15 @@ public void start() {
5556
*
5657
* @return list of all ui in the scene
5758
*/
58-
public LinkedList<java.awt.Component> getUiElements() {
59+
public ArrayList<java.awt.Component> getUiElements() {
5960
return uiElements;
6061
}
6162

6263
/**
6364
* sets the ui list with the param
6465
* @param uiElements list to set to
6566
*/
66-
public void setUiElements(LinkedList<java.awt.Component> uiElements) {
67+
public void setUiElements(ArrayList<java.awt.Component> uiElements) {
6768
this.uiElements = uiElements;
6869
}
6970

@@ -143,9 +144,12 @@ public void update() {
143144
component.updateMili();
144145
}
145146
}
146-
for (Component component : components) {
147-
if (inside(component)) {
148-
component.update();
147+
148+
int lsize = components.size();
149+
for(int i = 0; i < lsize;i++){
150+
Component c = components.get(i);
151+
if (inside(c)) {
152+
c.update();
149153
}
150154
}
151155

@@ -172,13 +176,9 @@ public void destroy(Component c) {
172176
}
173177

174178
public boolean inside(Component component) {
175-
//Debug.log(component.getPosition().getDistance(JavaGameEngine.getSelectedScene().getCamera().getPosition()));
176-
//return (component.getPosition().getDistance(JavaGameEngine.getSelectedScene().getCamera().getPosition()) < 1500);
177-
//Debug.log(String.valueOf(JavaGameEngine.getSelectedScene().getCamera().getPosition().add(component.getPosition()).getMagnitude()<1000));
178-
return true;
179-
//return JavaGameEngine.getSelectedScene().getCamera().getPosition().add(component.getPosition()).getMagnitude()<JavaGameEngine.getWindowSize().getMagnitude();
179+
return screen.contains(component.getPolygon().getBounds());
180180
}
181-
181+
Rectangle screen = new Rectangle();
182182
/**
183183
*
184184
* @param g the <code>Graphics</code> object to protect
@@ -189,7 +189,6 @@ protected void paintComponent(Graphics g) {
189189
Graphics2D graphics2D = (Graphics2D) g;
190190

191191
//graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
192-
193192
Vector2 scale = camera.getScale();
194193
//scale = scale.devide(JavaGameEngine.getWindowSize());
195194

@@ -203,27 +202,27 @@ protected void paintComponent(Graphics g) {
203202
graphics2D.translate(width*percentW,height*percentH);
204203
graphics2D.translate(camera.getPosition().getX(),camera.getPosition().getY());
205204

205+
if(!screen.equals(graphics2D.getClip().getBounds())){
206+
screen = new Rectangle(graphics2D.getClip().getBounds().x-200,graphics2D.getClip().getBounds().y-200,graphics2D.getClip().getBounds().width+500,graphics2D.getClip().getBounds().height+500);
207+
}
206208

207209
int x = (int) ((int) (Input.getMousePositionOnCanvas().getX() / getCamera().getScale().getX()) + graphics2D.getClip().getBounds().getX());
208210
int y = (int) ((int) (Input.getMousePositionOnCanvas().getY() / getCamera().getScale().getX()) + graphics2D.getClip().getBounds().getY() );
209-
210211
Input.setMousePosition(new Vector2(x,y));
211-
List<Component> list = components;
212212
/*Collections.sort(list, new Comparator<Component>() {
213213
@Override
214214
public int compare(Component o1, Component o2) {
215215
return o1.getLayer() - o2.getLayer();
216216
}
217217
});*/
218218
try{
219-
for(Component c : list){
219+
int lsize = components.size();
220+
for(int i = 0; i < lsize;i++){
221+
Component c = components.get(i);
220222
if(inside(c)) {
221223
(c).render(graphics2D);
222224
}
223-
224225
}
225-
}catch (Exception e){
226-
227-
}
226+
}catch (Exception e){}
228227
}
229228
}

src/com/javagamemaker/javagameengine/components/Collider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
import com.javagamemaker.javagameengine.msc.Vector2;
77

88
import java.awt.*;
9+
import java.util.ArrayList;
910
import java.util.LinkedList;
1011

1112
public class Collider extends Component{
1213

1314
protected boolean visible = false;
1415
protected LinkedList<String> ignoreTags = new LinkedList<>();
1516
protected boolean trigger = false;
16-
public Collider(LinkedList<Vector2> localVertices) {
17+
public Collider(ArrayList<Vector2> localVertices) {
1718
super(localVertices);
1819
}
1920
public Collider(boolean visible) {

src/com/javagamemaker/javagameengine/components/Component.java

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.javagamemaker.javagameengine.msc.Vector2;
99

1010
import java.awt.*;
11+
import java.util.ArrayList;
1112
import java.util.LinkedList;
1213
import java.util.List;
1314

@@ -27,17 +28,17 @@ public class Component {
2728
protected Vector2 position = new Vector2(0,0);
2829
protected Vector2 parentOffset = new Vector2(0,0);
2930
protected Vector2 scale = new Vector2(100,100);
30-
protected LinkedList<Vector2> localVertices = new LinkedList<>();
31-
protected LinkedList<Vector2> vertices = new LinkedList<>();
32-
protected LinkedList<Component> children = new LinkedList<>();
31+
protected ArrayList<Vector2> localVertices = new ArrayList<>();
32+
protected ArrayList<Vector2> vertices = new ArrayList<>();
33+
protected ArrayList<Component> children = new ArrayList<>();
3334
protected Component parent;
3435
protected Vector2 prevPosition = Vector2.zero;
3536
protected boolean mouseInside = false;
3637
protected boolean freezeRotation = false;
3738

3839
protected Vector2 lastPosition;
3940

40-
public Component(LinkedList<Vector2> localVertices){
41+
public Component(ArrayList<Vector2> localVertices){
4142
this.localVertices = localVertices;
4243
}
4344
public Component(){
@@ -153,13 +154,13 @@ public void setParentOffset(Vector2 parentOffset) {
153154
*/
154155
public void setScale(Vector2 scale) {
155156
Vector2 d = scale.divide(getScale());
156-
LinkedList<Vector2> newVertices =new LinkedList<>();
157+
ArrayList<Vector2> newVertices =new ArrayList<>();
157158
for(Vector2 vertex : localVertices){
158159
Vector2 newV = vertex.multiply(d);
159160
newVertices.add(newV);
160161
}
161162
for(Component c : children){
162-
LinkedList<Vector2> newVertices1 =new LinkedList<>();
163+
ArrayList<Vector2> newVertices1 =new ArrayList<>();
163164
for(Vector2 vertex : c.localVertices){
164165
Vector2 newV = vertex.multiply(d);
165166
newVertices1.add(newV);
@@ -279,11 +280,11 @@ public void setPosition(Vector2 position) {
279280

280281
}
281282

282-
public LinkedList<Component> getChildren() {
283+
public ArrayList<Component> getChildren() {
283284
return children;
284285
}
285286

286-
public void setChildren(LinkedList<Component> children) {
287+
public void setChildren(ArrayList<Component> children) {
287288
this.children = children;
288289
}
289290

@@ -295,19 +296,19 @@ public void setParent(Component parent) {
295296
this.parent = parent;
296297
}
297298

298-
public LinkedList<Vector2> getVertices() {
299+
public ArrayList<Vector2> getVertices() {
299300
return vertices;
300301
}
301302

302-
public LinkedList<Vector2> getLocalVertices() {
303+
public ArrayList<Vector2> getLocalVertices() {
303304
return localVertices;
304305
}
305306

306-
public void setLocalVertices(LinkedList<Vector2> localVertices) {
307+
public void setLocalVertices(ArrayList<Vector2> localVertices) {
307308
this.localVertices = localVertices;
308309
}
309310

310-
public void setVertices(LinkedList<Vector2> vertices) {
311+
public void setVertices(ArrayList<Vector2> vertices) {
311312
this.vertices = vertices;
312313
}
313314

@@ -323,7 +324,7 @@ public float getAngle() {
323324
* update all shape points based on position
324325
*/
325326
public void updateVertices(){
326-
LinkedList<Vector2> ver = new LinkedList<>();
327+
ArrayList<Vector2> ver = new ArrayList<>();
327328
for(Vector2 vertex : localVertices){
328329
ver.add(vertex.add(position.subtract(rotOffset)));
329330
}
@@ -361,11 +362,11 @@ public void updateMili(){
361362
*/
362363
public void update(){
363364
Point p = new Point((int) Input.getMousePosition().getX(), (int) Input.getMousePosition().getY());
364-
/*
365-
if mouse is inside, and we have not been we call mouse entered and we say it is entered
366-
if mouse is inside, and we have been we don't call mouse entered
367-
if mouse is not inside, and we are previously we call mouse left
368-
*/
365+
/*
366+
if mouse is inside, and we have not been we call mouse entered and we say it is entered
367+
if mouse is inside, and we have been we don't call mouse entered
368+
if mouse is not inside, and we are previously we call mouse left
369+
*/
369370
Component prev = JavaGameEngine.getSelectedScene().hasA;
370371
if (getPolygon().contains(p) && (prev == null || (prev == this) || getLayer() > prev.getLayer())) {
371372
if (isMouseInside()) {
@@ -477,7 +478,7 @@ public void rotate(float angle){
477478
this.angle += angle * JavaGameEngine.deltaTime;
478479

479480
double radians = Math.toRadians(angle * JavaGameEngine.deltaTime); // turns to radians from angle
480-
LinkedList<Vector2> vertices1 = new LinkedList<>(); // new vertices
481+
ArrayList<Vector2> vertices1 = new ArrayList<>(); // new vertices
481482
for (int i = 0; i < localVertices.size(); i++) {
482483
Vector2 vertex = localVertices.get(i);
483484
// matrix rotation
@@ -510,7 +511,7 @@ public void rotate(float angle,Vector2 pivot){
510511
this.angle += angle;
511512

512513
double radians = Math.toRadians(angle); // turns to radians from angle
513-
LinkedList<Vector2> vertices1 = new LinkedList<>(); // new vertices
514+
ArrayList<Vector2> vertices1 = new ArrayList<>(); // new vertices
514515

515516
for (int i = 0; i < localVertices.size(); i++) {
516517
Vector2 vertex = localVertices.get(i).subtract(pivot);
@@ -591,9 +592,8 @@ public void destroy(){
591592
* @param g what graphics to render to
592593
*/
593594
public void render(Graphics2D g){
594-
List<Component> list = getChildren();
595595

596-
for (Component child : list){
596+
for (Component child : getChildren()){
597597
child.render(g);
598598
}
599599

src/com/javagamemaker/javagameengine/components/GameObject.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.javagamemaker.javagameengine.msc.Vector2;
44

55
import java.awt.*;
6+
import java.util.ArrayList;
67
import java.util.LinkedList;
78

89

@@ -13,7 +14,7 @@ public class GameObject extends Component{
1314

1415
private Color color = new Color(60,60,60);
1516

16-
public GameObject(LinkedList<Vector2> localVertices){
17+
public GameObject(ArrayList<Vector2> localVertices){
1718
super(localVertices);
1819
}
1920
public GameObject(){
@@ -41,9 +42,6 @@ public void render(Graphics2D g) {
4142
g.fillPolygon(getPolygon());
4243
g.setColor(prev);
4344
}
44-
g.setColor(color);
45-
g.fillPolygon(getPolygon());
46-
g.setColor(prev);
4745
super.render(g);
4846
}
4947
}

src/com/javagamemaker/javagameengine/components/Grabber.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class Grabber extends Component{
1212
public Grabber(Component parent){
1313
this.parent = parent;
1414
}
15-
Vector2 gridSnapping = new Vector2(10,10);
15+
Vector2 gridSnapping = new Vector2(1,1);
1616
@Override
1717
public void update() {
1818
super.update();

src/com/javagamemaker/javagameengine/components/shapes/Circle.java

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

33
import com.javagamemaker.javagameengine.msc.Vector2;
44

5+
import java.util.ArrayList;
56
import java.util.LinkedList;
67

7-
public class Circle extends LinkedList<Vector2> {
8+
public class Circle extends ArrayList<Vector2> {
89

910
int width, height;
1011

1112
public Circle(int width, int height){
12-
13-
for(int x = 0;x <= 360/3;x++){
14-
add(new Vector2(width* (float) Math.cos(Math.toRadians(x*3)), height * (float) Math.sin(Math.toRadians(x*3))));
13+
// higher scaler better preformance badder circles
14+
float scaler = 3f;
15+
for(int x = 0;x <= 360/scaler;x++){
16+
add(new Vector2(width* (float) Math.cos(Math.toRadians(x*scaler)), height * (float) Math.sin(Math.toRadians(x*scaler))));
1517
}
1618

1719
}

src/com/javagamemaker/javagameengine/components/shapes/Rect.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
import com.javagamemaker.javagameengine.msc.Vector2;
44

5+
import java.util.ArrayList;
56
import java.util.LinkedList;
67

7-
public class Rect extends LinkedList<Vector2> {
8+
public class Rect extends ArrayList<Vector2> {
89

910
public Rect(int width, int height){
1011
add(new Vector2(-width/2,-height/2)); // top left

src/com/javagamemaker/testing/spel1/Main.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public void update() {
108108
Main.getSelectedScene().instantiate(ship);
109109
destroy();
110110
}
111-
Debug.log(getWindowSize().divide(2));
111+
//Debug.log(getWindowSize().divide(2));
112112
getSelectedScene().getCamera().setPosition(getWindowSize().divide(2));
113113
}
114114

0 commit comments

Comments
 (0)