Mercurial > projects > openmelee
comparison ship.d @ 6:eb6059f7035a
Added planet
author | zzzzrrr <mason.green@gmail.com> |
---|---|
date | Sat, 21 Mar 2009 16:42:08 -0400 |
parents | 6f455ef24063 |
children | 2217fd1fe384 |
comparison
equal
deleted
inserted
replaced
5:6f455ef24063 | 6:eb6059f7035a |
---|---|
33 | 33 |
34 import tango.util.container.LinkedList : LinkedList; | 34 import tango.util.container.LinkedList : LinkedList; |
35 import blaze.dynamics.bzBody : bzBody; | 35 import blaze.dynamics.bzBody : bzBody; |
36 import blaze.collision.shapes.bzShape : bzShape; | 36 import blaze.collision.shapes.bzShape : bzShape; |
37 import blaze.common.bzMath: bzVec2, bzCross; | 37 import blaze.common.bzMath: bzVec2, bzCross; |
38 import blaze.bzWorld : bzWorld; | |
39 import blaze.dynamics.forces.bzAttractor: bzAttractor; | |
38 | 40 |
39 alias LinkedList!(bzShape) ShapeList; | 41 alias LinkedList!(bzShape) ShapeList; |
40 | 42 |
41 abstract class Ship | 43 abstract class Ship |
42 { | 44 { |
43 | 45 bzWorld world; |
44 bzBody rBody; | 46 bzBody rBody; |
45 ShapeList shapes; | 47 ShapeList shapes; |
46 bzVec2 engineForce; | 48 bzVec2 engineForce; |
47 bzVec2 turnForce; | 49 bzVec2 turnForce; |
48 bzVec2 leftTurnPoint; | 50 bzVec2 leftTurnPoint; |
49 bzVec2 rightTurnPoint; | 51 bzVec2 rightTurnPoint; |
50 | 52 |
51 this(bzBody rBody) { | 53 this(bzWorld world) { |
52 this.rBody = rBody; | 54 this.world = world; |
53 shapes = new ShapeList; | 55 shapes = new ShapeList; |
54 } | 56 } |
55 | 57 |
56 void thrust() { | 58 void thrust() { |
57 rBody.force += engineForce.rotate(rBody.angle); | 59 rBody.force += engineForce.rotate(rBody.angle); |
64 | 66 |
65 void turnRight() { | 67 void turnRight() { |
66 rBody.torque += bzCross(rightTurnPoint.rotate(rBody.angle), | 68 rBody.torque += bzCross(rightTurnPoint.rotate(rBody.angle), |
67 turnForce.rotate(rBody.angle)); | 69 turnForce.rotate(rBody.angle)); |
68 } | 70 } |
71 | |
72 void setGravity() { | |
73 | |
74 float minRadius = 1; | |
75 float maxRadius = 30; | |
76 float strength = 4; | |
77 bzVec2 center = bzVec2(0,0); | |
78 auto attractor = new bzAttractor(rBody, center, strength, minRadius, maxRadius); | |
79 world.addForce(attractor); | |
80 } | |
69 } | 81 } |