-
Notifications
You must be signed in to change notification settings - Fork 5
/
KittenModel.java
75 lines (62 loc) · 1.88 KB
/
KittenModel.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package Objects.Kitten;
import DB.MySettings;
import Entities.ICollisionable;
import PhysicalObjects.DynamicObject;
import PhysicalObjects.PhysicalObjectsFactory;
import PhysicalObjects.StaticObject;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.World;
public class KittenModel implements ICollisionable
{
private final World mundo;
private DynamicObject dynamicBody;
private StaticObject wayPoint;
public KittenModel(World mundo)
{
this.mundo = mundo;
setDynamicBody();
setWayPoint();
}
private void setDynamicBody()
{
dynamicBody = (DynamicObject)PhysicalObjectsFactory.create(DynamicObject.class, mundo, MySettings.KITTEN_HITBOX_WIDTH, MySettings.KITTEN_HITBOX_HEIGHT);
dynamicBody.getBody().setUserData(this);
}
private void setWayPoint()
{
wayPoint = (StaticObject)PhysicalObjectsFactory.create(StaticObject.class, mundo, 1, 1);
wayPoint.getBody().setUserData(this);
}
public void goToCoords(float x, float y)
{
dynamicBody.setDirectionVector(x, y); //Angle
dynamicBody.setLinearVelocity(80f); //Velocity
}
public void setPosition(float x, float y)
{
dynamicBody.setPosition(x, y);
wayPoint.setPosition(x, y);
}
public DynamicObject getDynamicBody()
{
return this.dynamicBody;
}
public StaticObject getWayPoint()
{
return this.wayPoint;
}
public void interpolatePositions(float alpha)
{
dynamicBody.interpolatePositions(alpha);
}
@Override
public void onCollide()
{
this.dynamicBody.setLinearVelocity(0f);
}
public void dragged(Vector2 clickPosition)
{
getWayPoint().setPosition(clickPosition.x, clickPosition.y);
goToCoords(getWayPoint().getBottomLeftCornerX(), getWayPoint().getBottomLeftCornerY());
}
}