beine bewegen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

*g*

drücke mal auf die Taste "Einfg" über den Cursor-Tasten oder Auf dem Num-Block bei ausgeschaltetem "Num"
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag 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 :(
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Benutzeravatar
Epyx
Beiträge: 247
Registriert: 29.08.2004 01:40
Computerausstattung: AMD64 X2 DualCore 6000+ , 3GB Ram , WinXP sp3
2x Ati Radeon HD4800 ~ CrossFireX
Kontaktdaten:

Beitrag 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
If you can't make it good, at least make it look good.
Bill Gates
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag 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)
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten