type problem

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Tarnum

Betreff: type problem

BeitragMi, Mai 26, 2004 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab hier ma was versucht und da kommt immer das problem "variable must be a type"
das sind nur teile daraus, weil der ganze code glaubich nur zeitverschwendung wär

hier der code : Code: [AUSKLAPPEN]

Type boot
 Field x
 Field y
 Field leben
 Field frame
End Type
schiff.boot = New boot

Function tastenabfrage ()
;jetzt kommt der fehler mit variable must be a type
  If KeyDown (205) And schiff\x < 600 Then
     schiff\x = schiff\x + 1
  EndIf
  If KeyDown (205) And schiff\x > 0 Then
     schiff\x = schiff\x - 1     
  EndIf           
  If KeyDown (200) And schiff\y < 300 Then
     schiff\y = schiff\y + 1
  EndIf
  If KeyDown (208) And schiff\y > 50 Then
     schiff\y = schiff\y - 1
  EndIf

  If KeyHit (57) Then
     schuss.schusstype = New schusstype 
     schuss\x = schiff\x
     schuss\y = schiff\y
     schuss.schusstype = New schusstype
     schuss\x = schuss\x
     schuss\y = schiff\y
  EndIf   

End Function

sbrog

BeitragMi, Mai 26, 2004 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

If KeyHit (57) Then
     schuss.schusstype = New schusstype
     schuss\x = schiff\x
     schuss\y = schiff\y
     schuss.schusstype = New schusstype
     schuss\x = schuss\x
     schuss\y = schiff\y
  EndIf   


hier liegt der fehler

für schuss auch ein type erstellen !
Füge mal diesen code am anfang ein,dann sollte es klappen
Code: [AUSKLAPPEN]

Type schusstype
 field x
 fieldy
End type




Soweit man das in diesem code erkennen kann, benutzt du den Type boot nur für den spieler. Da dieser nur einmal vorkommt, solltest du variablen nehmen
 

Tarnum

BeitragMi, Mai 26, 2004 19:55
Antworten mit Zitat
Benutzer-Profile anzeigen
ne das mit schuss is nich das problem, hab ich vorher auch mit type versehen :
Code: [AUSKLAPPEN]

 Type schusstype
 Field x
 Field y
 Field art
End Type




Der fehler kommt schon bei den tastenbewegungen... kanns sein dass das daran liegt, das das ganze in einer funktion ist und ich es global machen soltle oder so? mit global type gehts auf jeden fal nich Smile
 

HOT-BIT

Gast

BeitragMi, Mai 26, 2004 19:56
Antworten mit Zitat
hmmm...

Ich würde mal sagen, für boot gehört auch ein Type erstellt.

Es gibt hier nämlich kein Field wo schiff\x und schiff\y wäre.


Toni

>edit> ahh, jetzt gibt es sowas ...
  • Zuletzt bearbeitet von HOT-BIT am Mi, Mai 26, 2004 20:06, insgesamt 2-mal bearbeitet

sbrog

BeitragMi, Mai 26, 2004 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
also an diesem code kann es nicht liegen, poste mal den ganzen code.
Und überprüfe, ob du schiff iurgendwo falsch geschrieben hast
 

Tarnum

BeitragMi, Mai 26, 2004 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
so is der anfang von meinem zukünftigen megaschooter, aber es geht jetzt nur um die types, also nich bemerken, dass irgendwas ausserhalb dieser fehlt Smile ... aber tipps zur verbesserung nehm ich trotzdem gerne entgegegn :

Code: [AUSKLAPPEN]

AppTitle "megashuuuter"

Graphics 800,600,1,1
SetBuffer BackBuffer ()


selber = LoadAnimImage ("raumschiff.png",35 ,50 ,0,3)
 MaskImage selber , 255,255,255
shoot = LoadImage ("schuss.png")
 MaskImage shoot , 255,255,255
h_ground = LoadImage ("hintergrund.png")
 




Type boot
 Field x
 Field y
 Field leben
 Field frame
End Type
schiff.boot = New boot

Type schusstype
 Field x
 Field y
 Field art
End Type




Repeat

   TASTENABFRAGE


   MALEN


Flip
Cls
Until KeyHit(1)


;_-_________________________________________________________________________________

;-----------------------------------------------------------------------------------

;-----------------------------------------------------------------------------------

;-----------------------------------------------------------------------------------

;-----------------------------------------------------------------------------------

;FUNKTION TASTEN
Function tastenabfrage ()

  If KeyDown (205) And schiff\x < 600 Then
     schiff\x = schiff\x + 1
  EndIf
  If KeyDown (205) And schiff\x > 0 Then
     schiff\x = schiff\x - 1     
  EndIf           
  If KeyDown (200) And schiff\y < 300 Then
     schiff\y = schiff\y + 1
  EndIf
  If KeyDown (208) And schiff\y > 50 Then
     schiff\y = schiff\y - 1
  EndIf

  If KeyHit (57) Then
     schuss.schusstype = New schusstype 
     schuss\x = schiff\x
     schuss\y = schiff\y
     schuss.schusstype = New schusstype
     schuss\x = schuss\x
     schuss\y = schiff\y
  EndIf   

End Function



;FUNKTION MALEN
Function malen ()
 
  TileBlock h_ground


  For schuss.schusstype = Each schusstype
     schuss\x = schuss\x + 4
     If schuss\x < 650 Then
         DrawImage shoot, schuss\x , schuss\y
       Else
         Delete schuss.schusstype
     EndIf
  Next

End Function
 

Tarnum

BeitragMi, Mai 26, 2004 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
ah hab den fehler selber gefunden, war aber eigentlich zufall...

da muss ich so schreiben :


Code: [AUSKLAPPEN]


  If KeyDown (205) And schiff.boot\x < 600 Then





also das .boot noch dahinter packen, dann hat er das problem nich mehr !
Danke dir, aber ich werd bestimmt nochwas posten in nächster zeit
 

HOT-BIT

Gast

BeitragMi, Mai 26, 2004 20:18
Antworten mit Zitat
Hi !

dein Problem war folgendes:

wenn du schiff\x und schiff\y im Hauptprogramm aufgerufen hättest, wäre die Fehlermeldung nicht aufgetreten.

Da dies aber in einer Function geschah, schon.
Habe es probiert.

es ging da nur, wenn:

For schiff.boot=Each boot
....
Next

stand.

Toni
 

zocker2150

BeitragMi, Mai 26, 2004 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Global schiff.boot = New boot

regaa

BeitragDo, Mai 27, 2004 11:23
Antworten mit Zitat
Benutzer-Profile anzeigen
zocker2150 hat Folgendes geschrieben:
Global schiff.boot = New boot

Endlich jemand der das Problem sieht.

Oder du könntest einfach die variable schiff der Funktion weitergeben.
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group