Illegal type conversion

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

omoxen

Betreff: Illegal type conversion

BeitragDi, Feb 09, 2010 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
also, ich habe folgenden Code, und beim ausführen erscheint Illegal type conversion mit der markierung des Funktionsaufrufs von MoveObject.
Hat jemand eine Lösung?


Code: [AUSKLAPPEN]


Function MoveObject(obj.objekt)
   
   
   bewegungX# = 0
   bewegungY# = 0
   schraege# = Cos(45) * obj\tempo#
   
   Select obj\richtung
      Case 1
         bewegungX# = -1 * obj\tempo#
      Case 3
         bewegungY# = -1 * obj\tempo#
      Case 5
         bewegungX# = obj\tempo#
      Case 7
         bewegungY# = obj\tempo#
      Case 2
         bewegungX# = -1 * schraege#
         bewegungY# = -1 * schraege#
      Case 4
         bewegungX# = 1 * schraege#
         bewegungY# = -1 * schraege#
      Case 6
         bewegungX# = 1 * schraege#
         bewegungY# = 1 * schraege#
      Case 8
         bewegungX# = -1 * schraege#
         bewegungY# = 1 * schraege#
   End Select
   
   
   obj\x# = obj\x# + bewegungX#
   obj\y# = obj\y# + bewegungY#
   
   
   Return obj.objekt
End Function
      
      
Function GetDrawKoordinates(mann.objekt)
   
   mann\drawX = mann\x# * 10
   mann\drawY = mann\y# * 10
   
   
End Function




Graphics 640, 480



box = LoadImage("box.bmp")
MaskImage box, 255, 255, 255

mannW = LoadImage("mannW.bmp")
MaskImage mannW, 255, 255, 255

mannN = LoadImage("mannN.bmp")
MaskImage mannN, 255, 255, 255

mannO = LoadImage("mannO.bmp")
MaskImage mannO, 255, 255, 255

mannS = LoadImage("mannS.bmp")
MaskImage mannS, 255, 255, 255

mannNW = LoadImage("mannNW.bmp")
MaskImage mannNW, 255, 255, 255

mannNO = LoadImage("mannNO.bmp")
MaskImage mannNO, 255, 255, 255

mannSW = LoadImage("mannSW.bmp")
MaskImage mannSW, 255, 255, 255

mannSO = LoadImage("mannSO.bmp")
MaskImage mannSO, 255, 255, 255



Type objekt
   Field x#,y#,richtung,tempo#,ausdehnungX#,ausdehnungY#, bewegtSich, drawX, drawY
End Type


mann.objekt = New objekt
mann\x = 10
mann\y = 10
mann\richtung = 1
mann\tempo = 0.2
mann\ausdehnungX = 5
mann\ausdehnungY = 5

Dim bottom(100,100)
bottom(15,15) = 1




ClsColor 255, 255, 255
Cls
SetBuffer BackBuffer()



Repeat
   
   Cls
   
   
   
   mann\bewegtSich = 0
   
   If KeyDown(30) Then
      mann\richtung = 1
      mann\bewegtSich = 1
   EndIf
   
   If KeyDown(17) Then
      mann\richtung = 3
      mann\bewegtSich = 1
      If KeyDown(30) Then mann\richtung = 2
   EndIf
   
   If KeyDown(32) Then
      mann\richtung = 5
      mann\bewegtSich = 1
      If KeyDown(17) Then mann\richtung = 4
   EndIf
   
   If KeyDown(31) Then
      mann\richtung = 7
      mann\bewegtSich = 1
      If KeyDown(30) Then mann\richtung = 8
      If KeyDown(32) Then mann\richtung = 6
   EndIf
   
   
   If mann\bewegtSich = 1 Then
      mann.objekt = MoveObject(mann.objekt)
   EndIf
   
   
   GetDrawKoordinates(mann)
   
   Select mann\richtung
      Case 1
         DrawImage mannW, mann\drawX, mann\drawY
      Case 3
         DrawImage mannN, mann\drawX, mann\drawY
      Case 5
         DrawImage mannO, mann\drawX, mann\drawY
      Case 7
         DrawImage mannS, mann\drawX, mann\drawY
      Case 2
         DrawImage mannNW, mann\drawX, mann\drawY
      Case 4
         DrawImage mannNO, mann\drawX, mann\drawY
      Case 6
         DrawImage mannSO, mann\drawX, mann\drawY
      Case 8
         DrawImage mannSW, mann\drawX, mann\drawY
   End Select
   
   
   For t = 1 To 10 Step 2
Print t
Next

   
   For i=1 To 100
      For j=1 To 100
         If bottom(i,j) <> 0 Then
            
            links = i * 10
            rechts = j * 10
            DrawImage box, links, rechts
         EndIf
      Next
   Next
   
   
   Flip
   
Forever

