void grabObjects() {
ENTITY* entTemp = NULL;
while(1) {
// Solange wir die linke Maustaste gedrückt haben, wollen wir Objekte
// tragen
if (mouse_left) {
// Wenn wir bereits ein Objekt halten, aktualisiere dessen
// Position
if (entTemp != NULL) {
vec_set(entTemp.x, vector(
100*cos(camera.pan)+player.x,
100*sin(camera.pan)+player.y,
player.z+20)
);
vec_set(entTemp.pan, camera.pan);
// Wenn wir noch kein Objekt halten...
} else {
// ... Aber sich unter unserem Fadenkreuz eines befindet,
// dann nehmen wir es uns und lösen es zum Tragen von
// der Physikengine.
if (mouse_ent != NULL) {
entTemp = mouse_ent;
set(entTemp, TRANSLUCENT);
pXent_settype(entTemp, 0, 0);
}
}
// Wenn wir die linke Maustaste nicht (mehr) drücken und ein Objekt
// in den Händen halten dann lassen wir es fallen und machen es
// wieder zu einem Physikobjekt.
} else {
if (entTemp != NULL) {
reset(entTemp, TRANSLUCENT);
pXent_settype(entTemp,PH_RIGID, PH_BOX);
entTemp = NULL;
}
}
wait(1);
}
}