Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

11

29.12.2006, 13:23

C-/C++-Quelltext

1
2
3
if(GetAsyncKeyState(0xXX)<0)
{
}

12

29.12.2006, 13:48

Abgesehen von den bereits genannten Sachen solltest du mal Prüfen welchen Wert die Funktion "crash()" zurück gibt. Also mal einen Haltepunkt setzen und debuggen. Ansonsten könntes es daran liegen das du die Textur änderst. Kommentier den Teil mal aus und schau ob es mit der alten funktioniert. Eventuell entsteht der Fehler beim Wechseln der Textur.

Chef-Koch

Treue Seele

  • »Chef-Koch« ist der Autor dieses Themas

Beiträge: 115

Wohnort: Ulm

  • Private Nachricht senden

13

29.12.2006, 15:05

habe jetz mal beideMoeglichkeiten ausprobiert, haben aber beide nichts gebracht.

Es scheint tatsaechlich an der Funktion Crash zu liegen, hier mal 2 Ausschnitte der Logbuchdatei:

funktionierender Teil (Steuerung mit VK_UP, VK_DOWN ...):

Quellcode

1
2
3
4
Crash gibt dn Wert 0.000893 zurueck
Crash gibt dn Wert 0.000789 zurueck
Crash gibt dn Wert 0.000971 zurueck
Crash gibt dn Wert 0.000800 zurueck


und hier der nichtfunktionierende:

Quellcode

1
2
3
4
Crash gibt dn Wert -107374176.000000 zurueck
Crash gibt dn Wert -107374176.000000 zurueck
Crash gibt dn Wert -107374176.000000 zurueck
Crash gibt dn Wert -107374176.000000 zurueck


da is ja klar, dass des Fahrzeug verschwindet ^^'.
Aber trotzdem weiß ich nicht, warum er so reagiert :/. Hier mal der Code von Crash():

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
float Crash(SViereck *pCrasher, SViereck *pHinderniss, float Speed,float fSecsPassed, char* Keystate)
{

        tbVector2   HMittelpunkt;

        HMittelpunkt.x      = pHinderniss->bVertex[1].x + 0.5f;
        HMittelpunkt.y      = pHinderniss->bVertex[1].y + 0.5f;



                        if(GetAsyncKeyState(VK_UP)) {                       

                        if((fBetrag((pCrasher->bVertex[1].x + 0.5f) - HMittelpunkt.x) <= 0.5f) && (fBetrag(pCrasher->bVertex[1].y - HMittelpunkt.y) <= 0.5f))
                        {
                        Speed = -0.9f *fSecsPassed; 
                        }

                            else
                            Speed = 0.8f *fSecsPassed;
                        } 


                        if(GetAsyncKeyState(VK_DOWN))   {   
                            
                            if((fBetrag((pCrasher->bVertex[0].x + 0.5f) - HMittelpunkt.x) <= 0.5f) && (fBetrag(pCrasher->bVertex[0].y - HMittelpunkt.y) <= 0.5f))
                            Speed = -0.9f *fSecsPassed;

                            else
                            Speed = 0.8f * fSecsPassed;
                        } 

                        if(GetAsyncKeyState(VK_LEFT))   {       
                                                                                    
                            if((fBetrag((pCrasher->bVertex[0].y + 0.5f) - HMittelpunkt.y) <= 0.5f) && (fBetrag(pCrasher->bVertex[0].x - HMittelpunkt.x) <= 0.5f))

                            Speed = -0.9f *fSecsPassed;


                            
                            else
                            Speed = 0.8f * fSecsPassed;
                        } 

                        if(GetAsyncKeyState(VK_RIGHT))  {                           

                        if((fBetrag((pCrasher->bVertex[2].y + 0.5f) - HMittelpunkt.y) <= 0.5f) && (fBetrag(pCrasher->bVertex[2].x - HMittelpunkt.x) <= 0.5f))
                        Speed = -0.9f *fSecsPassed;

                        else
                        Speed = 0.8f * fSecsPassed;

                        } 
return Speed;
}


was ich am komischten finde, ist, dass der Funktionierende Teil, Wenn man VK_UP durch dezimalcode ersetzt(z.B. irgendeine Zahl) , dass erst dann Crash() diese Faxen macht. Das ist doch nich normal -.-'

14

29.12.2006, 15:16

Du solltest mal prüfen welche Werte die Variable 'fSecsPassed' annimmt. Immerhin multiplizierst du deine Werte damit. Da die restlichen Werte fix sind kann es eingentlich nur daran liegen.

Wie ermittelst du den Wert für 'fSecsPassed' ?

Chef-Koch

Treue Seele

  • »Chef-Koch« ist der Autor dieses Themas

Beiträge: 115

Wohnort: Ulm

  • Private Nachricht senden

15

29.12.2006, 15:34

Oh, mein GOtt :shock: :shock: :shock: . Ich hab den Fehler .
Es war einfach, dass ich in der Funktion Crash nur VK_Up usw. und nicht die
W,A,S,D abgefragt habe.

Ich musste einfach nur

aus

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
if(GetAsyncKeyState(VK_UP) )    {                       

                        if((fBetrag((pCrasher->bVertex[1].x + 0.5f) - HMittelpunkt.x) <= 0.5f) && (fBetrag(pCrasher->bVertex[1].y - HMittelpunkt.y) <= 0.5f))
                        {
                        Speed = -0.9f *fSecsPassed; 
                        }

                            else
                            Speed = 0.8f *fSecsPassed;

                        tbWriteToLog("fSecsPassed: %f", fSecsPassed);
                        }


das machn -.-' :

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
if(GetAsyncKeyState(VK_UP) || GetAsyncKeyState(0x57))   {   // hieeeer lag der bloeder Fehler,                  


                        if((fBetrag((pCrasher->bVertex[1].x + 0.5f) - HMittelpunkt.x) <= 0.5f) && (fBetrag(pCrasher->bVertex[1].y - HMittelpunkt.y) <= 0.5f))
                        {
                        Speed = -0.9f *fSecsPassed; 
                        }

                            else
                            Speed = 0.8f *fSecsPassed;

                        tbWriteToLog("fSecsPassed: %f", fSecsPassed);
                        }


Also entschuldigung fuer den Stress den ich euch gemacht hab, es war doch nur en leichtsinnsfehler (was meiner Meinung nach die tödlichsten sind ...)

Vielen dank an alle die mirgeholfen haben ;)

16

29.12.2006, 17:22

C-/C++-Quelltext

1
2
3
if (GetAsyncKeyState('W')<0) {
        //mach irgendwas

}

Wo ist das Problem?
Mein Projekt: Rise of the Sylvan

17

29.12.2006, 17:39

Zitat von »"Chef-Koch"«


...
Also entschuldigung fuer den Stress den ich euch gemacht hab, es war doch nur en leichtsinnsfehler (was meiner Meinung nach die tödlichsten sind ...)

Vielen dank an alle die mirgeholfen haben ;)


@Crash
Es hat sich ja mittlerweile erledigt.

Chef-Koch

Treue Seele

  • »Chef-Koch« ist der Autor dieses Themas

Beiträge: 115

Wohnort: Ulm

  • Private Nachricht senden

18

01.01.2007, 15:51

aber gut zu wissen, dass mans so auch schreiben kann ^^. so kapiert man dann auch eher was fuer ne Taste gedrueckt is.

19

06.01.2007, 23:57

sry, habs übersehen^^
Mein Projekt: Rise of the Sylvan

Werbeanzeige