37x Forum

37x Forum (http://www.37x.de/forum.php)
-   Tutorials (http://www.37x.de/tutorials/)
-   -   Toggleproblem (http://www.37x.de/tutorials/7755-toggleproblem.html)

Timberland 20.05.2004 12:35

Toggleproblem
 
Dies ist ein Post aus dem Vip-Bereich und war zuerst nicht als Tutorial gedacht jedoch kann man es nun als solches Ansehen weiter unten steht der Code

Hi, ich bins mal wieder :/.
Ich habe folgendes Problem, ich will mein Crosshair als Toggle (aber nur an und aus) machen.

Code:

Timbo51++;
        if(Timbo51 >= 5)
                Timbo5=true;

Wird das Crosshair immer gemalt.
Habe ich aber:
Code:

Timbo51++;
        if((Timbo51 >= 5)&& GetAsyncKeyState(VK_NUMPAD4))
                Timbo5=true;

Wird es nur gemalt wenn ich die Taste drücke. Weiß einer was ich ändern muss damit es wie ein An-und Ausschalter funktioniert? Es kommen ja auch keinerlei Fehlermeldungen, habe ja auch alles "geboolt" und so.

Ach ja ich habe auch mal das hier versucht:
Code:

if(GetAsyncKeyState(VK_NUMPAD4)& (1==1))
 {
        if(Timbotaste=0)
        {
                Timbo5=true;
                Timbotaste++;
        }
        else
        {
                Timbo5=false;
                Timbotaste--;
        }
 }

Da wurde es gar nicht dargestellt.
Bin echt ratlos-


P.S. Ich hoffe ich nerve euch nicht zu stark mit meinen Fragen.

NAFEST 20.05.2004 23:41

Du drückst Dich wieder echt deutsch aus :evil: Was meinste mit gemalt?! Was passiert genau,wenn Du die Taste drückst?!

Timberland 21.05.2004 11:36

Oki doki. Also wenn ich
Code:

Timbo51++;
        if(Timbo51 >= 5)
                Timbo5=true;

in glviewport mache, wird mein Crosshair immer angezeigt (mein zusätzliches).
habe ich aber:
Code:

Timbo51++;
        if((Timbo51 >= 5)&& GetAsyncKeyState(VK_NUMPAD4))
                Timbo5=true;

in glviewport, wird das zusätzliche Crosshair nur dargestellt (gedrawt, gemalt oder weiß ich wie es jetzt heißt :) ) so lange ich die "4" auf dem Numpad drücke.

Ich will es jetzt aber so schreiben, dass wenn ich auf die "4" drücke, das zusätzliche Crosshair dargestellt (gedrawt, gemalt, eingeblendet) wird und wenn ich nochmals auf die "4" drücke wieder ausgeblendet wird. Hoffe das war jetzt verständlicher.

suxx- 21.05.2004 14:05

ja und ? genau das hast du mit der if abfrage bewirkt ... das wenn num4 gedrückt ist das die if abfrage wahr ist und somit ausgeführt wird. Wenn du hingegen ein Toggle willst muss du in glViewport den GetAsyncKeystat machen also ungefähr so

Code:

if((GetAsyncKeyState(VK_NUMPAD4) < 0 ) && Last_Key != VK_NUMPAD4)
{
draw.xhair = !draw.xhair;
Last_Key = VK_NUMPAD4;
}else
Last_Key = 0;

und dann in glEnable

Code:

if (draw.enable && draw.xhair)
{
DrawCrosshair();
}

nun frag nicht nach den ganzen Variablen ... so hab ich es in alten ogl versionen gemacht inzwischen hab ich einen besseren Weg gefunden.

Timberland 21.05.2004 14:24

Danke suxx, Variablen frag ich schon nicht nach keine Angst.

Leute, ihr könnt stolz auf mich sein. Ich habe eine andere Möglichkeit gefunden, wohoo :D. Zwar nur dank eurer Hilfe aber ich habe sie :D. *Happy*

suxx- 06.06.2004 15:45

so nun erblick auch dieses Tutorial das Licht der Welt :)

Timberland 06.06.2004 17:58

Jetzt kommen ja meine ganzen peinlichen Fragen public :D.


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:09 Uhr.

Powered by vBulletin