hm, hab die Lust auf WoW verloren und wollte hier weitermachen...
leider ist mir aufgefallen, dass sich nur die ersten IDs überschrieben haben mit denen von den Tiles... ich poste jetzt einfach mal den Code
Code: Alles auswählen
IncludeFile "engine.pb"
If InitSprite() = 0 : MessageRequester("","Sprites could not be initialised. DirectX 7 or higher is needed!") : EndIf
If InitKeyboard() = 0 : MessageRequester("","Keyboard could not be initialised. DirectX 7 or higher is needed!") : EndIf
If InitMouse() = 0 : MessageRequester("","Mouse could not be initialised. DirectX 7 or higher is needed!") : EndIf
UseJPEGImageDecoder() : UsePNGImageDecoder() : UsePNGImageEncoder()
LoadTileMap()
PlayerX.f = 320.0
PlayerY.f = 220.0
PlayerSpeed.f = -1.5
kameraX.l = PlayerSpeed
kameraY.l = PlayerSpeed
TastaturObenRechts.l = 0
Procedure.l FPS()
Shared Zeit, Frames, Ausgabe
If ElapsedMilliseconds() < Zeit + 1000
Frames + 1
Else
Ausgabe = Frames
Frames = 0
Zeit = ElapsedMilliseconds()
EndIf
If Ausgabe > 0
ProcedureReturn Ausgabe
Else
ProcedureReturn 60
EndIf
EndProcedure
Enumeration
;window
#window_1
#window_2
; Sprites
#Sprite_Interface
#Sprite_cursor
; warrior01
#Sprite_WarriorAnimLaufenVonHinten01
#Sprite_WarriorAnimLaufenVonHinten02
#Sprite_WarriorAnimLaufenVonHinten03
#Sprite_WarriorAnimLaufenVonHinten04
#Sprite_WarriorAnimLaufenVonHinten05
#Sprite_WarriorAnimLaufenVonHinten06
#Sprite_WarriorAnimLaufenVonRechts01
#Sprite_WarriorAnimLaufenVonRechts02
#Sprite_WarriorAnimLaufenVonRechts03
#Sprite_WarriorAnimLaufenVonRechts04
#Sprite_WarriorAnimLaufenVonRechts05
#Sprite_WarriorAnimLaufenVonRechts06
#Sprite_WarriorAnimLaufenVonLinks01
#Sprite_WarriorAnimLaufenVonLinks02
#Sprite_WarriorAnimLaufenVonLinks03
#Sprite_WarriorAnimLaufenVonLinks04
#Sprite_WarriorAnimLaufenVonLinks05
#Sprite_WarriorAnimLaufenVonLinks06
#Sprite_WarriorAnimLaufenVonVorne01
#Sprite_WarriorAnimLaufenVonVorne02
#Sprite_WarriorAnimLaufenVonVorne03
#Sprite_WarriorAnimLaufenVonVorne04
#Sprite_WarriorAnimLaufenVonVorne05
#Sprite_WarriorAnimLaufenVonVorne06
EndEnumeration
; char allgemein
HP.l
AP.l
PROFESSION.l
EXP.l
Level.l
Level = 1
If Level = 1 And PROFESSION = Knight
HP = 50
AP = 5
EndIf
If Level = Level + 1 And PROFESSION = Knight
HP + 15
AP + 5
EndIf
;- map einteilung
; Mage 01
;schritt
WarriorSchauRichtung.l
WarriorSchauRichtung = 1
SchrittVorneWarrior01.l = #Sprite_WarriorAnimLaufenVonHinten01
SchrittVorneWarrior02.l = #Sprite_WarriorAnimLaufenVonHinten02
SchrittVorneWarrior03.l = #Sprite_WarriorAnimLaufenVonHinten03
SchrittVorneWarrior04.l = #Sprite_WarriorAnimLaufenVonHinten04
SchrittVorneWarrior05.l = #Sprite_WarriorAnimLaufenVonHinten05
SchrittVorneWarrior06.l = #Sprite_WarriorAnimLaufenVonHinten06
AnimWarriorVonHintenSchritt.l = SchrittVorneWarrior01
SchrittRechtsWarrior01.l = #Sprite_WarriorAnimLaufenVonRechts01
SchrittRechtsWarrior02.l = #Sprite_WarriorAnimLaufenVonRechts02
SchrittRechtsWarrior03.l = #Sprite_WarriorAnimLaufenVonRechts03
SchrittRechtsWarrior04.l = #Sprite_WarriorAnimLaufenVonRechts04
SchrittRechtsWarrior05.l = #Sprite_WarriorAnimLaufenVonRechts05
SchrittRechtsWarrior06.l = #Sprite_WarriorAnimLaufenVonRechts06
AnimWarriorVonRechtsSchritt.l = SchrittRechtsWarrior01
SchrittLinksWarrior01.l = #Sprite_WarriorAnimLaufenVonLinks01
SchrittLinksWarrior02.l = #Sprite_WarriorAnimLaufenVonLinks02
SchrittLinksWarrior03.l = #Sprite_WarriorAnimLaufenVonLinks03
SchrittLinksWarrior04.l = #Sprite_WarriorAnimLaufenVonLinks04
SchrittLinksWarrior05.l = #Sprite_WarriorAnimLaufenVonLinks05
SchrittLinksWarrior06.l = #Sprite_WarriorAnimLaufenVonLinks06
AnimWarriorVonLinksSchritt.l = SchrittLinksWarrior01
SchrittHintenWarrior01.l = #Sprite_WarriorAnimLaufenVonVorne01
SchrittHintenWarrior02.l = #Sprite_WarriorAnimLaufenVonVorne02
SchrittHintenWarrior03.l = #Sprite_WarriorAnimLaufenVonVorne03
SchrittHintenWarrior04.l = #Sprite_WarriorAnimLaufenVonVorne04
SchrittHintenWarrior05.l = #Sprite_WarriorAnimLaufenVonVorne05
SchrittHintenWarrior06.l = #Sprite_WarriorAnimLaufenVonVorne06
AnimWarriorVonVorneSchritt.l = SchrittHintenWarrior01
; SystemVariablen
msPerFrame.l = 80
ActTimer = ElapsedMilliseconds() + msPerFrame
Posi.l = 1 ; Variable, es wird abgefragt ob sich der Spieler
; im Interface, oder im eigentlichen game ist.
; 1 = Interface 2 = Game
; ----------------
Structure items
X.w
y.w
EndStructure
NewList items.items()
AddElement(items())
items()\X = 10
windowed.l
OpenConsole()
PrintN("Windowed(w) or fullscreen(f)?")
antwort.s = Input() : If antwort = "w" : windowed = #True : EndIf : If antwort = "f" : windowed = #False : EndIf
CloseConsole()
If windowed = #True
OpenWindow(#window_1,0,0,640,480,#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_BorderLess | #PB_Window_ScreenCentered, "Mage of Fear")
OpenWindowedScreen(WindowID(),0,0,640,480,0,0,0)
UseWindow(#window_1)
EndIf
If windowed = #False
OpenScreen(640,480,16,"Mages And Warriors")
EndIf
;- face gecatche
CatchSprite(#Sprite_Interface, ?Introface)
CatchSprite(#Sprite_cursor, ?cursor)
;Zur Übersichtlichkeit, der cursor gleich hiermit drin
TransparentSpriteColor(#Sprite_cursor,255,0,255)
; -------------------------
; Sprite Gecatche
CatchSprite(#Sprite_WarriorAnimLaufenVonHinten01, ?Sprite_WarriorAnimLaufenVonHinten01)
CatchSprite(#Sprite_WarriorAnimLaufenVonHinten02, ?Sprite_WarriorAnimLaufenVonHinten02)
CatchSprite(#Sprite_WarriorAnimLaufenVonHinten03, ?Sprite_WarriorAnimLaufenVonHinten03)
CatchSprite(#Sprite_WarriorAnimLaufenVonHinten04, ?Sprite_WarriorAnimLaufenVonHinten04)
CatchSprite(#Sprite_WarriorAnimLaufenVonHinten05, ?Sprite_WarriorAnimLaufenVonHinten05)
CatchSprite(#Sprite_WarriorAnimLaufenVonHinten06, ?Sprite_WarriorAnimLaufenVonHinten06)
CatchSprite(#Sprite_WarriorAnimLaufenVonRechts01, ?Sprite_WarriorAnimLaufenVonRechts01)
CatchSprite(#Sprite_WarriorAnimLaufenVonRechts02, ?Sprite_WarriorAnimLaufenVonRechts02)
CatchSprite(#Sprite_WarriorAnimLaufenVonRechts03, ?Sprite_WarriorAnimLaufenVonRechts03)
CatchSprite(#Sprite_WarriorAnimLaufenVonRechts04, ?Sprite_WarriorAnimLaufenVonRechts04)
CatchSprite(#Sprite_WarriorAnimLaufenVonRechts05, ?Sprite_WarriorAnimLaufenVonRechts05)
CatchSprite(#Sprite_WarriorAnimLaufenVonRechts06, ?Sprite_WarriorAnimLaufenVonRechts06)
CatchSprite(#Sprite_WarriorAnimLaufenVonLinks01, ?Sprite_WarriorAnimLaufenVonLinks01)
CatchSprite(#Sprite_WarriorAnimLaufenVonLinks02, ?Sprite_WarriorAnimLaufenVonLinks02)
CatchSprite(#Sprite_WarriorAnimLaufenVonLinks03, ?Sprite_WarriorAnimLaufenVonLinks03)
CatchSprite(#Sprite_WarriorAnimLaufenVonLinks04, ?Sprite_WarriorAnimLaufenVonLinks04)
CatchSprite(#Sprite_WarriorAnimLaufenVonLinks05, ?Sprite_WarriorAnimLaufenVonLinks05)
CatchSprite(#Sprite_WarriorAnimLaufenVonLinks06, ?Sprite_WarriorAnimLaufenVonLinks06)
CatchSprite(#Sprite_WarriorAnimLaufenVonVorne01, ?Sprite_WarriorAnimLaufenVonVorne01)
CatchSprite(#Sprite_WarriorAnimLaufenVonVorne02, ?Sprite_WarriorAnimLaufenVonVorne02)
CatchSprite(#Sprite_WarriorAnimLaufenVonVorne03, ?Sprite_WarriorAnimLaufenVonVorne03)
CatchSprite(#Sprite_WarriorAnimLaufenVonVorne04, ?Sprite_WarriorAnimLaufenVonVorne04)
CatchSprite(#Sprite_WarriorAnimLaufenVonVorne05, ?Sprite_WarriorAnimLaufenVonVorne05)
CatchSprite(#Sprite_WarriorAnimLaufenVonVorne06, ?Sprite_WarriorAnimLaufenVonVorne06)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonHinten01,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonHinten02,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonHinten03,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonHinten04,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonHinten05,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonHinten06,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonRechts01,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonRechts02,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonRechts03,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonRechts04,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonRechts05,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonRechts06,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonLinks01,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonLinks02,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonLinks03,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonLinks04,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonLinks05,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonLinks06,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonVorne01,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonVorne02,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonVorne03,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonVorne04,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonVorne05,255,0,255)
TransparentSpriteColor(#Sprite_WarriorAnimLaufenVonVorne06,255,0,255)
; interface
For n=0 To 14
LoadSprite(4+n, "GFX\Tiles\"+Str(n)+".PNG")
Next
; Main
MouseLocate(240,180)
Repeat
ExamineKeyboard()
;-interface
If Posi = 1
ExamineMouse()
MausX = MouseX()
MausY = MouseY()
DisplaySprite(#Sprite_Interface,60,20)
DisplayTransparentSprite(#Sprite_cursor,MausX,MausY)
If KeyboardPushed(#PB_Key_S)
Posi = 2
EndIf
EndIf
If Posi = 2
showmap(0,0)
FPS()
If windowed = #True : StartDrawing(WindowOutput()) : EndIf
If windowed = #False : StartDrawing(ScreenOutput()) : EndIf
DrawingMode(1)
FrontColor(255,255,255)
Locate(10,10)
DrawText("HP: "+ Str(HP))
Locate(70,10)
DrawText("FPS: "+Str(Ausgabe))
Locate(10,30)
DrawText("AP: "+Str(AP))
Locate(10,50)
DrawText("Lvl: "+Str(Level))
Locate(10,70)
DrawText("Exp: "+Str(EXP))
StopDrawing()
;{ animwarrior + laufen
;{ anim
If WarriorSchauRichtung = 1
DisplayTransparentSprite(AnimWarriorVonHintenSchritt,playerX,playerY)
EndIf
If WarriorSchauRichtung = 2
DisplayTransparentSprite(AnimWarriorVonRechtsSchritt,playerX,playerY)
EndIf
If WarriorSchauRichtung = 3
DisplayTransparentSprite(AnimWarriorVonVorneSchritt,playerX,playerY)
EndIf
If WarriorSchauRichtung = 4
DisplayTransparentSprite(AnimWarriorVonLinksSchritt,playerX,playerY)
EndIf
;}
;{ laufen
If KeyboardPushed(#PB_Key_Right) And KeyboardPushed(#PB_Key_Up) = 0 And KeyboardPushed(#PB_Key_Left) = 0 And KeyboardPushed(#PB_Key_Down) = 0
WarriorSchauRichtung = 2
AnimWarriorVonRechtsSchritt + 1
If AnimWarriorVonRechtsSchritt > SchrittRechtsWarrior06
AnimWarriorVonRechtsSchritt = SchrittRechtsWarrior01
EndIf
playerX - playerspeed
EndIf
If KeyboardPushed(#PB_Key_Up) And KeyboardPushed(#PB_Key_Right)= 0 And KeyboardPushed(#PB_Key_Left) = 0 And KeyboardPushed(#PB_Key_Down) = 0
WarriorSchauRichtung = 1
AnimWarriorVonHintenSchritt + 1
If AnimWarriorVonHintenSchritt > SchrittVorneWarrior06
AnimWarriorVonHintenSchritt = SchrittVorneWarrior01
EndIf
playerY + playerspeed
EndIf
If KeyboardPushed(#PB_Key_Down) And KeyboardPushed(#PB_Key_Up) = 0 And KeyboardPushed(#PB_Key_Left) = 0 And KeyboardPushed(#PB_Key_Right) = 0
WarriorSchauRichtung = 3
AnimWarriorVonVorneSchritt + 1
If AnimWarriorVonVorneSchritt > SchrittHintenWarrior06
AnimWarriorVonVorneSchritt = SchrittHintenWarrior01
EndIf
playerY - playerspeed
EndIf
If KeyboardPushed(#PB_Key_Left) And KeyboardPushed(#PB_Key_Up) = 0 And KeyboardPushed(#PB_Key_Right) = 0 And KeyboardPushed(#PB_Key_Down) = 0
WarriorSchauRichtung = 4
AnimWarriorVonLinksSchritt + 1
If AnimWarriorVonLinksSchritt > SchrittLinksWarrior06
AnimWarriorVonLinksSchritt = SchrittLinksWarrior01
EndIf
playerX + playerspeed
EndIf
;}
;} schluss anim + laufen
If EXP>=500
Level + 1
EndIf
If KeyboardPushed(#PB_Key_Return)
msgbox = 1
EndIf
EndIf
;- Blockierungen
; ----------------
Repeat: Delay(1) : Until ElapsedMilliseconds() > ActTimer
ActTimer + msPerFrame
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
End
; Sprite Sprungmarken
DataSection
cursor: IncludeBinary "GFX\cursor.png"
Sprite_WarriorAnimLaufenVonHinten01: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonHinten01.png"
Sprite_WarriorAnimLaufenVonHinten02: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonHinten02.png"
Sprite_WarriorAnimLaufenVonHinten03: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonHinten03.png"
Sprite_WarriorAnimLaufenVonHinten04: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonHinten04.png"
Sprite_WarriorAnimLaufenVonHinten05: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonHinten05.png"
Sprite_WarriorAnimLaufenVonHinten06: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonHinten06.png"
Sprite_WarriorAnimLaufenVonRechts01: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonRechts01.png"
Sprite_WarriorAnimLaufenVonRechts02: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonRechts02.png"
Sprite_WarriorAnimLaufenVonRechts03: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonRechts03.png"
Sprite_WarriorAnimLaufenVonRechts04: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonRechts04.png"
Sprite_WarriorAnimLaufenVonRechts05: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonRechts05.png"
Sprite_WarriorAnimLaufenVonRechts06: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonRechts06.png"
Sprite_WarriorAnimLaufenVonLinks01: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonLinks01.png"
Sprite_WarriorAnimLaufenVonLinks02: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonLinks02.png"
Sprite_WarriorAnimLaufenVonLinks03: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonLinks03.png"
Sprite_WarriorAnimLaufenVonLinks04: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonLinks04.png"
Sprite_WarriorAnimLaufenVonLinks05: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonLinks05.png"
Sprite_WarriorAnimLaufenVonLinks06: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonLinks06.png"
Sprite_WarriorAnimLaufenVonVorne01: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonVorne01.png"
Sprite_WarriorAnimLaufenVonVorne02: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonVorne02.png"
Sprite_WarriorAnimLaufenVonVorne03: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonVorne03.png"
Sprite_WarriorAnimLaufenVonVorne04: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonVorne04.png"
Sprite_WarriorAnimLaufenVonVorne05: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonVorne05.png"
Sprite_WarriorAnimLaufenVonVorne06: IncludeBinary "GFX\Warrior01\WarriorAnimLaufenVonVorne06.png"
;face
Introface: IncludeBinary "GFX\Interface.jpg"
EndDataSection
in der map.map sind jetzt zwei 5er und eine 1 und eine 3 als Long...