Objekte gleichzeitig bewegen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Trunxx

Betreff: Objekte gleichzeitig bewegen

BeitragSa, Mai 01, 2004 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

Ich habe ein Rect das von links nach rechts wandert (sozusagen als Hindernis) und ein Bild welches ich Steuere.
Nur habe ich jetzt das Problem dass etweder zuerst das Rect bis ich Esc drücke wandert (ohne meinem "Steuerbild") oder ich steuere zuerst mein Bild und wenn ich dann ferig bin -> Esc gedrückt habe kommt das Rect zum Zug.

Wie wird das in Spielen gelöst?

Code des Rect: [aus der onlinehilfe]
Code: [AUSKLAPPEN]
box_x=-20
box_y=100
WHILE NOT KEYHIT(1)
CLS
RECT box_x,box_y,20,20,1
FLIP
box_x=box_x+1
IF box_x=640 THEN box_x=-20
WEND



Code des Programms: [gekürzt]
Code: [AUSKLAPPEN]

Graphics 640, 480, 16,2
SetBuffer BackBuffer()
AppTitle "Kollision Test"

; Hauptschleife
Repeat
Cls

bilderzeichnen
bewegen
kollision

Flip
Until KeyHit(1)
End
;##############################################


;-------------Bilder ausgeben-----------------
Function bilderzeichnen()
;Bilder Ausgeben
DrawImage bild2, 400, 400 ; hier braucht man kein Frame angeben!
DrawImage bild1,x-2,y-2 ; Im Sinne der Codeoptimierung habe ich das mal nach Bilderzeichnen verschoben
End Function
;------------------------------------------------------------


;---------------------bewegen------------------------------
Function bewegen()

If KeyDown(200) Then y = y - speed ; hoch
If KeyDown(208) Then y = y + speed ; runter
If KeyDown(203) Then x = x - speed ; links
If KeyDown(205) Then x = x + speed ; rechts



End Function
;--------------------------------------------


Gibt es irgendwelche Tutorials dazu?

Grüsse Very Happy

Flori-D

BeitragSa, Mai 01, 2004 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich dich richtig verstanden hab willst du das wenn du deinen Spieler bewegst auch die Kiste sich bewegt.Das würde ich ungefähr so machen:

Code: [AUSKLAPPEN]


If x = x+1 Then
 box_x = box_x +1
Endif
If y = y +1 Then
 box_y = box_y +1
Endif


Dass is nur Pseudocode, und es passiert auch nichts wenn X oder Y -1 ist.
Aber das müsstest du dann alleine gebacken kriegen.D kannst damit bisschen KI rein kommt auch Zufallsbestimmung machen wo sich die Box hinbewegt(o_oich hole schon wieder zu weit aus).

Mfg Flori-D

P.S: Ich hab den Code nicht getestet.
BB is Macht!

Homepage: www.flori-d.de

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Mai 01, 2004 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
hi
dein Problem liegt darin das du beides in jeweils einer Schleife bewegst,
also erst das rect und wenn das fertig ist kannst du dein Objekt steuern
pack das mal alles in die hauptschleife also nur eine dann kannste das auch gleichzeitig machen

Beispiel:
Code: [AUSKLAPPEN]
global box_x=-20
global box_y=100
 ; Hauptschleife
Repeat
Cls

bilderzeichnen
rechteck_zeichnen()
bewegen
kollision

Flip
Until KeyHit(1)
End

Function Rechteck_zeichnen()
Rect box_x,box_y,20,20,1
box_x=box_x+1
If box_x=640 Then box_x=-20

End Function
[BB2D | BB3D | BB+]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group