For idx = 0 To 1
TransparentSpriteColor(idx,0,67,171)
Next
Kann mir bitte jemand erklären warum mein Compiler / Debugger daraufhin immer folgende Zeile rausgiebt? Ich kann es mir nicht erklären, weil ich die Variable genau wie in der Hilfe verwende.
TransparentSpriteColor(): Incorrect number of parameters.[/i]
TransparentSpriteColor
Habs grade per PN erfahren...
Ich muss die RGP- Farben in eine Klammer hinter RGB setzen! XD
Vielen Dank @all!
Nochmal eine Frage... dieser Code stammt aus einem Tutorial aber gibt auch eine Fehlermeldung raus... könnte mir da jemand helfen? Hat jmd. aktuelle Guides/Tuts?
Ich muss die RGP- Farben in eine Klammer hinter RGB setzen! XD
Vielen Dank @all!
Nochmal eine Frage... dieser Code stammt aus einem Tutorial aber gibt auch eine Fehlermeldung raus... könnte mir da jemand helfen? Hat jmd. aktuelle Guides/Tuts?
Code: Alles auswählen
Declare KeyboardHandling()
Declare NewEnemyWave()
Declare EnemyDisplay()
Declare EnemyMovement()
InitSprite()
InitKeyboard()
InitMouse()
OpenScreen(1024,768,16,"Shooter")
#ScreenW = 1024
#ScreenH = 768
#HeroH = 98
#HeroW = 98
#EnemyH = 32
#EnemyW = 32
;PNG Lib
UsePNGImageDecoder()
LoadSprite(0, "fx\Background.png")
LoadSprite(1, "fx\Hero.png")
LoadSprite(2, "fx\Enemy.png")
For idx = 0 To 2
TransparentSpriteColor(idx,RGB(0,67,171))
Next
;Heldstruktur
Structure Hero
X.l
Y.l
EndStructure
;gegnerisches Flugzeug Struktur
Structure Enemy
X.l
Y.l
EndStructure
;global verfügbare Variablen
Global Fighter.Hero
Global Gegner.Enemy
;Feindliste
NewList Feinde.Enemy()
;init
Fighter\X=#ScreenW/2 - (#HeroW/2)
Fighter\Y=#ScreenH-#HeroH
NewEnemyWave()
;Hauptprogrammschleife
Repeat
;Mouse und Keyboard init
ExamineKeyboard()
ExamineMouse()
KeyboardHandling()
;Screen löschen
ClearScreen(RGB(0,0,0))
;Hintergrund darstellen
DisplaySprite(0,0,0)
;Held darstellen
DisplayTransparentSprite(1,Fighter\X,Fighter\Y)
;Feinde darstellen
EnemyDisplay()
;Feindbewegung
EnemyMovement()
FlipBuffers()
Until KeyboardPushed(1)
Procedure KeyboardHandling()
If KeyboardPushed(#PB_Key_Right)
If Fighter\X < #ScreenW - #HeroW
Fighter\X+2
EndIf
ElseIf KeyboardPushed(#PB_Key_Left)
If Fighter\X > 0
Fighter\X-2
EndIf
ElseIf KeyboardPushed(#PB_Key_Up)
If Fighter\Y < (#ScreenH + #HeroH)
Fighter\Y-2
EndIf
ElseIf KeyboardPushed(#PB_Key_Down)
If Fighter\Y > (0 + #HeroH)
Fighter\Y+2
EndIf
EndIf
EndProcedure
Procedure NewEnemyWave()
enemycounter.l
enemycounter = Random(8)
If CountList(Feinde()) = 0
;Feinde erstellen
For idx = 1 To enemycounter
AddElement(Feinde())
Next
ForEach Feinde()
Feinde()\X = Random(1024)
Feinde()\Y = Random(200)
Next
EndIf
EndProcedure
Procedure EnemyDisplay()
;Gegner darstellen
ForEach Feinde()
DisplayTransparentSprite(2, Feinde()\X, Feinde()\Y)
Next
EndProcedure
Procedure EnemyMovement()
;Feindbewegung
ForEach Feinde()
Feinde()\Y = Feinde()\Y + 1.1
If Feinde()\Y >= #ScreenH
Feinde()\Y = 0
Feinde()\X = Random(#ScreenW)
EndIf
Next
EndProcedure
Code: Alles auswählen
NewList Feinde.Enemy()
Code: Alles auswählen
Global NewList Feinde.Enemy()
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
wenn man immer die gleiche background-farbe hat, kann man sich die schleife sparen:
aus
macht man
aus
Code: Alles auswählen
LoadSprite(0, "fx\Background.png")
LoadSprite(1, "fx\Hero.png")
LoadSprite(2, "fx\Enemy.png")
For idx = 0 To 2
TransparentSpriteColor(idx,RGB(0,67,171))
Next
Code: Alles auswählen
TransparentSpriteColor(#PB_Default, RGB(0,67,171))
LoadSprite(0, "fx\Background.png")
LoadSprite(1, "fx\Hero.png")
LoadSprite(2, "fx\Enemy.png")
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.