Frage zum schießen mit Type!

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

sven123

Betreff: Frage zum schießen mit Type!

BeitragDi, Apr 20, 2004 19:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich habe sons immer nur mit dim Felder gerabeitet!Ich habe jetzt aber ein Problem ich möcht wenn man die Taste (W) drückt immer ein Schuss erzeugt wird allerdings sollen dann ähnlich wie in einem Space Impact aber trotzdem mehrere schüsse auf dem Bildschirm gleichzeitig möglich sein.Mit dim Feldern werden alt immer gleich z.b 5 schüsse oder so mit gleichen variabelen erstellt!Naja deswegen will ich Typs verwenden doch dies funtzt net warum?
Code: [AUSKLAPPEN]

Type shot
Field x
Field y
Field aktiv
End Type
;
If KeyDown(17) Then
shot.shot=New shot
shot\x=ax2
shot\y=ay2
shot\aktiv=1
EndIf



If shot\aktiv=1 Then
shot\x=shot\x-2


DrawImage Schuss,shot\x,shot\y
EndIf
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, Apr 20, 2004 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
du mußt alle zeichnen
und nicht nur den gerade erstellten

Code: [AUSKLAPPEN]
for shot.shot = each shot
 DrawImage Schuss,shot\x,shot\y
next


Aktiv ist dieser doch wenn du ihn erstellst
und bei der Bereichsabfrage bzw Kollision deaktivierst du ihn mit delete shot.shot
nicht mit Shot\aktiv = 0, da es so ja nicht gelöscht wird und deine schleife immer größer wird!
[BB2D | BB3D | BB+]
 

sven123

BeitragDi, Apr 20, 2004 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmmm!Bei mir kommt immer ilegal memory adresse!
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

Hubsi

BeitragDi, Apr 20, 2004 19:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann konnte eine Grafik nicht geladen werden oder sowas. Schalt den Debugger an, dann kriegst Du eine vernünftige Fehlermeldung Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Michi1988

BeitragDi, Apr 20, 2004 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich verweise auf meine HP und von da aus dann das TUT zu Types loaden.
 

sven123

BeitragDi, Apr 20, 2004 21:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich habe mich noch mal versichert aber die Grafiken werden korekt geladen.An dehnen hat sich ja auch nichts geändert mus was anderes sein!
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, Apr 20, 2004 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
das kann so viel sein,

schuss nicht global
Schuss falsch geschrieben
nicht geladen
oder
wenn man oft mit Text arbeitet das man es dann so schreibt...
Drawimage 100,100,bild

aber
am besten mit Debugger überprüfen!

Das laden zb.überprüfe ich grundsätzlich
loadimage schuss.......
If Schuss = 0 then runtimeerror "Bild -Schuss- konnte nicht geladen werden...."
[BB2D | BB3D | BB+]

regaa

BeitragMi, Apr 21, 2004 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder ohne das globalisierungszeugs, einfach in Funktionen reinpacken. Das ist mein Favorit:

Type shot
Field x
Field y
Field aktiv
End Type
;
If KeyDown(17) Then
schuss=New_Shot(ax2,ay2)
EndIf


Repeat
draw_shot()
Forever


Function New_shot(x,y)
shot.shot=New shot
shot\x=ax2
shot\y=ay2
shot\aktiv=1
End Function

Function draw_shot()
For shot.shot=Each shot
If shot\aktiv=1 Then
shot\x=shot\x-2

DrawImage Schuss,shot\x,shot\y
Next
End Function
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net
 

sven123

BeitragMi, Apr 21, 2004 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Fehler kommt wegen diesem ausdruck:
Code: [AUSKLAPPEN]

DrawImage Schuss,shot\x,shot\y
;wenn ich das so schreibe dann gehts
DrawImage Schuss,40,30
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

regaa

BeitragMi, Apr 21, 2004 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann ist wahrscheinlich kein wert in shot\x und/oder das Objekt exestiert nicht.
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net

Michi1988

BeitragMi, Apr 21, 2004 16:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wette er sagt :Objekt does not exist
 

sven123

BeitragMi, Apr 21, 2004 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier nochmal!Also er sagt iligal memory adress!
Vileicht könnt ihr jetzt ja den Fehler endecken ich sehe keinen!!
Code: [AUSKLAPPEN]

Type shot
Field x
Field y
Field aktiv
End Type
;
If spieler1kapsel=1 Then
If KeyDown(31)=0 Then
aliengroundspeed=1
EndIf
DrawImage Alienschiff,ax2,ay2
If aliengroundspeed=1 Then ay2=ay2+2

If KeyDown(17) Then
shot.shot=New shot
shot\x=ax2
shot\y=ay2
shot\aktiv=1
EndIf


