Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Ship s;
- void setup()
- {
- size(900, 800);
- frameRate(60);
- stroke(255);
- strokeWeight(2);
- s = new Ship(width/2, height/2, 15);
- fill(51,20);
- }
- void draw()
- {
- rect(0,0,width,height);
- s.update();
- s.display();
- }
- class Ship
- {
- final float turnSpeed = radians(4);
- final float moveSpeed = 6;
- float angle;
- int len;
- PVector pos;
- PVector vel = new PVector(0, 0);
- PVector acc = new PVector(0, 0);
- Ship(float x, float y, int len)
- {
- pos = new PVector(x, y);
- this.len = len;
- }
- void turn()
- {
- if (keys[0])
- angle += turnSpeed;
- if (keys[1])
- angle -= turnSpeed;
- }
- void move()
- {
- if (keys[2]) {
- vel.set(moveSpeed * sin(-angle), moveSpeed * cos(-angle));
- }
- }
- void addVectors()
- {
- pos.add(vel);
- vel.add(acc);
- }
- void deAccel()
- {
- float deAccel = 0.06;
- acc.set(-vel.x * deAccel, -vel.y * deAccel);
- }
- void update()
- {
- turn();
- move();
- addVectors();
- deAccel();
- }
- void display()
- {
- pushMatrix();
- translate(pos.x, pos.y);
- rotate(angle);
- line(0, 0, 0, len);
- popMatrix();
- }
- }
- boolean[] keys = {false, false, false};
- void keyPressed()
- {
- if (key == 'd')
- keys[0] = true;
- else if (key == 'a')
- keys[1] = true;
- else if (key == 'w')
- keys[2] = true;
- }
- void keyReleased()
- {
- if (key == 'd')
- keys[0] = false;
- else if (key == 'a')
- keys[1] = false;
- else if (key == 'w')
- keys[2] = false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement