problem mit types... [gelöst]

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Chrissa

Betreff: problem mit types... [gelöst]

BeitragFr, Dez 18, 2009 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute!

Ich hab n kleines Problem bei meinem Space shooter. Und zwar wird nach jedem neuen schuss der alte schuss gelöscht und die Geschwindigkeit des neuen verdoppelt...
Ich hab schon im Forum nach Hilfe gesucht aber nichts hilfreiches gefunden...

Hier der Quelltext, wenn ihr ihn brauchen könnt(is noch übersichtlich Smile ):

Code: [AUSKLAPPEN]
AppTitle "Space Shooter"



Graphics 1280,1024,32,1
SetBuffer BackBuffer()
AutoMidHandle(True)


;Globals

Global alien_x = Rnd(0,1280)
Global alien_y = Rnd(0,0)

Global player_x = 1280/2
Global player_y = 900

Global ufo_x = 1280/2
Global ufo_y = 0

Type schuss
Field x
Field y
End Type




;Images

space=LoadImage("space.png")
alien=LoadImage("alien.png")
shuttle=LoadImage("shuttle.png")
ufo=LoadImage("ufo.png")
kugel=LoadImage("schuss_2.png")
schuss=LoadImage("schuss_1.png")
rocket=LoadImage("schuss_3.png")







;Game



While 1

Cls

DrawImage space,1280/2,1024/2
DrawImage shuttle,player_x,player_y

If KeyDown(203)
player_x=player_x-8
EndIf

If KeyDown(205)
player_x=player_x+8
EndIf

If KeyDown(208)
player_y=player_y+8
EndIf

If KeyDown(200)
player_y=player_y-8
EndIf


If KeyHit(57) Then
noob.schuss=New schuss
boom_x=player_x-10
boom_y=player_y+20
EndIf

For noob.schuss= Each schuss
boom_y=boom_y-12
DrawImage kugel,boom_x,boom_y
Next




If KeyDown(1)
End
EndIf

Flip
Wend
End
  • Zuletzt bearbeitet von Chrissa am Fr, Dez 18, 2009 22:38, insgesamt 2-mal bearbeitet

Megamag

BeitragFr, Dez 18, 2009 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst "boom_x" bzw. "boom_y" auch als Type-Field benutzen. Denn so benutz jeder Schuss dieselbe Variable. Das resultiert darin, dass bei neuem erstellen der Speed verdoppelt wird (denn die Variable ist die selbe und wird trotzdem addiert) und der alte Schuss wird auf dem neuen platziert, sieht also so aus, als wäre er gelöscht worden.

Chrissa

BeitragFr, Dez 18, 2009 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm wie meinst du? dass dann "boom_x" und "boom_y" in dem einen Type den ich habe ein field sind oder dass ich für die beiden jeweils einen eigenen Type erstellen muss?

mpmxyz

BeitragFr, Dez 18, 2009 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast zwar schon einen Schuss-Type und erstellst Schüsse, aber du nutzt in der Schleife, die alle Type-Einträge durchgeht und wahrscheinlich alle Schüsse bewegen und zeichnen soll, nur lokale Variablen und keine Type-Einträge und deren "Fields".
Du solltest es so machen:
Code: [AUSKLAPPEN]
For noob.schuss= Each schuss
   noob\y=noob\y-12
   DrawImage kugel,noob\x,noob\y
Next

"boom" war wohl dein Schuss-"Objekt", bevor du du Types benutzt hast.
Du musst aber alles, was zu den Schüssen gehört, für die Type-Nutzung umwandeln.
(Bei deinem Code sind alle Variablen, die mit "boom_" beginnen nicht richtig genutzt.)

mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Chrissa

BeitragFr, Dez 18, 2009 21:00
Antworten mit Zitat
Benutzer-Profile anzeigen
ah k danke jetzt funktioniert es Smile

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group