Function MoveObject(obj.objekt)
   
   
   bewegungX# = 0
   bewegungY# = 0
   schraege# = Cos(45) * obj\tempo#
   
   Select obj\richtung
      Case 1
         bewegungX# = -1 * obj\tempo#
      Case 3
         bewegungY# = -1 * obj\tempo#
      Case 5
         bewegungX# = obj\tempo#
      Case 7
         bewegungY# = obj\tempo#
      Case 2
         bewegungX# = -1 * schraege#
         bewegungY# = -1 * schraege#
      Case 4
         bewegungX# = 1 * schraege#
         bewegungY# = -1 * schraege#
      Case 6
         bewegungX# = 1 * schraege#
         bewegungY# = 1 * schraege#
      Case 8
         bewegungX# = -1 * schraege#
         bewegungY# = 1 * schraege#
   End Select
   
   
   obj\x# = obj\x# + bewegungX#
   obj\y# = obj\y# + bewegungY#
   
   
   Return obj.objekt
End Function
      
      
Function GetDrawKoordinates(mann.objekt)
   
   mann\drawX = mann\x# * 10
   mann\drawY = mann\y# * 10
   
   
End Function




Graphics 640, 480



box = LoadImage("box.bmp")
MaskImage box, 255, 255, 255

mannW = LoadImage("mannW.bmp")
MaskImage mannW, 255, 255, 255

mannN = LoadImage("mannN.bmp")
MaskImage mannN, 255, 255, 255

mannO = LoadImage("mannO.bmp")
MaskImage mannO, 255, 255, 255

mannS = LoadImage("mannS.bmp")
MaskImage mannS, 255, 255, 255

mannNW = LoadImage("mannNW.bmp")
MaskImage mannNW, 255, 255, 255

mannNO = LoadImage("mannNO.bmp")
MaskImage mannNO, 255, 255, 255

mannSW = LoadImage("mannSW.bmp")
MaskImage mannSW, 255, 255, 255

mannSO = LoadImage("mannSO.bmp")
MaskImage mannSO, 255, 255, 255



Type objekt
   Field x#,y#,richtung,tempo#,ausdehnungX#,ausdehnungY#, bewegtSich, drawX, drawY
End Type


mann.objekt = New objekt
mann\x = 10
mann\y = 10
mann\richtung = 1
mann\tempo = 0.2
mann\ausdehnungX = 5
mann\ausdehnungY = 5

Dim bottom(100,100)
bottom(15,15) = 1




ClsColor 255, 255, 255
Cls
SetBuffer BackBuffer()



Repeat
   
   Cls
   
   
   
   mann\bewegtSich = 0
   
   If KeyDown(30) Then
      mann\richtung = 1
      mann\bewegtSich = 1
   EndIf
   
   If KeyDown(17) Then
      mann\richtung = 3
      mann\bewegtSich = 1
      If KeyDown(30) Then mann\richtung = 2
   EndIf
   
   If KeyDown(32) Then
      mann\richtung = 5
      mann\bewegtSich = 1
      If KeyDown(17) Then mann\richtung = 4
   EndIf
   
   If KeyDown(31) Then
      mann\richtung = 7
      mann\bewegtSich = 1
      If KeyDown(30) Then mann\richtung = 8
      If KeyDown(32) Then mann\richtung = 6
   EndIf
   
   
   If mann\bewegtSich = 1 Then
      mann.objekt = MoveObject(mann.objekt)
   EndIf
   
   
   GetDrawKoordinates(mann)
   
   Select mann\richtung
      Case 1
         DrawImage mannW, mann\drawX, mann\drawY
      Case 3
         DrawImage mannN, mann\drawX, mann\drawY
      Case 5
         DrawImage mannO, mann\drawX, mann\drawY
      Case 7
         DrawImage mannS, mann\drawX, mann\drawY
      Case 2
         DrawImage mannNW, mann\drawX, mann\drawY
      Case 4
         DrawImage mannNO, mann\drawX, mann\drawY
      Case 6
         DrawImage mannSO, mann\drawX, mann\drawY
      Case 8
         DrawImage mannSW, mann\drawX, mann\drawY
   End Select
   
   
   For t = 1 To 10 Step 2
Print t
Next

   
   For i=1 To 100
      For j=1 To 100
         If bottom(i,j) <> 0 Then
            
            links = i * 10
            rechts = j * 10
            DrawImage box, links, rechts
         EndIf
      Next
   Next
   
   
   Flip
   
