Bewegung

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

valera_rus

BeitragMi, Okt 11, 2006 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja schon verstanden^^ ich probiers jez noch thx

valera_rus

BeitragMi, Okt 11, 2006 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Am da is nochn problem:

Code: [AUSKLAPPEN]
Setbuffer BackBuffer()

d=LoadAnimImage("1.jpg",48,55,0,11)
Repeat
DrawImage d, 50, 50, f

f=f+0.51
If f>10 Then f=0
Flip
Until KeyDown(1)

Ich würde das Bild gerne langsamer abspielen lassen??
f=f+0.51 is zu schnell wenn ich f=f+0.50 mach bewegt sich wider nix^^

DerHase

BeitragMi, Okt 11, 2006 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn Du mit Koma-Zahlen arbeiten möchtest, musst Du Float statt Integer Variablen verwenden. Dazu musst Du hinter das "f" eine # setzen. Also so: f# . Eigentlich reicht es schon beim ersten benützen dieser Variable, das wäre in Deinem Fall:
Code: [AUSKLAPPEN]
DrawImage d, 50, 50, f#

Aber es ist viel übersichtlicher, die Raute hinter jedes f zu setzen. Kuck Dir am besten in der Help den Teil über Variablen an.

Nach dem Flip, solltest Du wahrscheinlich noch ein Cls setzen.
Play Satyr!

valera_rus

BeitragDo, Okt 12, 2006 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok funkt abe noch 2 fragen dann bin ochs^^

1. Wie kann ich dieses aniimage masken? Mit "Maskimage" get nix

2. "If keydown(200)
player_y+1" wie mach ich das wenn ich 200 drücke das aniimage erscheint`


büdde danke!
 

Dreamora

BeitragDo, Okt 12, 2006 19:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch mit maskimage geht es. nur das jpg das falsche format ist, weil jpg überall farbübergänge und kaum reine farben hat.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

$tankY

BeitragFr, Okt 13, 2006 11:30
Antworten mit Zitat
Benutzer-Profile anzeigen
~Edit~
Code: [AUSKLAPPEN]

Setbuffer BackBuffer()

d=LoadAnimImage("1.jpg",48,55,0,11)
FTime = Millisecs() ;<--- Speichert, wie lange der Frame angezeigt wurde/wird

Repeat

Cls ;<----- Muss rein, damit nicht die alten Bilder bleiben

DrawImage d, 50, 50, f

If KeyDown(200) And FTime + 100 < Millisecs() Then; <- wenn Taste gedrückt UND 100ms vergangen, nächster Frame
f=f+1
If f>10 Then f=0
EndIf

Flip
Until KeyDown(1)


Hab jetzt einen Timer eingebaut, der nach x ms (im Code sind es 100ms) den nächsten Frame stellt, WENN man eine Taste drückt. Ist natürlich geschmackssache, ob man nun den Frame als Float angibt, oder mit Timer macht, aber ich denke mit Timer bekommt man es genauer hin.

BladeRunner

Moderator

BeitragFr, Okt 13, 2006 11:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein Code wird nicht funktionieren, da du prüfst ob eine Taste gedrückt wurde und weniger als 100 Millisekunden vergangen sind.
Die Prüfung müsste umgedreht und FTime in der Schleife neu gesetzt werden damit es funzt.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

valera_rus

BeitragFr, Okt 13, 2006 12:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Am lol? Question

BladeRunner

Moderator

BeitragFr, Okt 13, 2006 12:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Was möchtest Du mit dieser extrem konstruktiven Bemerkung zum Ausdruck bringen ?
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

$tankY

BeitragFr, Okt 13, 2006 13:25
Antworten mit Zitat
Benutzer-Profile anzeigen
@BladeRunner:
Hast recht, erst denken, dann schreiben -.-
Muss heißen:
Code: [AUSKLAPPEN]

If KeyDown(200)  Then; <- wenn Taste gedrückt, dann weiterlaufen
   Spieler_x = Spieler_x + 1
   If FTime + 100 < Millisecs() Then ;Damit die Animation alle 100ms läuft
      f=f+1
      If f>10 Then f=0
   EndIf
