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 -.-'