25 lines
2 KiB
HTML
25 lines
2 KiB
HTML
|
<pre style="text-align:left;color:#000000; background-color:#ffffff; border:solid black 1px; padding:0.5em 1em 0.5em 1em; overflow:auto;font-size:small; font-family:monospace; "><em><span style="color:#236e25;">// Construct a pile of boxes.
|
||
|
// Force them to sleep until the first time they are touched.
|
||
|
// Group them together so that touching any box wakes all of them.
|
||
|
</span></em>cpFloat size = <span style="color:#0000ff;">20</span>;
|
||
|
cpFloat mass = <span style="color:#0000ff;">1</span>;
|
||
|
cpFloat moment = <span style="color:#003369;">cpMomentForBox</span>(mass, size, size);
|
||
|
|
||
|
cpBody *lastBody = <strong><span style="color:#881350;">NULL</span></strong>;
|
||
|
|
||
|
<strong><span style="color:#881350;">for</span></strong>(<strong><span style="color:#881350;">int</span></strong> i=<span style="color:#0000ff;">0</span>; i<<span style="color:#0000ff;">5</span>; i++){
|
||
|
cpBody *body = <span style="color:#003369;">cpSpaceAddBody</span>(space, <span style="color:#003369;">cpBodyNew</span>(mass, moment));
|
||
|
<span style="color:#003369;">cpBodySetPos</span>(body, <span style="color:#003369;">cpv</span>(<span style="color:#0000ff;">0</span>, i*size));
|
||
|
|
||
|
cpShape *shape = <span style="color:#003369;">cpSpaceAddShape</span>(space, <span style="color:#003369;">cpBoxShapeNew</span>(body, size, size));
|
||
|
<span style="color:#003369;">cpShapeSetFriction</span>(shape, <span style="color:#0000ff;">0.7</span>);
|
||
|
|
||
|
<em><span style="color:#236e25;">// You can use any sleeping body as a group identifier.
|
||
|
</span></em> <em><span style="color:#236e25;">// Here we just keep a reference to the last body we initialized.
|
||
|
</span></em> <em><span style="color:#236e25;">// Passing NULL as the group starts a new sleeping group.
|
||
|
</span></em> <em><span style="color:#236e25;">// You MUST do this after completely initializing the object.
|
||
|
</span></em> <em><span style="color:#236e25;">// Attaching shapes or calling setter functions will wake the body back up.
|
||
|
</span></em> <span style="color:#003369;">cpBodySleepWithGroup</span>(body, lastBody);
|
||
|
lastBody = body;
|
||
|
}
|
||
|
</pre>
|