Wie Tutorial PB V.3.81 auf PB V 5.00 zum laufen bringen?
Verfasst: 26.06.2013 02:30
Hallo,
dieses Tutorial bekomm ich nicht zum laufen.
Wisst ihr an was das legen könnte.
es besteht aus 3 Files die Bilder weis ich nicht hier hochzuladen aber hier ist der link wo man das tutorial als rar datei laden kann.
Spiele für Fortgeschrittene
http://www.purearea.net/pb/german/tutorials.htm
1.File
2. File
3. File
dieses Tutorial bekomm ich nicht zum laufen.
Wisst ihr an was das legen könnte.
es besteht aus 3 Files die Bilder weis ich nicht hier hochzuladen aber hier ist der link wo man das tutorial als rar datei laden kann.
Spiele für Fortgeschrittene
http://www.purearea.net/pb/german/tutorials.htm
1.File
Code: Alles auswählen
IncludeFile "InitSystem.pb"
IncludeFile "InitGame.pb"
PlayModule(#Module_Mucke)
;MainLoop ######################################
Repeat
ExamineKeyboard()
DisplaySprite(#Sprite_Back, 0, 0)
If GetModulePosition() = 41 : SetModulePosition(5) : EndIf
If playerLife < 0
CloseScreen()
MessageRequester("Du bist tot..", "Schade!" + Chr(10) + "Erreichte Punkte: " + Str(score) + Chr(10) + "In Level: " + Str(level), 0)
End
ElseIf enemySetDelay < 5
CloseScreen()
MessageRequester("Geschafft..", "Erreichte Punkte: " + Str(score) + Chr(10) + "In Level: " + Str(level), 0)
End
EndIf
;Neu, immer wenn 2500 Punkte überschritten sind, wird der Level erhöht und ein
;Sound abgespielt. enemySetDelay wird um 15 verringert, damit die Gegner schneller
;auftauchen.
;LevelUP wird dann wieder auf 0 gesetzt um erneut bis 4000 zu zählen...usw.
If levelUP > 2500 : level + 1 : levelUP = 0 : enemySetDelay - 15: PlaySound(#Sound_LevelUP) : EndIf
Gosub steuerung
Gosub playershots
Gosub enemy
Gosub collisions
Gosub explosions
Gosub drawing
AddExplo(playerX-10, 6+playerY+Random(6)-3, Random(3)-3, 0, 120, 122, 2)
DisplayTransparentSprite(#Sprite_Player, playerX, playerY)
FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape) : End
;MainLoop ENDE ##################################
;-Sub Steuerung ##################################
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 < 565 -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)
PlaySound(#Sound_Blaster) : shootDelay = 15
EndIf
If shootDelay > 0 : shootDelay - 1 : EndIf
Return
;-Sub Playershots ##########################
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
;-Sub Enemy #################################
enemy:
If enemyDelay = 0
AddEnemy(800, Random(560), -2-Random(1), 0, 100)
enemyDelay = enemySetDelay
Else
enemyDelay - 1
EndIf
ForEach enemy()
If enemy()\x < 0-SpriteWidth(#Sprite_Enemy) : DeleteElement(enemy()) : EndIf
If enemy()\armor < 1
For i = 1 To 4
AddExplo(enemy()\x+15, enemy()\y, Random(6)-3, Random(6)-3, 100, 108, 2)
AddExplo(enemy()\x+15, enemy()\y, Random(10)-5, Random(10)-5, 110, 113, 5)
Next
AddExplo(enemy()\x+15, enemy()\y, Random(10)-5, Random(10)-5, 140, 140, 25)
AddExplo(enemy()\x+15, enemy()\y, Random(10)-5, Random(10)-5, 141, 141, 25)
AddExplo(enemy()\x+15, enemy()\y, Random(10)-5, Random(10)-5, 142, 142, 25)
AddExplo(enemy()\x+15, enemy()\y, Random(10)-5, Random(10)-5, 143, 143, 25)
DeleteElement(enemy())
PlaySound(#Sound_Explosion)
score + 150 : levelUP + 150 ; Neu, damit wir nach einer Anzahl an Punkten den Level erhöhen können
EndIf
Next
ForEach enemy()
AddExplo(enemy()\x+SpriteWidth(#Sprite_Enemy), enemy()\y+7+Random(6)-3, Random(3)+1, 0, 130, 132, 3)
DisplayTransparentSprite(#Sprite_Enemy, enemy()\x, enemy()\y)
enemy()\x + enemy()\speedX
Next
Return
;-Sub Collisions ###########################
collisions:
ForEach playershots()
If SpriteCollision (#Sprite_Enemy, enemy()\x, enemy()\y, #Sprite_Player, playershots()\x, playershots()\y)
PlaySound(#Sound_Explosion)
playerLife - 1
playershots()\playerX = 0
playershots()\playery = 300
EndIf
ForEach enemy()
ForEach playershot()
If SpriteCollision(#Sprite_Blaster, playershot()\x, playershot()\y, #Sprite_Enemy, enemy()\x, enemy()\y)
PlaySound(#Sound_Hit)
enemy()\armor - 20
DeleteElement(playershot())
EndIf
Next
If SpriteCollision(#Sprite_Player, playerX, playerY, #Sprite_Enemy, enemy()\x, enemy()\y)
PlaySound(#Sound_Explosion)
enemy()\armor - 100
playerLife - 1
EndIf
Next
Return
;-Sub Drawing ###########################
drawing:
StartDrawing(ScreenOutput()) : DrawingMode(1)
FrontColor(0,0,0) : Box(0, 570, 800, 30)
FrontColor (200,200,200)
Locate(360, 575) : DrawText(Str(playerLife))
Locate(100, 575) : DrawText(Str(score))
Locate(660, 575) : DrawText(Str(level)) ;Neu, der aktuelle Level wird nun auch angezeigt
FrontColor(200,100,0)
Locate(300, 575) : DrawText("Lives:")
Locate(10, 575) : DrawText("SCORE:")
Locate(600, 575) : DrawText("Level:")
StopDrawing()
Return
;-Sub Explosions ###########################
explosions:
ForEach(explo())
DisplayTransparentSprite(explo()\spriteStart, explo()\x, explo()\y)
explo()\x + explo()\speedX : explo()\y + explo()\speedY
If explo()\spriteStart = explo()\spriteEnd And explo()\delay = 1
DeleteElement(explo())
ElseIf explo()\delay > 0
explo()\delay - 1
Else
explo()\delay = explo()\animSpeed
explo()\spriteStart+1
EndIf
Next
Return
Code: Alles auswählen
Variablen #################################################################
Global playerX.l
Global playerY.l
Global playerSpeed.l
Global playerLife.l
Global shootDelay.l
Global enemyDelay.l
Global enemySetDelay.l
Global score.l
Global level.l ;Neu, unsere beiden Variablen für den Schwierigkeitsgrad
Global levelUP.l ;
playerX = 0
playerY = 300
playerSpeed = 4
playerLife = 3
enemySetDelay = 100
;-Konstanten #################################################################
Enumeration
#Sprite_Player
#Sprite_Back
#Sprite_Blaster
#Sprite_Enemy
#Sound_Blaster
#Sound_Explosion
#Sound_Hit
#Sound_LevelUP ;Neu, unser Sound wenn ein neuer Level erreicht wird.
#Module_Mucke
EndEnumeration
;-Strukturen und Listen ######################################################
Structure playershot
x.l
y.l
speedX.l
speedY.l
EndStructure
NewList playershot.playershot()
Structure enemy
x.l
y.l
speedX.l
speedY.l
armor.l
EndStructure
NewList enemy.enemy()
Structure explo
x.l
y.l
speedX.l
speedY.l
spriteStart.l
spriteEnd.l
animSpeed.l
delay.l
EndStructure
NewList explo.explo()
;-Prozeduren ##################################################################
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
Procedure AddPlayershot(x, y, speedX, speedY)
AddElement(playershot())
playershot()\x = x
playershot()\y = y
playershot()\speedX = speedX
playershot()\speedY = speedY
EndProcedure
Procedure AddExplo(x, y, speedX, speedY, spriteStart, spriteEnd, animSpeed)
AddElement(explo())
explo()\x = x
explo()\y = y
explo()\speedX = speedX
explo()\speedY = speedY
explo()\spriteStart = spriteStart
explo()\spriteEnd = spriteEnd
explo()\animSpeed = animSpeed
explo()\delay = animSpeed
EndProcedure
;-Grafiken und Sounds #########################################################
LoadSprite(#Sprite_Player, "..\GFXSND\player.bmp")
LoadSprite(#Sprite_Blaster, "..\GFXSND\blaster.bmp")
LoadSprite(#Sprite_Back, "..\GFXSND\back.bmp")
LoadSprite(#Sprite_Enemy, "..\GFXSND\gegner.bmp")
For i = 100 To 108 : LoadSprite(i, "..\GFXSND\explo" + Str(i-99) + ".bmp") : Next
For i = 110 To 113 : LoadSprite(i, "..\GFXSND\particle" + Str(i-109) + ".bmp") : Next
For i = 120 To 122 : LoadSprite(i, "..\GFXSND\antrieba" + Str(i-119) + ".bmp") : Next
For i = 130 To 132 : LoadSprite(i, "..\GFXSND\antriebb" + Str(i-129) + ".bmp") : Next
For i = 140 To 143 : LoadSprite(i, "..\GFXSND\gegner_split" + Str(i-139) + ".bmp") : Next
LoadSound(#Sound_Blaster, "..\GFXSND\blaster.wav")
LoadSound(#Sound_Hit, "..\GFXSND\hit.wav")
LoadSound(#Sound_Explosion, "..\GFXSND\explosion.wav")
LoadSound(#Sound_LevelUP, "..\GFXSND\levelup.wav") ;Neu, unser Level-UP-sound
LoadModule(#Module_Mucke, "..\GFXSND\humatarg.mod")
Code: Alles auswählen
;-Initialisation--------------------------------------
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
If InitModule() = 0
MessageRequester("Fehler", "Kann die Module-Umgebung nicht Initialisieren..", 0)
End
EndIf
; Ende der Umgebungs-Initialisierung
OpenScreen(800,600,16,"Ballerkurs") ; Vollbildmodus, 800*600 Pixel, 16bit Farbtiefe