If shot\aktiv=1 Then


For shot.shot = Each shot
DrawImage Schusse,shot\x,shot\y
Next
shot\x=shot\x-2
EndIf

 
If KeyDown(30) Then ax2=ax2-2
If KeyDown(32) Then ax2=ax2+2
If KeyDown(31) Then ay2=ay2-1.5 aliengroundspeed=0
EndIf
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will
Fertiges Projekt:Invasion der Heuschrecken

Gossi

BeitragMi, Apr 21, 2004 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Du schreibst for shot.shot, ich bin mir einigermaßen sicher, dass das nicht erlaubt ist. schreib lieber for schuss.shot oder ähnlich.
Alle Wasser laufen ins Meer, doch wird das Meer nicht voller; an den Ort, dahin sie fließen, fließen sie immer wieder. (...) Was geschehen ist, eben das wird hernach sein. Was man getan hat, eben das tut man hernach wieder, und es geschieht nichts neues unter der Sonne. Geschieht etwas, von dem man sagen könnte: "Sieh, das ist neu"? Es ist längst vorher auch geschehen in den Zeiten, die vor uns gewesen sind.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMi, Apr 21, 2004 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
der Fehler liegt an diesem Aktiv

If shot\aktiv=1 Then ; hier wird ein Shot abgefragt der noch nicht da ist
Das Aktiv brauchst du gar nicht, denn wenn du einen Shot erstellst dann ist dieser automatisch aktiv

Code: [AUSKLAPPEN]
Type shot
Field x
Field y
Field aktiv
End Type
;
If spieler1kapsel=1 Then
If KeyDown(31)=0 Then
aliengroundspeed=1
EndIf
DrawImage Alienschiff,ax2,ay2
If aliengroundspeed=1 Then ay2=ay2+2

If KeyDown(17) Then
shot.shot=New shot
shot\x=ax2
shot\y=ay2
;shot\aktiv=1 ; das brauchste doch nicht mehr
EndIf

; dies hier gibt prob beim Start da es noch keins gibt
;If shot\aktiv=1 Then

; diese schleife immer laufen lassen ,
; wenn kein shot da ist wird auch keiner gemalt
For shot.shot = Each shot
DrawImage Schusse,shot\x,shot\y
shot\x=shot\x-2 ; das muss in die Schleife, sonst haste dasgleich Prob wie mit der if shot\aktiv
Next

;EndIf

 
If KeyDown(30) Then ax2=ax2-2
If KeyDown(32) Then ax2=ax2+2
If KeyDown(31) Then ay2=ay2-1.5 aliengroundspeed=0
EndIf

nochwas, irgendwo ist ja noch der code wo du jetzt den schuss abschaltest, etwa so
shot\aktiv = 0
das ersetz du mit delete shot , dann ist der komplett gelöscht
[BB2D | BB3D | BB+]

regaa

BeitragDo, Apr 22, 2004 21:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Gossi hat Folgendes geschrieben:
Du schreibst for shot.shot, ich bin mir einigermaßen sicher, dass das nicht erlaubt ist. schreib lieber for schuss.shot oder ähnlich.


Wo hast du denn diesen Salat her? Also ich bin mir sicher , das es zu 1000% geht, das mach ich ziemlich oft, z.B. window.window oder soclhe Sachen. Wink
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net

Gossi

BeitragFr, Apr 23, 2004 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
@regaa

Ich hab für meine Variablen bisher immer andere Bezeichnungen genommen als der Typ-Bezeichnung. Ich hatte vermutet es würde zu
Verwechslungen kommen, nach dem Motto "Variable is not a Type" oder sowas. Confused Wieder was dazu gelernt.
Alle Wasser laufen ins Meer, doch wird das Meer nicht voller; an den Ort, dahin sie fließen, fließen sie immer wieder. (...) Was geschehen ist, eben das wird hernach sein. Was man getan hat, eben das tut man hernach wieder, und es geschieht nichts neues unter der Sonne. Geschieht etwas, von dem man sagen könnte: "Sieh, das ist neu"? Es ist längst vorher auch geschehen in den Zeiten, die vor uns gewesen sind.

regaa

BeitragFr, Apr 23, 2004 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, hab ich früher auch gedacht, aber dem ist nicht so, und da ich meistens eh eine variable für ein typ benuzte find ich auch ganz praktisch das es so geht.
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net
 

Gast

Betreff: Also bei mir funzzt des irgendwie nich

BeitragSo, Mai 09, 2004 20:10
Antworten mit Zitat
der zeigt überhaupt kein schuss an ... startet zwar aber er zeigt kein schuss an .... *kratz* oder hab ich irgendwas vergessen ?! mhmm
Question

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group