16
|
1
|
|
2 // written in the D programming language
|
|
3
|
|
4 module samples.ChipmunkDemo;
|
|
5
|
|
6 import chipmunkd.chipmunk;
|
|
7
|
|
8 import drawSpace;
|
|
9
|
|
10 import core.stdc.stdlib;
|
|
11
|
|
12 alias cpSpace *function() demoInitFunc;
|
|
13 alias void function(int ticks) demoUpdateFunc;
|
|
14 alias void function()demoDestroyFunc;
|
|
15
|
|
16 struct chipmunkDemo {
|
|
17 string name;
|
|
18
|
|
19 const drawSpaceOptions *drawOptions;
|
|
20
|
|
21 demoInitFunc initFunc;
|
|
22 demoUpdateFunc updateFunc;
|
|
23 demoDestroyFunc destroyFunc;
|
|
24 }
|
|
25
|
24
|
26 // special hack for OSX
|
|
27 version(OSX) import std.random:uniform;
|
|
28
|
16
|
29 static cpFloat
|
|
30 frand()
|
|
31 {
|
24
|
32 version(OSX){
|
|
33 return std.random.uniform(0,1);
|
|
34 }else{
|
16
|
35 return cast(cpFloat)rand()/cast(cpFloat)RAND_MAX;
|
|
36 }
|
24
|
37 }
|
16
|
38
|
|
39 enum GRABABLE_MASK_BIT = (1<<31);
|
|
40 enum NOT_GRABABLE_MASK = (~GRABABLE_MASK_BIT);
|