Animation aus Sprites

Probleme beim Erstellen von 3D-Modellen und Texturen, keine Ahnung womit man Musik macht? Dies ist dein Forum.
Benutzeravatar
Reever
Beiträge: 29
Registriert: 13.08.2005 21:36
Wohnort: NRW

Beitrag von Reever »

Jo danke aber ihr kommt vom Thema ab :?
Eigentlich hatte ich was ganz anderes gefragt <)
Aber das mit dem Delay ist echt ein Problem vielen dank :allright:
Wär nur klasse wenn das alte Thema nicht total in den Hintergrund gedrückt würde :lol: :wink:
Das Wort eines Menschen wiegt nichts in den Augen eines Narrs
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

falls das wirklich an der alten version liegt, dann besorg dir so schnell wie möglich ein update, das ist ein befehl :twisted:

:lol:

am anfang hätte ich pb fast weggeschmissen, da keine codes (wie der vorhin) funtzten. :cry:

ich rate dir, das du schnellstens die neue version zulegst, sonnst vergeht dir die lust am pb proggen :wink:
-.-"
Benutzeravatar
Reever
Beiträge: 29
Registriert: 13.08.2005 21:36
Wohnort: NRW

Beitrag von Reever »

Das liegt an der alten Version :?
Hab mir die Demo ma heruntergeladen und ausprobiert :allright:
Naja muss wohl wirklich n Update holen :roll:
Erstma brauch ich Geld :lol:
Das Wort eines Menschen wiegt nichts in den Augen eines Narrs
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Reever hat geschrieben:Soweit habe ich es jetzt gelöst, dass er nach unten läuft, nur das Problem ist noch, dass er einfach nur zwei Bilder zeigt und dann wieder zum Ausgangsbild zurückkehrt, aber das bessert sich wohl wenn ich nochwas rumspiele mit Delay etc hoffe ich doch :? , nur das Problem ist vielmehr, dass er laufen soll wenn ich fortwährend auf die Taste drücke
/:-> :mrgreen:
Der sollte eigentlich 3 Animationsphasen anzeigen ... und dann wieder zum ausgangsbild zurück kehren ...

Und wenn ich auf die Pfeilruntertaste drücke dann bewegt er sich die ganze zeit runter ... und ist er unten außem Bildschirm wird er wieder oben hingesetzt und läuft erneut runter.

Was ist jetzt das, was du nicht möchtest? Und wie dann? O_o
Im zweifalle noch mal Code von dir? So fern du was verändert hast :wink:

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
Reever
Beiträge: 29
Registriert: 13.08.2005 21:36
Wohnort: NRW

Beitrag von Reever »

Also es verhält sich so, damit es deutlich wird was jetz ist :mrgreen:
Er läuft jetzt ein wenig schnell, aber mit delay zu arbeiten ist eine schlechte idee und mit dem Befehl Elapsed Milli Seconds kann ich nicht arbeiten da ich keine Version 3.93 habe. Wenn er jetzt läuft ist er zu schnell dieser Code von Greensnake s.o. ist zwar schön mit den Elapsed Seconds, aber ich weiß nicht wie ich die Prozedur in eine Repeat Schleife einsetzen soll und wie ich es dann so hinbekomme, dass sich das auf das Sprite auswirkt. Außerdem will ich das er, wenn ich die Taste loslasse er wieder in die Ausgangsposition geht, er aber läuft wenn ich fortwährend drücke. Muss ein wenig drüber grübeln :allright: :lol:

Danke :mrgreen:
Das Wort eines Menschen wiegt nichts in den Augen eines Narrs
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Delay war auch nur ein kurzer einfacher einwurf ... damit du überhaupt als Anfänger die Zeit ein bischen beeinflussen kannst :wink: .

Wie schon Green Snake erwähnte, ist GetTickCount_() genau so gut geeignet ... wie ElapsedMilliseconds(). Müsstest das also nur austauschen.

