Konzepte für 3D-Spiele (Umsetzung der Steuerung)
Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
[unmarkierte Version] | [unmarkierte Version] |
RmbRT (Diskussion | Beiträge) |
RmbRT (Diskussion | Beiträge) (→Bewegung) |
||
Zeile 202: | Zeile 202: | ||
Beginnen wir mit der leichtesten Richtung: vorwärts. Da wir ja unsere Richtung, in die wir gucken, einfach per <tt>blickRichtung::toVektor</tt> berechnen können, folgt: <sourcecode lang=cpp>if(keys['W']) | Beginnen wir mit der leichtesten Richtung: vorwärts. Da wir ja unsere Richtung, in die wir gucken, einfach per <tt>blickRichtung::toVektor</tt> berechnen können, folgt: <sourcecode lang=cpp>if(keys['W']) | ||
{ | { | ||
− | blickRichtung angles = | + | blickRichtung angles = dir; |
− | pos+=angles.toVektor()*frameTime; | + | pos += angles.toVektor() * frameTime; |
}</sourcecode> | }</sourcecode> | ||
Nun Rückwärts: | Nun Rückwärts: | ||
Zeile 211: | Zeile 211: | ||
blickRichtung angles=dir; | blickRichtung angles=dir; | ||
angles.yrot += 180.f; // Wir wollen ja die entgegengesetzte Richtung | angles.yrot += 180.f; // Wir wollen ja die entgegengesetzte Richtung | ||
− | pos += angles.toVektor() | + | pos += angles.toVektor() * frameTime; |
}</sourcecode>Nun gehen wir bei der Rechts-/ Linksbewegung nach dem selben Verfahren vor: <sourcecode lang=cpp>if(keys['D']) | }</sourcecode>Nun gehen wir bei der Rechts-/ Linksbewegung nach dem selben Verfahren vor: <sourcecode lang=cpp>if(keys['D']) | ||
{ | { | ||
blickRichtung angles = dir; | blickRichtung angles = dir; | ||
angles.yrot +=90.f; | angles.yrot +=90.f; | ||
− | pos += angles.toVektor() | + | pos += angles.toVektor() * frameTime; |
} | } | ||
if(keys['A']) | if(keys['A']) |
Version vom 12. Juni 2012, 01:15 Uhr
Klicke hier, um diese Version anzusehen.