diff --git a/core/src/ru/deadsoftware/cavecraft/game/objects/Drop.java b/core/src/ru/deadsoftware/cavecraft/game/objects/Drop.java
index 478a05b5efec729cf036ebad2cffbea2771a20e0..d2139c76bef1008a45b8bee9916099d77bf90fba 100644 (file)
import java.io.Serializable;
public class Drop implements Serializable {
import java.io.Serializable;
public class Drop implements Serializable {
+
private int id;
public boolean pickedUp = false;
public Vector2 move, pos;
private int id;
public boolean pickedUp = false;
public Vector2 move, pos;
}
public int closeToPlayer(GameProc gp) {
}
public int closeToPlayer(GameProc gp) {
- boolean c1 = Intersector.overlaps(new Rectangle(gp.player.pos.x - 16, gp.player.pos.y - 16, gp.player.texWidth + 32, gp.player.height + 32), getRect());
- boolean c2 = Intersector.overlaps(new Rectangle((gp.player.pos.x + gp.world.getWidth() * 16) - 16, gp.player.pos.y - 16, gp.player.texWidth + 32, gp.player.height + 32), getRect());
- boolean c3 = Intersector.overlaps(new Rectangle((gp.player.pos.x - gp.world.getWidth() * 16) - 16, gp.player.pos.y - 16, gp.player.texWidth + 32, gp.player.height + 32), getRect());
+ boolean c1 = Intersector.overlaps(new Rectangle(gp.player.pos.x - 16, gp.player.pos.y - 16, gp.player.getWidth() + 32, gp.player.getHeight() + 32), getRect());
+ boolean c2 = Intersector.overlaps(new Rectangle((gp.player.pos.x + gp.world.getWidthPx()) - 16, gp.player.pos.y - 16, gp.player.getWidth() + 32, gp.player.getHeight() + 32), getRect());
+ boolean c3 = Intersector.overlaps(new Rectangle((gp.player.pos.x - gp.world.getWidthPx()) - 16, gp.player.pos.y - 16, gp.player.getWidth() + 32, gp.player.getHeight() + 32), getRect());
if (c1) return 1;
if (c2) return 2;
if (c3) return 3;
if (c1) return 1;
if (c2) return 2;
if (c3) return 3;
public void moveToPlayer(GameProc gp) {
int ctp = closeToPlayer(gp);
if (ctp > 0) {
public void moveToPlayer(GameProc gp) {
int ctp = closeToPlayer(gp);
if (ctp > 0) {
- float px = gp.player.pos.x + (gp.player.texWidth / 2);
- float py = gp.player.pos.y + (gp.player.height / 2);
+ float px = gp.player.pos.x;
+ float py = gp.player.pos.y;
switch (ctp) {
case 2:
switch (ctp) {
case 2:
- px += gp.world.getWidth() * 16;
+ px += gp.world.getWidthPx();
break;
case 3:
break;
case 3:
- px -= gp.world.getWidth() * 16;
+ px -= gp.world.getWidthPx();
break;
}
float dx = 0, dy = 0;
break;
}
float dx = 0, dy = 0;
- if (px < pos.x + 4) dx = -.5f;
+ if (px + gp.player.getWidth() < pos.x + 4) dx = -.5f;
else if (px > pos.x + 4) dx = .5f;
else if (px > pos.x + 4) dx = .5f;
- if (py < pos.y + 4) dy = -.5f;
+ if (py + gp.player.getHeight() < pos.y + 4) dy = -.5f;
else if (py > pos.y + 4) dy = .5f;
move.add(dx, dy);
else if (py > pos.y + 4) dy = .5f;
move.add(dx, dy);
-// if (move.x > 2) move.x = 2;
-// if (move.x < -2) move.x = -2;
-// if (move.y > 2) move.y = 2;
-// if (move.y < -2) move.y = -2;
+ if (move.x > 2) move.x = 1;
+ if (move.x < -2) move.x = -1;
+ if (move.y > 2) move.y = 1;
+ if (move.y < -2) move.y = -1;
}
}
}
}