ForeverFunction MoveObject(obj.objekt)
   
   
   bewegungX# = 0
   bewegungY# = 0
   schraege# = Cos(45) * obj\tempo#
   
   Select obj\richtung
      Case 1
         bewegungX# = -1 * obj\tempo#
      Case 3
         bewegungY# = -1 * obj\tempo#
      Case 5
         bewegungX# = obj\tempo#
      Case 7
         bewegungY# = obj\tempo#
      Case 2
         bewegungX# = -1 * schraege#
         bewegungY# = -1 * schraege#
      Case 4
         bewegungX# = 1 * schraege#
         bewegungY# = -1 * schraege#
      Case 6
         bewegungX# = 1 * schraege#
         bewegungY# = 1 * schraege#
      Case 8
         bewegungX# = -1 * schraege#
         bewegungY# = 1 * schraege#
   End Select
   
   
   obj\x# = obj\x# + bewegungX#
   obj\y# = obj\y# + bewegungY#
   
   
   Return obj.objekt
End Function
      
      
Function GetDrawKoordinates(mann.objekt)
   
   mann\drawX = mann\x# * 10
   mann\drawY = mann\y# * 10
   
   
End Function




Graphics 640, 480



box = LoadImage("box.bmp")
MaskImage box, 255, 255, 255

mannW = LoadImage("mannW.bmp")
MaskImage mannW, 255, 255, 255

mannN = LoadImage("mannN.bmp")
MaskImage mannN, 255, 255, 255

mannO = LoadImage("mannO.bmp")
MaskImage mannO, 255, 255, 255

mannS = LoadImage("mannS.bmp")
MaskImage mannS, 255, 255, 255

mannNW = LoadImage("mannNW.bmp")
MaskImage mannNW, 255, 255, 255

mannNO = LoadImage("mannNO.bmp")
MaskImage mannNO, 255, 255, 255

mannSW = LoadImage("mannSW.bmp")
MaskImage mannSW, 255, 255, 255

mannSO = LoadImage("mannSO.bmp")
MaskImage mannSO, 255, 255, 255



Type objekt
   Field x#,y#,richtung,tempo#,ausdehnungX#,ausdehnungY#, bewegtSich, drawX, drawY
End Type


mann.objekt = New objekt
mann\x = 10
mann\y = 10
mann\richtung = 1
mann\tempo = 0.2
mann\ausdehnungX = 5
mann\ausdehnungY = 5

Dim bottom(100,100)
bottom(15,15) = 1




ClsColor 255, 255, 255
Cls
SetBuffer BackBuffer()



Repeat
   
   Cls
   
   
   
   mann\bewegtSich = 0
   
   If KeyDown(30) Then
      mann\richtung = 1
      mann\bewegtSich = 1
   EndIf
   
   If KeyDown(17) Then
      mann\richtung = 3
      mann\bewegtSich = 1
      If KeyDown(30) Then mann\richtung = 2
   EndIf
   
   If KeyDown(32) Then
      mann\richtung = 5
      mann\bewegtSich = 1
      If KeyDown(17) Then mann\richtung = 4
   EndIf
   
   If KeyDown(31) Then
      mann\richtung = 7
      mann\bewegtSich = 1
      If KeyDown(30) Then mann\richtung = 8
      If KeyDown(32) Then mann\richtung = 6
   EndIf
   
   
   If mann\bewegtSich = 1 Then
      mann.objekt = MoveObject(mann.objekt)
   EndIf
   
   
   GetDrawKoordinates(mann)
   
   Select mann\richtung
      Case 1
         DrawImage mannW, mann\drawX, mann\drawY
      Case 3
         DrawImage mannN, mann\drawX, mann\drawY
      Case 5
         DrawImage mannO, mann\drawX, mann\drawY
      Case 7
         DrawImage mannS, mann\drawX, mann\drawY
      Case 2
         DrawImage mannNW, mann\drawX, mann\drawY
      Case 4
         DrawImage mannNO, mann\drawX, mann\drawY
      Case 6
         DrawImage mannSO, mann\drawX, mann\drawY
      Case 8
         DrawImage mannSW, mann\drawX, mann\drawY
   End Select
   
   
   For t = 1 To 10 Step 2
Print t
Next

   
   For i=1 To 100
      For j=1 To 100
         If bottom(i,j) <> 0 Then
            
            links = i * 10
            rechts = j * 10
            DrawImage box, links, rechts
         EndIf
      Next
   Next
   
   
   Flip
   
Forever

Silver_Knee

BeitragDi, Feb 09, 2010 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
du fragst einen .objekt als rückgabe wert ab
dein moveobjekt ist allerdings vom typ integer, weil du nichts anderes angegeben hast:

Function MoveObject(obj.objekt)
->>
Function MoveObject.objekt(obj.objekt)

damit kann deine Funktion ein "objekt" zurückgeben

Midimaster

BeitragDi, Feb 09, 2010 18:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Da schlag ich doch gleich mal Kapitel V aus meinen Typ-Tutorial vor:

https://www.blitzforum.de/foru...171#355171

"Types und Functions"
 

omoxen

BeitragDi, Feb 09, 2010 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
gut, danke
Abstimmen auf: http://www.solaruhr.bplaced.com/ !!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group