Sorry hab nicht viel Zeit weil ich übers Wochenende von Arbeit her weg war/bin, poste schnell den Code, hoffe es ist nicht zu viel..
Code: Alles auswählen
IncludeFile "InitSystem.pb"
IncludeFile "InitGame.pb"
Repeat
ExamineKeyboard()
DisplaySprite(#Sprite_Back, 0, 0)
Gosub steuerung
Gosub playershots
Gosub enemy
DisplayTransparentSprite(#Sprite_Player, playerX, playerY)
FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape) : End
; GOSUBS -------------------------------------------------------------------------------
steuerung:
If KeyboardPushed(#PB_Key_Left) And playerX > 0
playerX - playerSpeed
EndIf
If KeyboardPushed(#PB_Key_Right) And playerX < 800 - SpriteWidth(#Sprite_Player)
playerX + playerSpeed
EndIf
If KeyboardPushed(#PB_Key_Up) And playerY > 0
playerY - playerSpeed
EndIf
If KeyboardPushed(#PB_Key_Down) And playerY < 600 - SpriteHeight(#Sprite_Player)
playerY + playerSpeed
EndIf
If KeyboardPushed(#PB_Key_LeftControl) And shootDelay = 0
AddPlayershot(playerX + 25, playerY - 3, 10, 0)
AddPlayershot(playerX + 25, playerY + 16, 10, 0)
shootDelay = 15
PlaySound(#Sound_Blaster)
EndIf
If shootDelay > 0 : shootDelay - 1 : EndIf
Return
playershots:
ForEach(playershot())
If playershot()\x > 800 : DeleteElement(playershot())
ElseIf playershot()\x < 0 : DeleteElement(playershot())
ElseIf playershot()\y > 600 : DeleteElement(playershot())
ElseIf playershot()\y < 0 : DeleteElement(playershot())
EndIf
Next
ForEach(playershot())
DisplayTransparentSprite(#Sprite_Blaster, playershot()\x, playershot()\y)
playershot()\x + playershot()\speedX
playershot()\y + playershot()\speedY
Next
Return
enemy:
If enemyDelay = 0
AddEnemy(800, Random(560), -2, 0, 100)
enemyDelay = enemySetDelay
Else
enemyDelay - 1
EndIf
ForEach enemy()
If enemy()\x < 0 - SpriteWidth(#Sprite_Enemy) : DeleteElement(enemy()) : EndIf
If enemy()\armor < 1
DeleteElement(enemy(), 1)
EndIf
Next
ForEach enemy()
DisplayTransparentSprite(#Sprite_Enemy, enemy()\x, enemy()\y)
enemy()\x + enemy()\speedX
Next
Return
InitSystem:
Code: Alles auswählen
;Initialiersierungen
If InitSprite() = 0
MessageRequester("Fehler", "Kann Grafik nicht Initialisieren..(DirectX 7 oder höher notwendig!)", 0)
End
EndIf
If InitKeyboard() = 0
MessageRequester("Fehler", "Kann Keyboard nicht Initialisieren..(DirectX 7 oder höher notwendig!)", 0)
End
EndIf
If InitSound() = 0
MessageRequester("Fehler", "Kann Sound nicht Initialisieren..(DirectX 7 oder höher notwendig!)", 0)
End
EndIf
If InitMouse() = 0
MessageRequester("Fehler", "Kann Maus nicht Initialisieren..(DirectX 7 oder höher notwendig!)", 0)
End
EndIf
OpenScreen(800, 600, 16, "Uebung")
InitGame:
Code: Alles auswählen
Global playerX.l
Global playerY.l
Global playerSpeed.l
Global shootDelay.l
Global enemyDelay.l
Global enemySetDelay.l
playerX = 0
playerY = 300
playerSpeed = 4
enemySetDelay = 100
Enumeration
#Sprite_Player
#Sprite_Back
#Sprite_Blaster
#Sprite_Enemy
#Sound_Blaster
#Sound_Hit
EndEnumeration
Structure playershot
x.l
y.l
speedX.l
speedY.l
EndStructure
Global NewList playershot.playershot()
Structure enemy
x.l
y.l
speedX.l
speedY.l
armor.l
EndStructure
Global NewList enemy.enemy()
Procedure AddPlayershot(x, y, speedX, speedY)
AddElement(playershot())
playershot()\x = x
playershot()\y = y
playershot()\speedX = speedX
playershot()\speedY = speedY
EndProcedure
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
LoadSprite(#Sprite_Player, "Grafik\player.bmp")
LoadSprite(#Sprite_Back, "Grafik\back.bmp")
LoadSprite(#Sprite_Blaster, "Grafik\blaster.bmp")
LoadSprite(#Sprite_Enemy, "Grafik\gegner.bmp")
LoadSound(#Sound_Blaster, "Grafik\blaster.wav")
LoadSound(#Sound_Hit, "Grafik\hit.wav")
Vielen lieben dank an alle bisherigen Antworten
