Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Spielfigur zum stehen bringen (https://www.delphipraxis.net/89848-spielfigur-zum-stehen-bringen.html)

schrimm 6. Apr 2007 20:08


Spielfigur zum stehen bringen
 
So ich hab das nächste Problem mit meinem vielleicht irgendwann mal spiel:
Delphi-Quellcode:
//im Timer:
if getasynckeystate(VK_right)<>0 then
       begin
        label1.caption:=inttostr(c);//c ist die Zählvariable für die Einzelbilder
        r:='e';
        Twait.enabled:=false;//nach 10 sec nix tun kommt dan ne andere animation, tut nix zur sache
           Iigor.Canvas.Draw(-1*(c*96), 0, BmpIwalk_e);
           Iigor.left:=Iigor.left+5;
           if c>=7 then //wenn de einzelbilder durch sind von vorne, wenn ni dann c+1
            begin c:=0;end
           else begin inc(c); end;
       end;//getasynckeystate
//FormKeyUp:
 case r of
  'e':Iigor.Canvas.Draw(0, 0, BmpIstop_e);//Standbild //je nach richtung dann das entsprechende standbild
 end;
das funktioniert ja schon ganz gut, aber manchmal nimmt der das Standbild nicht, sondern es bleibt einfach das aktuelle Animationsbild stehen, das passiert immer, wenn im Timer c auf 0 ist.
Wo ist der Fehler?

dino 6. Apr 2007 23:15

Re: Spielfigur zum stehen bringen
 
ich hab da nicht viel ahnugn von, aber wenn ich mir das so angucke, dann würde ich sagen, dass wen du mit c die durchläufe zählst, dass du dann auch am Anfang c:=0 machen solltest

was ändert sich dadurch? vielleicht kriegen wirs moch gelöst

schrimm 7. Apr 2007 09:14

Re: Spielfigur zum stehen bringen
 
das ist ne gute idee, hatte ich aber schon in Oncreate mit drin.
Also wie gesagt: Das Laufen der Figur funktioniert, nur beim stehen bleiben kommt nicht immer das richtige Bild

dino 7. Apr 2007 11:25

Re: Spielfigur zum stehen bringen
 
eins verstehe ich nicht: Iigor.Canvas.Draw(-1*(c*96), 0, BmpIwalk_e);

für c=6 wird das Bild 576 Pixel links vom linken Rand der Canvas gemalt
ist das Richtig?
hast du auch eine andere Richtung statt e?(die zwar für r mal eingeschrieben wird, wo aber kein Bild gezeichnet wird)
Ist es richitg, dass das Standbild immer an der selben Stelle gemalt wird?

schrimm 7. Apr 2007 15:23

Re: Spielfigur zum stehen bringen
 
Zitat:

Zitat von dino
eins verstehe ich nicht: Iigor.Canvas.Draw(-1*(c*96), 0, BmpIwalk_e);

für c=6 wird das Bild 576 Pixel links vom linken Rand der Canvas gemalt
ist das Richtig?

jo, ich habe Bmp's, wo von links nach rechts die Animationsbilder drin sind.
Zitat:

Zitat von dino
hast du auch eine andere Richtung statt e?(die zwar für r mal eingeschrieben wird, wo aber kein Bild gezeichnet wird)

jo, hab noch andere richtungen, wollte nur erstmal mit einer Richtung alles haben, bevor ich die anderen nach der gleichen variante einfüge (e=east, also bewegt der sich nach rechts, n wäre dann oben, ...)
Zitat:

Zitat von dino
Ist es richitg, dass das Standbild immer an der selben Stelle gemalt wird?

Nein, das Standbild wird in das gleiche TImage, wie die animation gezeichnet, von der convas her istd as ja nur 1 bild und wird innerhalb des image immer an die gleiche stelle gemalt.
Mein prob ist nur, dass der aus irgendwelchen gründen dieses Standbild nicht immer zeichnet, habe auch noch nicht rausgefunden, wann der das macht und wann ni, weiß bloß dass es für mich keine wirkliche Logik gibt

schrimm 7. Apr 2007 18:01

Re: Spielfigur zum stehen bringen
 
Ich habe eine Lösung gefunden!
eigentlich unlogisch, aber es funzt:
Ich lese die Tasten ja im Timer ein, da hab ich onkeyup den timer ausgeschalten und onkeydown wieder an, dann geht alles (hoffenltich) :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz