Hi, *hust* ich hab den Fehler gefunden... Hab einfach ein Sprite vor das andere gesetzt und nicht gsehen, dass es doch funktioniert
naja, ich hab aber noch ein anderes problem mit einem code:
Code: Alles auswählen
If InitSprite() = 0
MessageRequester("Fehler", "Kann Grafik nicht Initialisieren..(DirectX7 oder höher notwendig!)", 0)
End
EndIf
If InitKeyboard() = 0
MessageRequester("Fehler", "Kann Keyboard nicht Initialisieren..(DirectX7 oder höher notwendig!)", 0)
End
EndIf
If InitSound() = 0
MessageRequester("Fehler", "Kann Sound nicht Initialisieren..(DirectX7 oder höher notwendig, Soundkarte notwendig!)", 0)
End
EndIf
If InitMouse() = 0
MessageRequester("Fehler", "Kann Maus nicht Initialisieren..", 0)
End
EndIf
OpenScreen(1024,768,32,"Game")
IncludeFile "InitSystem.pb"
LoadSprite(0,"Gfx\Hintergrund\1.bmp")
LoadSprite(10,"Gfx\Sprites\Spieler_Comic.bmp"):TransparentSpriteColor(10,128,0,255)
LoadSprite(20,"Gfx\Sprites\Gegner_256_1.bmp"):TransparentSpriteColor(20,128,0,255)
LoadSprite(100,"Gfx\Waffen\Waffe_1.bmp"):TransparentSpriteColor(100,128,0,255)
yPlayer=350:xPlayer=50
SpeedPlayer=3
Gegnerspeed=2
Schussspeed=4
Damage=1
Schiff=1
GegnerArmor=1
enemysetdelay=100
Reloadspeed=30
Structure Schuss
x.l
y.l
speedX.l
speedY.l
Damage.l
EndStructure
NewList Schuss.Schuss()
Procedure PlayerSchuss(x,y,speedX,speedY,Damage)
AddElement(Schuss())
Schuss()\x = x
Schuss()\y = y
Schuss()\speedX = speedX
Schuss()\speedY = speedY
Schuss()\Damage = Damage
EndProcedure
Structure enemy
x.l
y.l
speedX.l
speedY.l
armor.l
EndStructure
NewList enemy.enemy()
Procedure AddEnemy(x,y,speedX,speedY,armor)
AddElement(enemy())
enemy()\x = x
enemy()\y = y
enemy()\speedX = speedX
enemy()\speedY = speedY
enemy()\armor = armor
EndProcedure
Repeat:ClearScreen(0,0,0);************************************************************************
StartDrawing(ScreenOutput()):DrawingMode(4)
For k=0 To 20:Box(0+k,708+k,1024-k*2,60-k*2,RGB(100-k*5,100-k*5,100-k*5)):Next
StopDrawing()
DisplaySprite(0,Gameprogress/4,0)
DisplayTransparentSprite(10,xPlayer,yPlayer)
Gosub Spieleraktion
Gosub Remove
Gosub Schuss
Gosub enemy
Gameprogress-1
FlipBuffers():Until getasynckeystate_(#vk_escape)<>0:End;***********Gosub Bereich*****************
Spieleraktion:
ExamineKeyboard()
If KeyboardPushed(#pb_key_up):yPlayer-SpeedPlayer:EndIf
If KeyboardPushed(#pb_key_down):yPlayer+SpeedPlayer:EndIf
If KeyboardPushed(#pb_key_left):xPlayer-SpeedPlayer:EndIf
If KeyboardPushed(#pb_key_right):xPlayer+SpeedPlayer:EndIf
If KeyboardPushed(#PB_Key_LeftControl) And shootDelay = 0
If Schiff=1
PlayerSchuss(xPlayer+70,yPlayer+22,Schussspeed,0,Damage)
PlayerSchuss(xPlayer+70,yPlayer+11,Schussspeed,0,Damage)
shootDelay = Reloadspeed EndIf
EndIf:If shootDelay>0:shootDelay-1:EndIf:endif
Return
Remove:
If yPlayer+36>708:yPlayer=708-36:ElseIf yPlayer<0:yPlayer=0:EndIf
If xPlayer+76>1024:xPlayer=1024-76:ElseIf xPlayer<0:xPlayer=0:EndIf
Return
Schuss:
Listcount=CountList(Schuss())
FirstElement(Schuss())
For k=1 To Listcount
NextElement(Schuss())
If Schuss()\x > 1024 : DeleteElement(Schuss())
ElseIf Schuss()\x < 0 : DeleteElement(Schuss())
ElseIf Schuss()\y > 708 : DeleteElement(Schuss())
ElseIf Schuss()\y < 0 : DeleteElement(Schuss())
EndIf
Next
Listcount=CountList(Schuss())
FirstElement(Schuss())
For k=1 To Listcount
NextElement(Schuss())
DisplayTransparentSprite(100,Schuss()\x,Schuss()\y)
Schuss()\x + Schuss()\speedX
Schuss()\y + Schuss()\speedY
Next
Return
enemy:
If enemyDelay=0
AddEnemy(1024, Random(690),Gegnerspeed*-1,0,Gegnerarmor)
enemyDelay = enemySetDelay
Else
enemyDelay -1
EndIf
Listcount=CountList(enemy())
FirstElement(enemy())
For k=1 To Listcount
NextElement(enemy())
If enemy()\x < 0-SpriteWidth(20) : DeleteElement(enemy()) : EndIf
Next
Listcount=CountList(enemy())
FirstElement(enemy())
For k=1 To Listcount
NextElement(enemy())
DisplayTransparentSprite(20, enemy()\x, enemy()\y)
enemy()\x + enemy()\speedX
Next
Return
Man braucht an bmps:
1.bmp in gfx\hintergrund
gegner_256_1.bmp.bmp in gfx\sprites
Spieler_Comic.bmp in gfx\sprites
waffe_1.bmp in gfx\waffen
das wärs

ich hoffe, das macht nicht zuviel arbeit^^
der fehler liegt irgentwie bei den erzeugten gegnern und schüssen.
Die fliegen irgentwie komisch unterschiedlich schnell - zum verzweifeln
Danke nochmal schonmal
kreeph