annotate trunk/tests/ChipmunkDemos/samples/Player.d @ 16:af2f61a96318

ported chipmunk demos
author Extrawurst
date Sat, 04 Dec 2010 02:02:29 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
1
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
2 // written in the D programming language
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
3
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
4 module samples.Player;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
5
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
6 import chipmunkd.chipmunk;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
7
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
8 import samples.ChipmunkDemo;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
9
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
10 import gameApp;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
11
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
12 static cpSpace *space;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
13
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
14 struct PlayerStruct {
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
15 cpFloat u;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
16 cpShape *shape;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
17 cpVect groundNormal;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
18 cpArray *groundShapes;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
19 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
20
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
21 PlayerStruct playerInstance;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
22
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
23 static cpBool
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
24 begin(cpArbiter *arb, cpSpace *space, void *ignore)
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
25 {
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
26 mixin(CP_ARBITER_GET_SHAPES!("arb", "a", "b"));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
27 PlayerStruct *player = cast(PlayerStruct *)a.data;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
28
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
29 cpVect n = cpvneg(cpArbiterGetNormal(arb, 0));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
30 if(n.y > 0.0f){
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
31 cpArrayPush(player.groundShapes, b);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
32 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
33
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
34 return cpTrue;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
35 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
36
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
37 static cpBool
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
38 preSolve(cpArbiter *arb, cpSpace *space, void *ignore)
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
39 {
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
40 mixin(CP_ARBITER_GET_SHAPES!("arb", "a", "b"));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
41 PlayerStruct *player = cast(PlayerStruct *)a.data;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
42
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
43 if(cpArbiterIsFirstContact(arb)){
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
44 a.u = player.u;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
45
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
46 // pick the most upright jump normal each frame
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
47 cpVect n = cpvneg(cpArbiterGetNormal(arb, 0));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
48 if(n.y >= player.groundNormal.y){
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
49 player.groundNormal = n;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
50 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
51 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
52
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
53 return cpTrue;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
54 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
55
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
56 static void
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
57 separate(cpArbiter *arb, cpSpace *space, void *ignore)
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
58 {
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
59 mixin(CP_ARBITER_GET_SHAPES!("arb", "a", "b"));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
60 PlayerStruct *player = cast(PlayerStruct *)a.data;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
61
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
62 cpArrayDeleteObj(player.groundShapes, b);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
63
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
64 if(player.groundShapes.num == 0){
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
65 a.u = 0.0f;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
66 player.groundNormal = cpvzero;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
67 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
68 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
69
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
70 static void
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
71 playerUpdateVelocity(cpBody *_body, cpVect gravity, cpFloat damping, cpFloat dt)
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
72 {
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
73 cpBodyUpdateVelocity(_body, gravity, damping, dt);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
74 _body.v.y = cpfmax(_body.v.y, -700);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
75 _body.v.x = cpfclamp(_body.v.x, -400, 400);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
76 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
77
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
78
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
79 static void
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
80 update(int ticks)
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
81 {
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
82 static int lastJumpState = 0;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
83 int jumpState = (arrowDirection.y > 0.0f);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
84
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
85 cpBody *_body = playerInstance.shape._body;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
86
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
87 cpVect groundNormal = playerInstance.groundNormal;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
88 if(groundNormal.y > 0.0f){
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
89 playerInstance.shape.surface_v = cpvmult(cpvperp(groundNormal), 400.0f*arrowDirection.x);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
90 if(arrowDirection.x) cpBodyActivate(_body);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
91 } else {
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
92 playerInstance.shape.surface_v = cpvzero;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
93 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
94
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
95 // apply jump
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
96 if(jumpState && !lastJumpState && cpvlengthsq(groundNormal)){
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
97 // body.v = cpvmult(cpvslerp(groundNormal, cpv(0.0f, 1.0f), 0.5f), 500.0f);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
98 _body.v = cpvadd(_body.v, cpvmult(cpvslerp(groundNormal, cpv(0.0f, 1.0f), 0.75f), 500.0f));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
99 cpBodyActivate(_body);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
100 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
101
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
102 if(playerInstance.groundShapes.num == 0){
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
103 cpFloat air_accel = _body.v.x + arrowDirection.x*(2000.0f);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
104 _body.f.x = _body.m*air_accel;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
105 // body.v.x = cpflerpconst(body.v.x, 400.0f*arrowDirection.x, 2000.0f/60.0f);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
106 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
107
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
108 enum int steps = 3;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
109 enum cpFloat dt = 1.0f/60.0f/cast(cpFloat)steps;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
110
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
111 for(int i=0; i<steps; i++){
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
112 cpSpaceStep(space, dt);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
113 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
114
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
115 lastJumpState = jumpState;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
116 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
117
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
118 static cpSpace *
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
119 init()
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
120 {
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
121 cpResetShapeIdCounter();
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
122
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
123 space = cpSpaceNew();
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
124 space.iterations = 10;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
125 space.gravity = cpv(0, -1500);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
126
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
127 cpBody *_body;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
128 cpBody *staticBody = &space.staticBody;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
129 cpShape *shape;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
130
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
131 // Create segments around the edge of the screen.
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
132 shape = cpSpaceAddShape(space, cpSegmentShapeNew(staticBody, cpv(-320,-240), cpv(-320,240), 0.0f));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
133 shape.e = 1.0f; shape.u = 1.0f;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
134 shape.layers = NOT_GRABABLE_MASK;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
135 shape.collision_type = 2;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
136
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
137 shape = cpSpaceAddShape(space, cpSegmentShapeNew(staticBody, cpv(320,-240), cpv(320,240), 0.0f));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
138 shape.e = 1.0f; shape.u = 1.0f;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
139 shape.layers = NOT_GRABABLE_MASK;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
140 shape.collision_type = 2;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
141
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
142 shape = cpSpaceAddShape(space, cpSegmentShapeNew(staticBody, cpv(-320,-240), cpv(320,-240), 0.0f));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
143 shape.e = 1.0f; shape.u = 1.0f;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
144 shape.layers = NOT_GRABABLE_MASK;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
145 shape.collision_type = 2;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
146
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
147 shape = cpSpaceAddShape(space, cpSegmentShapeNew(staticBody, cpv(-320,240), cpv(320,240), 0.0f));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
148 shape.e = 1.0f; shape.u = 1.0f;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
149 shape.layers = NOT_GRABABLE_MASK;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
150 shape.collision_type = 2;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
151
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
152 // add some other segments to play with
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
153 shape = cpSpaceAddShape(space, cpSegmentShapeNew(staticBody, cpv(-220,-200), cpv(-220,240), 0.0f));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
154 shape.e = 1.0f; shape.u = 1.0f;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
155 shape.layers = NOT_GRABABLE_MASK;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
156 shape.collision_type = 2;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
157
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
158 shape = cpSpaceAddShape(space, cpSegmentShapeNew(staticBody, cpv(0,-240), cpv(320,-200), 0.0f));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
159 shape.e = 1.0f; shape.u = 1.0f;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
160 shape.layers = NOT_GRABABLE_MASK;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
161 shape.collision_type = 2;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
162
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
163 shape = cpSpaceAddShape(space, cpSegmentShapeNew(staticBody, cpv(200,-240), cpv(320,-100), 0.0f));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
164 shape.e = 1.0f; shape.u = 1.0f;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
165 shape.layers = NOT_GRABABLE_MASK;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
166 shape.collision_type = 2;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
167
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
168 shape = cpSpaceAddShape(space, cpSegmentShapeNew(staticBody, cpv(-220,-80), cpv(200,-80), 0.0f));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
169 shape.e = 1.0f; shape.u = 1.0f;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
170 shape.layers = NOT_GRABABLE_MASK;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
171 shape.collision_type = 2;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
172
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
173 // Set up the player
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
174 cpFloat radius = 15.0f;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
175 _body = cpSpaceAddBody(space, cpBodyNew(10.0f, INFINITY));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
176 _body.p = cpv(0, -220);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
177 _body.velocity_func = &playerUpdateVelocity;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
178
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
179 shape = cpSpaceAddShape(space, cpCircleShapeNew(_body, radius, cpvzero));
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
180 shape.e = 0.0f; shape.u = 2.0f;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
181 shape.collision_type = 1;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
182
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
183 playerInstance.u = shape.u;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
184 playerInstance.shape = shape;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
185 playerInstance.groundShapes = cpArrayNew(0);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
186 shape.data = &playerInstance;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
187
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
188 cpSpaceAddCollisionHandler(space, 1, 2, &begin, &preSolve, null, &separate, null);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
189
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
190 return space;
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
191 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
192
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
193 static void
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
194 destroy()
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
195 {
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
196 cpSpaceFreeChildren(space);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
197 cpSpaceFree(space);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
198
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
199 cpArrayFree(playerInstance.groundShapes);
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
200 }
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
201
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
202 chipmunkDemo Player = {
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
203 "Player",
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
204 null,
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
205 &init,
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
206 &update,
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
207 &destroy,
af2f61a96318 ported chipmunk demos
Extrawurst
parents:
diff changeset
208 };