Seite 3 von 3

Verfasst: 06.04.2005 16:53
von bluejoke
*g*

drücke mal auf die Taste "Einfg" über den Cursor-Tasten oder Auf dem Num-Block bei ausgeschaltetem "Num"

Verfasst: 06.04.2005 17:06
von Rubiko
danke

Code: Alles auswählen

InitSprite()  ; Initialisiert die Sprite Umgebung, womit wir sprite-Befehle nutzen können
InitKeyboard() ; Das selbe nur initialisiert es die Tastatur, die wir nun auch verwenden können


playerX.l = 250
playerY.l = 200

kameraX.l = 5
kameraY.l = 5

TastaturObenRechts.l = 0

Enumeration
  ;window
  #window_1
  ; Sprites
  #Sprite_Mage01SchrittLinks
  #Sprite_Mage01SchrittRechts
  #Sprite_Mage02
  #Sprite_Player
  #Sprite_Player4
  #Sprite_Mage067
  #Sprite_Mage0532
  ; Umgebung
  
  #Sprite_Grass01
EndEnumeration 

; char allgemein
HP.l
AP.l
PROFESSION.l
EXP.l
Level.l


Level = 1
If Level = 1
  HP = 20
  AP = 30
EndIf
If Level = Level + 1 And PROFESSION = Mage
  HP + 15
  AP + 30
EndIf


; Mage 01
;schritt
SchrittMage01.l = #Sprite_Mage01SchrittLinks
SchrittMage02.l = #Sprite_Mage01SchrittRechts
AnimMageVonVorneSchritt.l = SchrittMage01


msPerFrame.l = 20
ActTimer = ElapsedMilliseconds() + msPerFrame
      
