Seite 1 von 1

Animationen

Verfasst: 26.01.2010 17:50
von Marvin133
guten tag zusammen!
ich habe folgendes probel ich möchte ein reuhe von bildern als eine animation dasrstllen mit displaysprite and delay.jetzt habe ich das ganze in ner schleife drin weil ich das immer zeichen möchte wenn ich ein bestimmte tste grdückt habe nur wenn ich die taste drücke malt der pc nur das erste der ganzen sprites wie kann ich das ändern?

http://www.file-upload.net/download-219 ... da.7z.html

Re: Animationen

Verfasst: 26.01.2010 18:54
von Shadow-Gamer
diese 2. Repeat-schleife war nicht so schön ne(taskmanager war nötig)^^

guckst du hier:

Code: Alles auswählen

InitSound()
InitSprite() 
                                                   
If InitKeyboard()=0                                               
   MessageRequester("Fehler","Konnte dx nicht finden",0)         
EndIf                                                           

If OpenScreen(800,600,32,"Vollbild") = 0                         
   MessageRequester("Fehler","Konnte kein Vollbild erstellen ",0) 
EndIf
                                                                                            
LoadSprite(1,"Data\Sprites\ZeldaGoWithout\ZeldaGo1.bmp",0)
LoadSprite(2,"Data\Sprites\ZeldaGoWithout\ZeldaGo2.bmp",0)
LoadSprite(3,"Data\Sprites\ZeldaGoWithout\ZeldaGo3.bmp",0)
LoadSprite(4,"Data\Sprites\ZeldaGoWithout\ZeldaGo4.bmp",0)
LoadSprite(5,"Data\Sprites\ZeldaGoWithout\ZeldaGo5.bmp",0)
LoadSprite(6,"Data\Sprites\ZeldaGoWithout\ZeldaGo6.bmp",0)
LoadSprite(7,"Data\Sprites\ZeldaGoWithout\ZeldaGo7.bmp",0)
LoadSprite(8,"Data\Sprites\ZeldaGoWithout\ZeldaGo8.bmp",0)
LoadSprite(9,"Data\Sprites\ZeldaGoWithout\ZeldaGo9.bmp",0)
LoadSprite(10,"Data\Sprites\ZeldaGoWithout\ZeldaGo10.bmp",0)

x=10
y=10

img = 1
For sprite = 1 To 10 Step 1
TransparentSpriteColor(sprite,RGB(255,255,255))
Next 

Repeat                                                 
  ExamineKeyboard()
  FlipBuffers()                                         
  ClearScreen(0)
  DisplayTransparentSprite(img,x,y)
  
  If KeyboardPushed(#PB_Key_Down)
     If img = 10
      img = 1
     Else 
      img+1
      y+1
     EndIf
     Delay(100)  
  If y>=600
      y=0
  EndIf
EndIf   
Until KeyboardPushed(1)
Edit: bissel verbessert

Re: Animationen

Verfasst: 26.01.2010 19:00
von Kaeru Gaman
tjaaa.... bei dem Archiv meckert mein 7zip, "Ircorrect command line".
warum benutzt du nicht ZIP kompression?

und Code darfst du trotzdem posten, es geht nur darum, dass die sprites auch da sind.

ist auch möglicher Weise wieder ein Problem, dass man durch Codelesen alleine auch rausfindet.

ALSO

während die taste gedrückt wird, muss der Frame hochgezählt werden, und zwar immer um eins pro durchlauf.
du kannst also nicht einfach die Variable auf die erste Bildnummer setzen.

möglich wäre auch, dass du erstes Bild und Animationsframes getrennt behandelst, wäre vielleicht sogar einfacher.
Pseudocode:

Code: Alles auswählen

If KeyboardPushed( #PB_Key_Left )
  BasisFrame = #LinksGehn
  AnimFrame +1
  If AnimFrame > LastFrame
    AnimFrame = 0
  EndIf
ElseIf KeyboardPushed( #PB_Key_Right )
  BasisFrame = #RechtsGehn
  AnimFrame +1
  If AnimFrame > LastFrame
    AnimFrame = 0
  EndIf
Else
  BasisFrame = #StillStehn
  AnimFrame = 0
EndIf
DisplaySprite( BasisFrame + AnimFrame, x, y )
PS:
aha, Shadow-Gamer konnte dein Archiv anscheinend öffnen....
ein Delay() benutzt man normalerweise nicht in einer Game schleife, und wenn dann schon garnicht bedingt sondern absolut.

Re: Animationen

Verfasst: 26.01.2010 19:02
von Shadow-Gamer
Kaeru Gaman hat geschrieben:tjaaa.... bei dem Archiv meckert mein 7zip, "Ircorrect command line".
warum benutzt du nicht ZIP kompression?
hast schon recht, aber mit meinem 7Zip unter Xp hat es gefunzt

Re: Animationen

Verfasst: 26.01.2010 19:26
von Marvin133
ist es möglich dieses programm für jede richtung zu schreiben und dann die ganzen unterprogramme in einem haupt porgramm zu laden?

Re: Animationen

Verfasst: 26.01.2010 19:50
von Kaeru Gaman
da ist ganix mit unter- und hauptprogramm.

wenn du dir meinen pseudocode mal anschaust, wirst du sehen, dass sowohl links als auch rechts drin ist.
da stellt es kein problem dar, auch noch hoch und runter dazu zu bauen.
vielleicht dann ein wenig die struktur ändern, oder mit Flags arbeiten.

vielleicht solltest du erstmal ganz grundsätzlich mit Schleifen und Bedingungen arbeiten,
erstmal Grundlagen erlernen und üben, ein paar einfache Demos coden, bevor du dich an ein Spiel setzt.

Re: Animationen

Verfasst: 15.03.2010 18:55
von Marvin133
Wenn man die ganze Bewegungs datei fertig hat kann man das dan als dll speichern und dann im hauptprogramm die dll öffnen und die funktion ausführen?

Re: Animationen

Verfasst: 15.03.2010 19:57
von Kaeru Gaman
unter dementsprechendem Aufwand. lass es lieber.

so riesig viel ist das schließlich auch nicht, ein paar dutzend zeilen, die kannst du ohne mit der Wimper zu zucken in die Hauptschleife packen.