Antwort schreiben  Thema schreiben 
Verfasser Nachricht
DoubleDD_aka_domis4
Durchstarter
**


Beiträge: 62
Gruppe: User
Registriert seit: Sep 2011

Status: Offline
Danke erhalten: 8
Beitrag: #1
xPSP  [C] png Animation

Hai Big Grin

ich habe derzeit 2 probleme in C.

ich versuche eine png animation abzuspielen (bestehend aus 4 png dateien)
beim gehen wird: walkframe += 1;
benutzt. Bisher hatte ich eine if abfrage, die eine Menge abfrägt^^ großer quatsch.

ich hätte einen Lösungsweg im auge:

Code:
int i;
if (dir == 1) {blitAlphaImageToScreen(0,0,16,20,PlayerUp +string(i),x,y);}


beim gehen i+=1;
und:

Code:
            if (walkframe == 4) {
                walkframe = 1;


leider funktioniert das natürlich nicht so^^ wie könnte ich das lösen?



und zu 2: die Animation läuft viel zu schnell. Deshalb will ich sie ein wenig langsamer abspielen lassen. Gibt es dafür eine Möglichkeit?^^

lg, domis4

03.03.2012 19:08
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neutrosider
Developer
*


Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 2325
Beitrag: #2
xPSP  RE: [C] png Animation

vor diesen problemen stand ich auch schon.
dein zweites problem ist recht einfach zu lösen. du musst einfach jeden frame in ner if-schleife ne zahl durchzählen, und immer wenn die zahl nen bestimmten wert hat wird sie zurückgesetzt und die animation wird einmal ausgeführt, etwa so:

PHP-Code:
...
int main(){
int substate=0;
...
while(
1){
substate++;
if(
substate==4){
substate=0;
*
CODE-FÜR-DIE-ANIMATION*
}
...


bei der Laufanimation bleibt dir nicht viel anderes übrig, als jedes bild der animation in nem switch anzeigen zu lassen. Ich hab has z.B. so gemacht, dass alle 12 Bilder der animationen bei mir (3 bilder, 4 richtungen, daher 12) in einem array geladen sind. Dieses Array ist in einer Struktur gespeichert, welche bei mir alle mögliche informationen über figuren enthält. zusätzlich hab ich noch integer mit dem namen state und substate in der struktur gespeichert. und dann hab ich ne methode gebaut, die errechnet welche figur im kommenden frame wo ist und vorallem, mit welchem bild. die methode habe ich thinkfigur genannt und ihr wird beim aufruf die adresse zu einer Struktur vom typ player gegeben (so heisst die struktur die die infos wie die bilde rund so enthält). Diese methode sieht bei mir so aus:
http://pastebin.com/DWcAZvTz
(stör dich erstmal nicht an dem bisschen kollisionsberechnung dass da noch drin ist^^)
diese variablen sind bei dem code wichtig:

  • state: animationsstatus, ist immer zwischen inklusive 1 und 4 (4 frames pro schrittanimation)
  • substate: diese am anfang erwähnte hochzählvariable, damit die animation nicht zu schnell abläuft
  • ani: 0, wenn die animation aus ist, 1 wenn sie läuft.
  • faceing: die richtung in die die figur guckt (zwischen 1 und 4)
  • speed: die animationsgeschwindigkeit (und damit auch die figurgeschwindigkeit)
  • bildnummer: die position von dem Bild in dem array mit allen animationsframes
  • y: figur y-position
  • posby: mein spiel basiert auf 32*32 pixel kacheln. posby enthält die y-koordinate der figur, aber in kacheln nicht in pixeln. sollte immer 1/32 von y sein
  • x: figur x-position
  • posbx: posbx enthält die x-koordinate der figur, aber in kacheln nicht in pixeln. sollte immer 1/32 von x sein


mensch, jetzt hab ich lust wieder n bisschen was zu coden, doof nur dass ich mein psp kabel dafür raussuchen müsste ^^
dann könnte ich mal wieder n aktuelles video davon machen Tongue





GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)

Dieser Beitrag wurde zuletzt bearbeitet: 03.03.2012 19:57 von Neutrosider.

03.03.2012 19:45
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
DoubleDD_aka_domis4 (Mar-3-2012)
DoubleDD_aka_domis4
Durchstarter
**


Beiträge: 62
Gruppe: User
Registriert seit: Sep 2011

Status: Offline
Danke erhalten: 8
Beitrag: #3
xPSP  RE: [C] png Animation

danke, das hat perfekt funktioniert Tongue

ich habe ein paar deiner Videos auf Yotube gesehen, sieht eigentlich sehr robust aus Smile

Vor ein paar Tagen habe ich eine Frage zum Grid erstellt, wie man denn den Player in einem Grid halten kann. Leider hat sich keiner gemeldet^^ vl magst du mir ja helfen.

03.03.2012 21:21
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neutrosider
Developer
*


Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 2325
Beitrag: #4
xPSP  RE: [C] png Animation

das trifft sich gut. Die funktion die ich gepostet hab zeigt ja die methode die bei mir die bewegung der figuren berechnet und die bilder bestimmt. Und mein spiel basiert ja ebenfalls auf einer Rasterbewegung, und auch diese Rasterbewegung ist in der von mir geposteten Funktion allerdings habe ich, damit die bewegung viel flüssiger aussieht, keine wirklichen pausen zwischen den einzelnen animationsbildern, sondern die figur bewegt sich bei mir 8 pixel in die gegeben richtung, ohne das bild zu ändern, dann wird das bild geändert und er geht weitere 8 pixel usw. hört sich erst doof an, lässt die laufanimation aber viel flüssiger und besser aussehen!
Gehen wir mal einen Schritt einer Figur nach rechts durch. wir haben dann diese variablen definiert (vor dem schritt, btw. am schrittanfang):

  • state: 2 (das 2. bild der animation, das erste und letzte (1 und 4) ist stehen)
  • substate: 0 (hochzählvariable zur geschw.-kontrolle)
  • ani: 1 (=Animation gestartet)
  • faceing: 2 (figur guckt/läuft nach rechts)
  • speed: 4
  • bildnummer: 4 (siehe bild, nummern sind von 0 bis 11)
  • y: 64
  • posby: 2 (ich setze den einfach mal auf 2|2)
  • x: 64
  • posbx: 2
Das ist das Bild:

ok. Folgendes Passiert in der methode in den jeweiligen Frames (nach jedem Frame wird halt der bildschirm gezeichnet):
Spoiler: (anzeigen)
er ist also einen block (32 pixel) nach rechts gegangen, mit animation ^^
ich bin dafür einfach nur frame für frame die methode furchgegangen und habe alle codezeilen die ausgeführt werden aufgeschrieben und dahinter in klammern welchen wert sie auf was gesetzt haben.





GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)

Dieser Beitrag wurde zuletzt bearbeitet: 03.03.2012 22:23 von Neutrosider.

03.03.2012 22:20
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
DoubleDD_aka_domis4 (Mar-4-2012)
DoubleDD_aka_domis4
Durchstarter
**


Beiträge: 62
Gruppe: User
Registriert seit: Sep 2011

Status: Offline
Danke erhalten: 8
Beitrag: #5
xPSP  RE: [C] png Animation

Zuerst: Tausend Dank für diesen Ansatz.
Ich habe es jetzt so gelöst:

http://pastebin.com/faTHLL94

funktioniert prima, mit der Hilfe eines Kumpels^^
wenn ich aber 2 Tasten drücke, rennt er unaufhaltbar in die zuletzt gedrückte Richtung.

Dieser Beitrag wurde zuletzt bearbeitet: 04.03.2012 20:20 von DoubleDD_aka_domis4.

04.03.2012 20:14
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
duLouser
Halbprofi
***


Beiträge: 138
Gruppe: User
Registriert seit: Sep 2011

Status: Offline
Danke erhalten: 49
Beitrag: #6
RE: [C] png Animation

tja, das nennt man einen bug. Den solltes du fixen ^^


Das Leben ist ein scheiß Spiel, aber die Grafik ist Geil!!!


Blade! 0.7
04.03.2012 20:51
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xPSP [Lua] Sprung Animation Italia-boy 13 2.605 04.03.2012 16:29
Letzter Beitrag: Italia-boy
xPSP Lua animation mit 1 bild möglich? secret 11 3.309 08.08.2011 13:13
Letzter Beitrag: secret
xPSP Lua Figur animation secret 0 824 23.07.2011 15:27
Letzter Beitrag: secret
xPSP Lua Animation Problem Noir 1 1.532 23.02.2011 09:58
Letzter Beitrag: Noir

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang