gelöst : Mehrere keydown+entsprechende Animationen zuordnen
Übersicht

![]() |
BaseTH |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Prog,
Du solltest dir unbedingt den bereits von Xeres genannten LoadAnimImage ![]() Dieses hat für dich folgende Vorteile: - weniger Schreibarbeit - dadurch auch mehr Übersicht im Quellcode Der Maskimage ![]() Der Vorteil hier ist: - Du musst nur noch eine Bilddatei laden - Die Maskierung per Maskimage ![]() Zu der Frage: Zitat: wie meist du das mit:
- Je mehr Frames du hast desto kleiner müssen die Aktualisierungabstände deiner Werte werden. Bei 10 Frames z.B. X = X + 4 Bei 20 Frames z.B. X = X + 2 Wenn du durch deinen Timer z.B. 10 Frames hast und dein X-Wert sich pro Schleifendurchlauf um 4 erhöht dann verändert sich der ursprüngliche X-Wert in einer Sekunde um 40 Einheiten denn 10 * 4 = 40. Wenn du nun aber nicht mehr 10 Frames sondern 20 Frames hast dann verändert sich dein X-Wert um 80 Einheiten in einer Sekunde denn 20 * 4 = 80. Damit du nun die selbe Veränderung des X-Wertes bei der höheren Framezahl erziehlst musst du die Vergrößerung des Wertes nach unten korregieren. Da wir nicht 80 Einheiten wollen sondern nur 40 müssen wir nicht X = X + 4 rechnen sondern nur noch X = X + 2 denn 20 * 2 ergibt 40. ![]() Gruß, BaseTH |
||
Prog |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da bin ich wieder ![]() @Xeres der Beitrag war cool ![]() @BaseTH sind die Aktualisierung abstände jetzt besser ![]() habe alles mal zusammen gebastelt :S aber wenn ich zwei tasten auf ein male drücke dann verdoppelt sich die Figur O.o ist das normal? , ich hänge euch das Programm mit Bilder an :S es funktionieren nur die UP, UP+L und UP+ R BlitzBasic: [AUSKLAPPEN]
https://www.blitzforum.de/upload/file.php?id=11155 Edit: ok, ich versuche es mal ![]() |
||
- Zuletzt bearbeitet von Prog am Sa, Nov 19, 2011 0:56, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein lauffähiges Programm ist nett, aber ein Blick auf den Code geht schneller...
Du zeichnest in jedem Fall ein Bild, wenn man hoch drück - wenn man Rechts/Links drückt, wird ein zweites Bild über das erste gezeichnet. Alles in ein ElseIf ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
BaseTH |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Prog,
Ich kann dann Programm so leider nicht testen da ich selber nur mit BlitzMax programmiere. Das mit der doppelten Anzeige beim drücken zweier Tasten im selben Moment passiert da du jeweils einen Drawbefehl in der If Bedingung hast. BlitzBasic: [AUSKLAPPEN]
Das Problem sollte z.B. so lösbar sein. BlitzBasic: [AUSKLAPPEN]
Jetzt wird die If-Bedingung für die linke Pfeiltaste nur durchgeführt wenn die rechte Pfeiltaste nicht gedrückt wird. Für die If-Bedingung der rechten Pfeiltaste ist das Prinzip gleich. ![]() Hoffe du kannst damit etwas anfangen. Optimalerweise speicherst du in einer Variablen welche Imagedatei gezeichnet werden soll und hast dann später außerhalb der Keydown-Bedingungen einen Bereich indem du die Grafik die gezeichnet werden soll per If-Bedingung steuerst. Gruß, BaseTH ************************************ Ich habe hier gemütlich noch geschrieben und Xeres war schneller ![]() Gruß, BaseTH |
||
Prog |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo alle beisammen ![]() ich habe mal nachgedacht über Xeres und BaseTH Tipp, ich habe versucht die schräg-lauf Animation , die halt mit zwei tasten druck aktiviert werden, in eine while schleife gepackt und ich muss sagen das hat geholfen aber...... wenn ich nun in die schleife gerate schießt die Prozessor Benutzung auf 60% <.< leider, ich habe auch in der schleife ein frametimer eingebaut damit die Animation nicht so schnell wiederholt wird (selbst Mord?) aber ich glaube das die schleife zu schnell ausgeführt wird :/ kann man sie nicht verlangsamen? BlitzBasic: [AUSKLAPPEN]
|
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, Schleifen sind keine Lösung. Das ganze Programm muss Ablaufen, sonst hast du noch größere Probleme.
Was du tun musst, ist nur 1x Drawimage in dem If-Block auf zu rufen. Das Flip gehört nicht in diesen Block, das muss immer aufgerufen werden. Deine (gekürzte) variante: BlitzBasic: [AUSKLAPPEN] If KeyDown(200) Then ;UP Erst wir immer lauft_n gezeichnet, dann wird entschieden, ob R und L gedrückt werden - alles unabhängig voneinander: wenn man alle 3 Tasten drückt, werden alle 3 Bilder gezeichnet. Mit ElseIf: BlitzBasic: [AUSKLAPPEN] If KeyDown(200) And KeyDown(205) Then ;UP + RAus diesem einen Block kann nur eine Möglichkeit ausgewählt werden. Wenn man alle 3 Tasten drückt, bekommt die erste Variante den Vorzug. Ich hoffe, du siehst den Unterschied. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Prog |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke Xeres, habe ziemlich viel ausprobiert, beobachtet und getestet =D dank euch
und ja ich sehe den unterschied „jetzt“ ![]() werde den Beitrag umbenennen falls das geht und biss zum nächsten mal Gruß Prog ![]() |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
schau dir doch mal mein timer tutorial an. es passt genau zu deinen fragen:
https://www.blitzforum.de/foru...hp?t=34436 |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group