forked from skooter500/OOP-2018-2019
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathShip.java
128 lines (104 loc) · 2.34 KB
/
Ship.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package ie.dit;
import processing.core.PVector;
public class Ship
{
private PVector pos;
private PVector forward;
private float speed;
private float size;
private YASC yasc;
private float rotation;
public Ship(YASC yasc, float x, float y, float speed, float size)
{
this.yasc = yasc;
pos = new PVector(x, y);
forward = new PVector(0, -1);
this.speed = speed;
this.size = size;
}
public void render()
{
yasc.pushMatrix();
yasc.translate(pos.x, pos.y);
yasc.rotate(rotation);
float halfSize = size / 2;
yasc.line(- halfSize, halfSize, 0, - halfSize);
yasc.line(0, - halfSize
, halfSize, halfSize);
yasc.line(halfSize, halfSize
,0, 0);
yasc.line(0, 0, -halfSize, halfSize);
yasc.popMatrix();
}
public void update()
{
forward.x = (float) Math.sin(rotation);
forward.y = - (float) Math.cos(rotation);
if (yasc.checkKey('w'))
{
pos.x += forward.x;
pos.y += forward.y;
}
if (yasc.checkKey('s'))
{
pos.x -= forward.x;
pos.y -= forward.y;
}
if (yasc.checkKey('a'))
{
rotation -= 0.1f;
}
if (yasc.checkKey('d'))
{
rotation += 0.1f;
}
}
/**
* @return the pos
*/
public PVector getPos() {
return pos;
}
/**
* @param pos the pos to set
*/
public void setPos(PVector pos) {
this.pos = pos;
}
/**
* @return the speed
*/
public float getSpeed() {
return speed;
}
/**
* @param speed the speed to set
*/
public void setSpeed(float speed) {
this.speed = speed;
}
/**
* @return the size
*/
public float getSize() {
return size;
}
/**
* @param size the size to set
*/
/**
* @return the yasc
*/
public YASC getYasc() {
return yasc;
}
/**
* @param yasc the yasc to set
*/
public void setYasc(YASC yasc) {
this.yasc = yasc;
}
public void setSize(float size) {
this.size = size;
}
}