OpenWindow(#window_1,0,0,500,400,#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_BorderLess | #PB_Window_ScreenCentered, "Mage of Fear")
OpenWindowedScreen(WindowID(),0,0,500,400,0,0,0)

; Sprite Gecatche
CatchSprite(#Sprite_Mage01SchrittLinks, ?Sprite_MageVonVorneSchrittLinks)
CatchSprite(#Sprite_Mage01SchrittRechts, ?Sprite_MageVonVorneSchrittRechts)
CatchSprite(#Sprite_Grass01, ?Sprite_Grass01)


TransparentSpriteColor(#Sprite_Mage01SchrittLinks,255,0,255)
TransparentSpriteColor(#Sprite_Mage01SchrittRechts,255,0,255)
; Main
Repeat
StartDrawing(WindowOutput())
DrawingMode(1)
Locate(10,10)
FrontColor(0,0,0)
DrawText("HP: "+ Str(HP))  
StopDrawing()
 
ClearScreen(255,0,255)
ExamineKeyboard()

DisplaySprite(#Sprite_Grass01, 0-kameraX,0-kameraY)
DisplaySprite(#Sprite_Grass01, 50-kameraX,0-kameraY)
DisplaySprite(#Sprite_Grass01, 100-kameraX,0-kameraY)
DisplaySprite(#Sprite_Grass01, 150-kameraX,0-kameraY)
DisplaySprite(#Sprite_Grass01, 200-kameraX,0-kameraY)
DisplaySprite(#Sprite_Grass01, 250-kameraX,0-kameraY)
DisplaySprite(#Sprite_Grass01, 300-kameraX,0-kameraY)
DisplaySprite(#Sprite_Grass01, 350-kameraX,0-kameraY)
DisplaySprite(#Sprite_Grass01, 400-kameraX,0-kameraY)
DisplaySprite(#Sprite_Grass01, 450-kameraX,0-kameraY)
DisplaySprite(#Sprite_Grass01, 0-kameraX,50-kameraY)
DisplaySprite(#Sprite_Grass01, 50-kameraX,50-kameraY)
DisplaySprite(#Sprite_Grass01, 100-kameraX,50-kameraY)
DisplaySprite(#Sprite_Grass01, 150-kameraX,50-kameraY)
DisplaySprite(#Sprite_Grass01, 200-kameraX,50-kameraY)
DisplaySprite(#Sprite_Grass01, 250-kameraX,50-kameraY)
DisplaySprite(#Sprite_Grass01, 300-kameraX,50-kameraY)
DisplaySprite(#Sprite_Grass01, 350-kameraX,50-kameraY)
DisplaySprite(#Sprite_Grass01, 400-kameraX,50-kameraY)
DisplaySprite(#Sprite_Grass01, 450-kameraX,50-kameraY)
DisplaySprite(#Sprite_Grass01, 0-kameraX,100-kameraY)
DisplaySprite(#Sprite_Grass01, 50-kameraX,100-kameraY)
DisplaySprite(#Sprite_Grass01, 100-kameraX,100-kameraY)
DisplaySprite(#Sprite_Grass01, 150-kameraX,100-kameraY)
DisplaySprite(#Sprite_Grass01, 200-kameraX,100-kameraY)
DisplaySprite(#Sprite_Grass01, 250-kameraX,100-kameraY)
DisplaySprite(#Sprite_Grass01, 300-kameraX,100-kameraY)
DisplaySprite(#Sprite_Grass01, 350-kameraX,100-kameraY)
DisplaySprite(#Sprite_Grass01, 400-kameraX,100-kameraY)
DisplaySprite(#Sprite_Grass01, 450-kameraX,100-kameraY)
DisplaySprite(#Sprite_Grass01, 0-kameraX,150-kameraY)
DisplaySprite(#Sprite_Grass01, 50-kameraX,150-kameraY)
DisplaySprite(#Sprite_Grass01, 100-kameraX,150-kameraY)
DisplaySprite(#Sprite_Grass01, 150-kameraX,150-kameraY)
DisplaySprite(#Sprite_Grass01, 200-kameraX,150-kameraY)
DisplaySprite(#Sprite_Grass01, 250-kameraX,150-kameraY)
DisplaySprite(#Sprite_Grass01, 300-kameraX,150-kameraY)
DisplaySprite(#Sprite_Grass01, 350-kameraX,150-kameraY)
DisplaySprite(#Sprite_Grass01, 400-kameraX,150-kameraY)
DisplaySprite(#Sprite_Grass01, 450-kameraX,150-kameraY)
DisplaySprite(#Sprite_Grass01, 0-kameraX,200-kameraY)
DisplaySprite(#Sprite_Grass01, 50-kameraX,200-kameraY)
DisplaySprite(#Sprite_Grass01, 100-kameraX,200-kameraY)
DisplaySprite(#Sprite_Grass01, 150-kameraX,200-kameraY)
DisplaySprite(#Sprite_Grass01, 200-kameraX,200-kameraY)
DisplaySprite(#Sprite_Grass01, 250-kameraX,200-kameraY)
DisplaySprite(#Sprite_Grass01, 300-kameraX,200-kameraY)
DisplaySprite(#Sprite_Grass01, 350-kameraX,200-kameraY)
DisplaySprite(#Sprite_Grass01, 400-kameraX,200-kameraY)
DisplaySprite(#Sprite_Grass01, 450-kameraX,200-kameraY)
DisplaySprite(#Sprite_Grass01, 0-kameraX,250-kameraY)
DisplaySprite(#Sprite_Grass01, 50-kameraX,250-kameraY)
DisplaySprite(#Sprite_Grass01, 100-kameraX,250-kameraY)
DisplaySprite(#Sprite_Grass01, 150-kameraX,250-kameraY)
DisplaySprite(#Sprite_Grass01, 200-kameraX,250-kameraY)
DisplaySprite(#Sprite_Grass01, 250-kameraX,250-kameraY)
DisplaySprite(#Sprite_Grass01, 300-kameraX,250-kameraY)
DisplaySprite(#Sprite_Grass01, 350-kameraX,250-kameraY)
DisplaySprite(#Sprite_Grass01, 400-kameraX,250-kameraY)
DisplaySprite(#Sprite_Grass01, 450-kameraX,250-kameraY)
DisplaySprite(#Sprite_Grass01, 0-kameraX,300-kameraY)
DisplaySprite(#Sprite_Grass01, 50-kameraX,300-kameraY)
DisplaySprite(#Sprite_Grass01, 100-kameraX,300-kameraY)
DisplaySprite(#Sprite_Grass01, 150-kameraX,300-kameraY)
DisplaySprite(#Sprite_Grass01, 200-kameraX,300-kameraY)
DisplaySprite(#Sprite_Grass01, 250-kameraX,300-kameraY)
DisplaySprite(#Sprite_Grass01, 300-kameraX,300-kameraY)
DisplaySprite(#Sprite_Grass01, 350-kameraX,300-kameraY)
DisplaySprite(#Sprite_Grass01, 400-kameraX,300-kameraY)
DisplaySprite(#Sprite_Grass01, 450-kameraX,300-kameraY)
DisplaySprite(#Sprite_Grass01, 0-kameraX,350-kameraY)
DisplaySprite(#Sprite_Grass01, 50-kameraX,350-kameraY)
DisplaySprite(#Sprite_Grass01, 100-kameraX,350-kameraY)
DisplaySprite(#Sprite_Grass01, 150-kameraX,350-kameraY)
DisplaySprite(#Sprite_Grass01, 200-kameraX,350-kameraY)
DisplaySprite(#Sprite_Grass01, 250-kameraX,350-kameraY)
DisplaySprite(#Sprite_Grass01, 300-kameraX,350-kameraY)
DisplaySprite(#Sprite_Grass01, 350-kameraX,350-kameraY)
DisplaySprite(#Sprite_Grass01, 400-kameraX,350-kameraY)
DisplaySprite(#Sprite_Grass01, 450-kameraX,350-kameraY)

  DisplayTransparentSprite(AnimMageVonVorneSchritt,playerX,playerY)
If KeyboardPushed(#PB_Key_Right)
  playerX + 1
  kameraX + 2
EndIf
If KeyboardPushed(#PB_Key_Up)
  playerY - 1
  kameraY - 2
EndIf
If KeyboardPushed(#PB_Key_Down)
  AnimMageVonVorneSchritt + 1
  If AnimMageVonVorneSchritt  > SchrittMage02
    AnimMageVonVorneSchritt = SchrittMage01
  EndIf
  playerY + 1
  kameraY + 2 
EndIf
If KeyboardPushed(#PB_Key_Left)
  playerX - 1
  kameraX - 2
EndIf

Repeat:Delay(100):Until ElapsedMilliseconds() > ActTimer
ActTimer + msPerFrame
FlipBuffers()

Until KeyboardPushed(#PB_Key_Escape)



; Sprite Sprungmarken

Sprite_MageVonVorneSchrittLinks: IncludeBinary "GFX\Mage01\MageVonVorneSchritt1.bmp"         
Sprite_MageVonVorneSchrittRechts: IncludeBinary "GFX\Mage01\MageVonVorneSchritt2.bmp"
Sprite_Grass01: IncludeBinary "GFX\GrassTile01.bmp"
immernoch nicht animiert :(

Verfasst: 06.04.2005 21:15
von Epyx
Ich weiß nicht ob es dir hilft aber ich hatte mal nen Sourcecode für ein Jump´n Run ins ShowCase gesetzt. Kannst du dir ja zumindest mal ansehen, vieleicht kannst du da was adaptieren.


XMas Run v.1.0

Verfasst: 06.04.2005 22:02
von Kaeru Gaman
schau dir mal AnimProcs an.

in dem Sorce findest du verschiedenste anhaltspunkte.

http://forums.purebasic.com/german/view ... 3707#23707

ich verstehe bei denem prog nicht, warum da nix animiert... es sieht richtig aus.

...abgesehen davon, dass ich Delay(1) geschrieben hatte...

Verfasst: 07.04.2005 07:01
von Rubiko
:o komisch irgendwie isses nun animiert... ne ich wollte nur bei genau testen bei 100... jetzt isses auf glaub ich auf 63 (sind auch nur 2 animierte bilder)
aber mal bei der source gucken daraus kann ich vielleicht was lernen^^

EDIT: aber warum steht beim schließen des programmes immernoch da "blabal hat ein problem festegestellt und muss beendet werden."? (also wenn ich schon gleich nochmal poste)

Verfasst: 07.04.2005 08:11
von Kaeru Gaman
Rubiko hat geschrieben:aber warum steht beim schließen des programmes immernoch da "blabal hat ein problem festegestellt und muss beendet werden."?
weil du vor den Sprites, die du ja per include ins programm nimmst,
weder ein End noch ein DataSection stehen hast.

deshalb versucht er, nach verlassen der Repeat-Schleife,
deine Sprite-Daten als Code zu interpretieren.

Das kann nicht gutgehen.

------------

> jetzt isses auf glaub ich auf 63

was ist auf 63?

die Verzögerung wird festgelegt durch die Variable msPerFrame.

es ist sinnlos, ins Delay etwas anderes als 1 zu schreiben.

und bei jedem Wert größer als msPerFrame könnte man sich die ganze Elapsed-Schose schenken...

sieh dir doch mal den codepart genauer an....

er wartet eine ms und schaut dann, ob seine msPerFrame-Zeit schon abgelaufen ist,
wenn nicht, wartet er nochmal eine ms undsoweiter...

wenn du ne 100 rein machst, dann ist aufjeden Fall seine msPerFrame rum nach dem warten.

wenn du langsam testen willst, setze msPerFrame auf 100 oder 200,
aber laß das Delay auf 1.


...und bau das Gras-Anzeigen in eine schleife... diese 37 zeilen sehen grauslig aus.