So dann zu deinem Problem. Das was du willst ist ja ganz einfach :D . Also denkanstoß:
Du willst, wenn die Taste gedrückt wird, das er läuft. Also Wenn Taste XYZ gedrückt wird, dann gehe.

Code: Alles auswählen

If KeyboardPushed(#PB_Key_Down)
    BackY+1 
EndIf
So, jetzt geht der gedanke noch weiter:
Du möchtest, wenn die Taste nicht gedrückt wird, das er zur ausgangsposition zurück kehrt. Also Wenn Taste XYZ nicht gedrückt wird, dann gehe auf Position ABC. Da du schon abfragst, ob die Taste gedrückt wird, brauchst du nur noch einen Sonst-Teil einfügen, das :wink: ... die ausgangsposition ist Y = 0 ... also setzt du dann in dem Else-Teil die Variable

Code: Alles auswählen

BackY = 0

OK?

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
Reever
Beiträge: 29
Registriert: 13.08.2005 21:36
Wohnort: NRW

Beitrag von Reever »

Was macht GetTickCount_ genau bzw von wo holt es sich denn die Zeit?
Ist das derselbe Befehl wie ElapsedMilliSeconds nur mit einer WinAPI? :o
Das Wort eines Menschen wiegt nichts in den Augen eines Narrs
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

jo, das ist es :wink:

wie gesagt, alle codes (glaube ich) von pb mit dem WINDOWS compiler nutzen die api :wink:

dh. elapsedmilliseconds IST GetTickCount :allright:
-.-"
Benutzeravatar
Reever
Beiträge: 29
Registriert: 13.08.2005 21:36
Wohnort: NRW

Beitrag von Reever »

Gehört eigentlich, mit hier rein auch wenns was ganz anderes ist. :mrgreen:
Ich hab versucht, dass mal mit einer Linked List zu machen, dass aufeineanderfolgen der Sprites, hat aber nicht so hingehauen, das Programm sagt jedesmal Sprite not initialised, bei dem jeweils zweiten DisplaySprite Befehl,also bei DisplaySprite(1,...), bei DisplaySprite(0,...) sagt er gar nichts,
also kann das nur an der Animation, also der Abfolge liegen

Code: Alles auswählen

Structure Maus

LaufendeMaus.l

EndStructure 


NewList Maus.Maus()

AddElement(Maus())
 Maus()\LaufendeMaus=DisplaySprite(0,BackX,100)
 
AddElement(Maus())
 Maus()\LaufendeMaus=DisplaySprite(1,BackX,100)

AddElement(Maus())
 Maus()\LaufendeMaus=DisplaySprite(2,BackX,100)


If MouseX()+1

   ResetList(Maus())
   
   While NextElement(Maus())
          Maus()\LaufendeMaus
          
   Wend
   
  If NextElement(Maus())=0
   
   ResetList(Maus()) 
   
   
   EndIf 
  
   EndIf 


also das Sprite soll animiert werden, wenn sich die Maus nach Rechts bewegt. Kann mir da einer helfen? Oder stimmt was nicht mit der Definition der Liste? Habe immer noch 3.30 :cry:

Edit by Kiffi: Code-Tags gesetzt
Das Wort eines Menschen wiegt nichts in den Augen eines Narrs
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

hm ...
1. Wäre es vorteilhaft einen lauffähigen Code zu bekommen, das heißt die komplette Repeat-Schleife :wink: ... mindestens :D
2. schreibst du die Ergebnise von DisplaySprite() in die LinkedListe ... was öhm quatsch ist O_o. Zumindest sehe ich eigentlich keinen Sinn darinn, erst recht nicht bei dem, was du vor hast.
3. Du solltest die Ergebnisse von LoadSprite(#PB_Any, ...) in die LinkedListe laden und dann mit DisplaySprite(LinkedListe(), X, Y) anzeigen :wink:

So das sollte reichen, aber wenn solch ein System, dann mach es besser mit Arrays :D

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Antworten