EndIf

DerHase

BeitragFr, Okt 13, 2006 13:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Eh $stankY, Du meintest doch sicher:
Code: [AUSKLAPPEN]
Graphics 320,240,0,2
SetBuffer BackBuffer()

d=LoadAnimImage("1.jpg",48,55,0,11)

Repeat

   DrawImage d, 50, 50, f

   If KeyDown(200) And FTime  < MilliSecs() -100
      FTime = MilliSecs()
      f=(f+1)  Mod 11
   End If
 
   Flip:Cls

Until KeyDown(1)

Hast Du Deine Codes mal ausprobiert?
Play Satyr!
 

$tankY

BeitragFr, Okt 13, 2006 13:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Man, heut is net mein Tag, hab vergessen am Ende vom If ein FTime = Millisecs() zu setzen -.-
Aber dein Code wäre mein vorletzter Code gewesen, er will ja auch seine Figur bewegen, so würde er immer alle 100 ms sich bewegen.
~Edit~
Oh, hab nicht richtig hingeguckt, hast recht, da steht ja FTime < Millisecs() - 100, aber an meinem is trotzdem nix falsch, mathematisch bewiesen Wink :
FTime + 100 < Millisecs() | - 100
FTime < Millisecs() - 100
Dann wären wir beim Code von DerHase.

valera_rus

BeitragSo, Okt 15, 2006 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn wik dat schreib
Graphics 320,240,0,2
SetBuffer BackBuffer()

d=LoadAnimImage("1.jpg",48,55,0,11)

Repeat

DrawImage d, 50, 50, f

If KeyDown(200) And FTime < MilliSecs() -100
FTime = MilliSecs()
f=(f+1) Mod 11
End If

Flip:Cls

Until KeyDown(1)



workts nich!

Hubsi

BeitragSo, Okt 15, 2006 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
valera_rus hat Folgendes geschrieben:
wenn wik dat schreib

workts nich!

Wenn Du so schreibst versteht Dich auch keiner...

Was genau funktioniert nicht?
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

BladeRunner

Moderator

BeitragSo, Okt 15, 2006 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Valera, ich geb Dir jetzt exakt noch eine (in Zahlen: 1 ) Chance Dich hier vernünftig zu artikulieren. Sollte das nicht geschehen mach ich den Thread dicht.
Benutz bitte ganze Sätze und versuch uns genauer darzustellen woran es hakt. Wir haben nicht deine Sourcedateien, kennen nicht die Ausgabe deines Compilers und verfügen auch nicht über die Fähigkeit zur Hellsicht.
Nicht worken und am lol sind keine Aussagen mit denen man Dir helfen kann.

Also überleg Dir was Du uns mitteilen willst und tu es mit Sorgfalt und in Ruhe.

Oder schweige.
Dazwischenliegendes wird nicht weiter behandelt.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

valera_rus

BeitragDo, Okt 26, 2006 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Also:
Ich (VALERA_RUS) sage das bei mir der Code nicht funktioniert.
Code: [AUSKLAPPEN]
Graphics 320,240,0,2
SetBuffer BackBuffer()

d=LoadAnimImage("1.jpg",48,55,0,11)

Repeat

DrawImage d, 50, 50, f

If KeyDown(200) And FTime < MilliSecs() -100
FTime = MilliSecs()
f=(f+1) Mod 11
End If

Flip
Cls

Until KeyDown(1)



Brauch bitte hilfe!
thx

BladeRunner

Moderator

BeitragDo, Okt 26, 2006 18:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Da du immer noch keine brauchbare Fehlerbeschreibung liefern kannst (wie wäre es mit das und das geht nicht, läuft falsch oder was weiß ich gewesen ?) und Du eigentlich nur exakt Deinen letzten Post wiederholt hast werde ich schliessen.

Du solltest vielleicht mlalernen vernünftig Fragen zu formulieren.

~GESCHLOSSEN~
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Gehe zu Seite Zurück  1, 2

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group