Prob mit Variablen und If-Bedingungen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

The_Nici

Betreff: Prob mit Variablen und If-Bedingungen

BeitragMi, Okt 10, 2007 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Moinsen, auf Wunsch von d-Bug hier den Code, zu dem ich ein Problem hab.
Wie ihr seht, ist C immer 0, und auch wenn c 1 sein muss, führt er diese Bedingung durch. Es ist zum kotzen.

Code: [AUSKLAPPEN]

frametimer=CreateTimer(40)
Type cap
   Field mesh
   Field cx#
   Field cy#
   Field cz#
End Type

Dim capdim.cap(29)

Graphics3D 1600,1200,32,1
SETBUFFER BACKBUFFER()
camera=CREATECAMERA()
ROTATEENTITY camera,45,0,0
PositionEntity camera,0,15,-10
light=CREATELIGHT()
ROTATEENTITY light,45,0,0

sphere=CreateSphere(32)
ENTITYTYPE sphere,1
EntityRadius sphere,2
PositionEntity sphere,0,11,0
RotateEntity sphere, 0,180,0
ScaleEntity sphere, 2,2,2

pp=CreatePivot(sphere)

cube=CREATECUBE()
ENTITYTYPE cube,2
ENTITYCOLOR cube,0,100,0
POSITIONENTITY cube,0,-5,0
ScaleEntity cube,100,2,100
EntityParent camera, pp
face=LoadTexture("thomiface.png")
EntityTexture sphere, face

capmesh=LoadMesh("cap.3ds")
HideEntity capmesh
For i=0 To 29
   a.cap=New cap
   a\mesh=CopyEntity(capmesh)
   a\cx=Rand(-50, 50)
   a\cy=-1
   a\cz=Rand(-50, 50)
   EntityType a\mesh, 2
   PositionEntity a\mesh, a\cx, a\cy, a\cz
   capdim(i)=a
Next

Global capnumber%=0
Global c%=0



While Not KeyDown(1)
   x#=0
   y#=0
   z#=0
   If KeyDown(203)=1 Then TurnEntity sphere, 0,3,0
   If KeyDown(205)=1 Then TurnEntity sphere, 0,-3,0
   If KeyDown(208)=1 Then z#=0.2
   If KeyDown(200)=1 Then z#=-0.2
   MoveEntity sphere,x#,-0.3,z#
   RotateEntity pp,EntityPitch(pp)+MouseYSpeed(),EntityYaw(pp)-MouseXSpeed(),0
     Collisions 1,2,2,2
   PointEntity camera, sphere
   ;Kollision thomy <-> cap
   EntityType cube, 0
   For i = 0 To 29
      If EntityCollided(sphere, 2) Then
         c% = 1 - c%
         If c%=1
            EntityType capdim(n)\mesh, 0
            HideEntity capdim(n)\mesh
            capnumber=capnumber+1
         ElseIf c%=0
         EndIf      
      EndIf
   Next
   EntityType cube, 2
   UpdateWorld
   RenderWorld
   Text 0,0,"Caps: "+capnumber
   Text 0,12,"c-Trigger: "+c
   Text 0,24,"Collschleife: "+i
   Flip
   WaitTimer frametimer
Wend
End


Steuerung: Maus = Kamera drehen, Pfeiltasten = gehen.
 

AMD

BeitragMi, Okt 10, 2007 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi
also wenn ichd es jetzt richtig verstanden hab und mich auch "richtig mit deinem problem beschäftigt hab" willst du das wenn du mit den objekten kollidierst dasses 1 anzeigt odeR?

ok wenns falsch is sry!

warum machst du:

Code: [AUSKLAPPEN]
         c% = 1 - c%

?

wenn du nur c% = 1 machst dann isses doch 1

MfG
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC:
AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB.....
Bildschrim mit 22 Zoll und 5msk Übertragungszeit......
Mein BaumMap Tutorial:
http://www.blitzforum.de/forum...hp?t=26341

The_Nici

BeitragMi, Okt 10, 2007 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
AMD, du hast es nicht verstanden.

Diese BEdingung sollte nur einmal bei einer Kollision ausgeführt werden, und wenn c 0 ist, und ich 1-0 mache, gibt das logischerweise eins. Dann ist c eins, bedingung wird ausgeführt, aber nicht richtig, un vorallem sollte nachher c 1 sein, und wenn man erneut 1-c (also 1) macht, sollte das 0 geben, also wird das if nicht ausgeführt, er machts aber trotzdem.

Willi die Rübe

Betreff: Re: Prob mit Variablen und If-Bedingungen

BeitragMi, Okt 10, 2007 22:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja aber so ist ja dann jeden 2. Schleifendurchgang c=1, also die Bedingung wird jeden zweiten Schleifendurchgang ausgeführt. Und bei den 40 Fps kommt es dir dann eben so vor, als ob es durchgehend 1 wäre.
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon
Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX

At the Farewell Party visit: MySpace | Homepage

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group