Skip to content

Commit 4a72ee1

Browse files
committed
feat: primeira versao funcional do jogo
1 parent 271e381 commit 4a72ee1

File tree

5 files changed

+30
-7
lines changed

5 files changed

+30
-7
lines changed

src/main/java/com/gustavolr/engine/entity/Entity.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.gustavolr.engine.entity;
22

33
import java.awt.Graphics;
4+
import java.awt.Rectangle;
45

56
public abstract class Entity {
67

@@ -40,4 +41,12 @@ public void update() {
4041
public void render(Graphics g) {
4142

4243
}
44+
45+
public boolean isColidding(Entity e1) {
46+
47+
Rectangle e1Mask = new Rectangle(e1.position.x, e1.position.y, e1.width, e1.height);
48+
Rectangle e2Mask = new Rectangle(this.position.x, this.position.y, this.width, this.height);
49+
50+
return e1Mask.intersects(e2Mask);
51+
}
4352
}

src/main/java/com/gustavolr/game_entities/Ball.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55

66
import com.gustavolr.engine.entity.Entity;
77
import com.gustavolr.engine.entity.Vector;
8-
import com.gustavolr.listeners.BallListener;
8+
import com.gustavolr.engine.window.GameWindow;
9+
import com.gustavolr.listeners.BallMovedListener;
910

1011
public class Ball extends Entity {
1112

1213
private int speed;
1314
private Color color;
14-
private BallListener listener;
15+
private BallMovedListener listener;
1516

1617
float dx = 1;
1718
float dy = 1;
@@ -21,16 +22,23 @@ public Ball(Vector position, int width, int height) {
2122
speed = 1;
2223
}
2324

24-
public void addListener(BallListener b) {
25+
public void addListener(BallMovedListener b) {
2526
this.listener = b;
2627
}
2728

29+
public void ballCollidedWithPaddle() {
30+
dx *= -1;
31+
}
32+
2833
@Override
2934
public void update() {
3035

3136
position.x += dx * speed;
3237
position.y += dy * speed;
3338

39+
if(position.y < 0 || position.y > GameWindow.getWindowHeight())
40+
dy *= -1;
41+
3442
if (listener != null) {
3543
this.listener.ballMoved(position);
3644
}

src/main/java/com/gustavolr/game_entities/Enemy.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55

66
import com.gustavolr.engine.entity.Entity;
77
import com.gustavolr.engine.entity.Vector;
8-
import com.gustavolr.listeners.BallListener;
8+
import com.gustavolr.listeners.BallMovedListener;
99

10-
public class Enemy extends Entity implements BallListener {
10+
public class Enemy extends Entity implements BallMovedListener {
1111

1212
private int speed = 1;
1313
private Color color = Color.RED;
1414

1515
public Enemy(Vector position, int width, int height) {
1616
super(position, width, height);
1717
}
18-
18+
1919
@Override
2020
public void render(Graphics g) {
2121
g.setColor(this.color);

src/main/java/com/gustavolr/game_scenes/MainScene.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ public void update() {
3535
for( Entity e : entities) {
3636
e.update();
3737
}
38+
39+
if (b.isColidding(e)) {
40+
b.ballCollidedWithPaddle();
41+
} else if(b.isColidding(p)) {
42+
b.ballCollidedWithPaddle();
43+
}
3844
}
3945

4046
@Override

src/main/java/com/gustavolr/listeners/BallListener.java renamed to src/main/java/com/gustavolr/listeners/BallMovedListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
import com.gustavolr.engine.entity.Vector;
44

5-
public interface BallListener {
5+
public interface BallMovedListener {
66
public void ballMoved(Vector ballPosition);
77
}

0 commit comments

Comments
 (0)