Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Florian Super JLI'ler
Alter: 36 Anmeldedatum: 20.06.2003 Beiträge: 302
Medaillen: Keine
|
Verfasst am: 26.08.2003, 08:25 Titel: Animation Problem |
|
|
Hallo erst mal.
Ich habe ein Problem mit meiner animation.Ich habe eine Texture erstellt die alle animations
Bilder enthält jetzt wollte ich eine Funktion Progen die die passenden Rect ausschneidet.Aber
da gibt es glaube ich mal ein Problem.
Mein code:
r.bottom = animheight * action;
r.right = r.right + animwidth;
if(r.right == texwidth)
{
r.right = animwidth;
}
r.left = r.right - animwidth;
r.top = r.bottom - animheight;
if(r.bottom == texheight)
{
r.bottom = animheight;
}
Variablen Beschreibung:
animheight = ist die höhe eines AnimationsBildes inerhalb der Textur
animwidth = ist die breite eines AnimationsBildes inerhalb der Textur
texwidth = ist die breite der gesamten Textur
texheight = ist die höhe der gesamten Textur
action = Die zeilennummer der Animation
r = wird dann in der Draw Funktion Übergeben
Die Werte texwidth und texheight habe ich mit der D3dXGetImageInfo funktion übergen und die
anderen Werte habe ich berrechnet
Danke im Voraus |
|
Nach oben |
|
|
Daxtor Mini JLI'ler
Anmeldedatum: 17.09.2002 Beiträge: 32 Wohnort: Torgau Medaillen: Keine
|
Verfasst am: 26.08.2003, 09:24 Titel: |
|
|
Hi,
sehe ich dass richtig, dass deine Animationsbilder in einer Spalte angeordnet sind und dass das Rechteck sich also nur nach unten verschieben soll?
Dafür würde ich eine Schleife nutzen:
Code: |
RECT r;
for(int i=1; LastPicture==action; i++)
{
r.bottom += action * animheight;
r.top = i * animheight;
r.left = 0;
r.right = animwidth;
action++;
...
}
|
Hinweis: Ich bin jetzt davon ausgeganden, dass das erste Animationsbild die Zeilennummer (action) = 0 ist.
cu Daxtor
P.S.: Ich habe das jetzt nur kurz aufgeführt, ich bin mir nicht sicher ob der Code richtig ist _________________ Was kannst Du erwarten wenn Du "Weichware" von einer Firma namens "Winzigweich" kaufst? Also, dann bist du doch mit Software von Microsoft noch gut dran... |
|
Nach oben |
|
|
Chewie Super JLI'ler
Anmeldedatum: 17.07.2003 Beiträge: 382
Medaillen: Keine
|
Verfasst am: 26.08.2003, 09:45 Titel: |
|
|
ein Problem liegt glaub ich da:
Code: |
if(r.bottom == texheight)
{
r.bottom = animheight;
} |
damit setzt du r.bottom jedesmal falsch, wenn du in die letzte Zeile der Textur kommst.
Aber Debug mal durch, da fallen einem falsche Werte ziemlich schnell auf... |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 26.08.2003, 18:21 Titel: |
|
|
Ist das was du da vorhast nicht ziemlich uneffektiv,d a du die maximalen grössen der Texturen nicht voll ausnutzt. Wenn deine Textur zu gross wird kann es zu Anzeigefehlern kommen (nicht unbedingt bei dir aber bei anderen Rechnern mit anderen Grafikkarten). |
|
Nach oben |
|
|
|