Problem mit Frames
Übersicht

![]() |
JackBetreff: Problem mit Frames |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, ich mal wieder. ![]() Also, mein Code ist folgender: Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() ClsColor 0,0,255 Cls Figur = LoadAnimImage("C:\Bilder\Dino.bmp",35,50,0,8) Global Frame = 1 Global RFrame = 1 Global Nr = 0 MaskImage Figur, 255,255,255 Global Position = 0 Repeat Cls If KeyDown(205) Then Frame = Frame + 1 If Frame > 2 Then Frame = 2 Position = 1 ElseIf KeyDown(203) Then RFrame = RFrame + 1 If RFrame > 2 Then RFrame = 2 Position = 0 ElseIf KeyDown(57) And Position = 0 Then RFrame = 2 RFrame = RFrame + 1 If RFrame > 3 Then RFrame = 3 ElseIf KeyDown(57) And Position = 1 Then Frame = 2 Frame = Frame + 1 If Frame > 3 Then Frame = 3 Else If Position = 0 Then RFrame = 1 Nr = RFrame EndIf If Position = 1 Then Frame = 1 Nr = Frame EndIf EndIf If KeyDown(1) Then Exit DrawImage Figur, 300,210, Nr Flip Forever Cls Text 100,100,"Tschau" WaitKey Kein Syntaxfehler. Nur Logikfehler. Einen Fehler hab ich schon gefunden. Mit RFrame. Naja, ist ja nur ein einfaches Beispiel. Kann mir jemand eine Funktion geben, der ich Frames übergebe, die dann hintereinander angezeigt geben ![]() ![]() |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
- Zuletzt bearbeitet von Jack am Sa, Jun 25, 2005 11:02, insgesamt 2-mal bearbeitet
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Könntest du evtl. dein Problem etwas genauer ausführen ? | ||
![]() |
Jack |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, starte ich das Programm, ist blauer Hintergrund, die Figur steht in der Mitte und lässt sich nicht bewegen ![]() ![]() |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
- Zuletzt bearbeitet von Jack am Fr, Jun 24, 2005 14:26, insgesamt einmal bearbeitet
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da du dein Problem anscheinend nicht selber lösen möchtest, lege ich dir die Suchfunktion dieses Forums ans Herz ![]() Kann dir sonst nicht helfen, da ich auf der Arbeit bin und kein BB zur Hand habe. Außerdem solltest du diese Funkionen lieber selbst ausklügeln, denn so lernst du es am besten. ![]() greetz |
||
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
komisch dennerlein, als ich neulich empfahl für das frame-anzeige problem eine funktion zu schreiben warst du wieder trotzig meintest sogar mich bei moderatoren anschwärzen lasen zu müssen ... und auf einmal bittest du sogar jetzt hier öffentlich um so ne funktion? gehts noch?
aber ich wäre ja nich der liebe nette alfadur wenn ich dir nicht helfen würde. also lass das mit rframe und frame und speichere alle hintereinander in aufsteigender reihenfolge, bei angenommen 5 frames in jede richtung setzt du dann den startframe bei tastendruck auf oben zb auf 0 und zählst von dort 5 frames, bei nach links setzt du startframe auf 5 und zählst 5, andere taste auf 10 und noch andere auf 15... dann noch ein counter der kontinuierlich nach oben zählt und fertig ist... und denk doch einfach mal selber nach. das macht auch spaß... |
||
A Cray is the only computer that runs an endless loop in less than four hours. |
![]() |
Jack |
![]() Antworten mit Zitat ![]() |
---|---|---|
@d:bug
von nicht wollen kann gar keine rede sein. ![]() @alfadur danke, ich guck mal nach ![]() |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
- Zuletzt bearbeitet von Jack am Fr, Jun 24, 2005 14:26, insgesamt einmal bearbeitet
![]() |
Jack |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, ich hab jetzt zwei Funktionen:
Code: [AUSKLAPPEN] Function SETFRAMERECHTS(ErsterFrame,LetzterFrame)
For I = ErsterFrame To LetzterFrame Step -1 If KeyDown(205) Then FigurX = FigurX + 20 Scroll = Scroll + 20 Nr = I Delay 150 EndIf Next End Function Function SETFRAMELINKS(ErsterFrame,LetzterFrame) For X = ErsterFrame To LetzterFrame If KeyDown(203) Then FigurX = FigurX - 20 Scroll = Scroll - 20 Nr = X Delay 150 EndIf Next End Function Naja, das Gleiche wie vorher ![]() |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
- Zuletzt bearbeitet von Jack am Fr, Jun 24, 2005 14:27, insgesamt einmal bearbeitet
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
völliger blödsinn...
global frame funktion draw_spieler(laufen,startframe) wenn laufen=true dann wenn frame>4 dann frame=0 ansonsten frame=frame+1 ansonsten frame=0 ende wenn drawimage image,x,y,startframe+frame ende funktion while wenn taste-oben: laufen=true: sframe=0 else laufen=false: wenn taste-unten: laufen=true: sframe=5 else laufen=false wenn taste-links: laufen=true: sframe=10 else laufen=false wenn taste-rechts: laufen=true: sframe=15 else laufen=false draw_spieler(laufen,sframe) wend so ungefähr. nur konvertieren in basic.... |
||
A Cray is the only computer that runs an endless loop in less than four hours. |
![]() |
Jack |
![]() Antworten mit Zitat ![]() |
---|---|---|
also, alfadur, jetzt erscheint immer "Image does not exist", aber der Pfad stimmt 100%ig. hier ist mein
Code: [AUSKLAPPEN] Global frame
Function drawspieler(laufen,startframe) If laufen=True Then If frame>4 Then frame=0 Else frame=frame+1 Else frame=0 EndIf DrawImage Figur, 100,200, startframe + frame End Function Graphics 640,480 SetBuffer BackBuffer() ClsColor 0,0,255 Cls Figur = LoadAnimImage("C:\Bilder\Dino.bmp",35,50,0,8) MaskImage Figur, 255,255,255 Repeat Cls drawspieler 0,3 If KeyDown(1) Then Exit Delay 150 Flip Forever Cls Text 100,100,"Tschau" WaitKey was stimmt hier nicht ![]() ![]() ![]() |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
- Zuletzt bearbeitet von Jack am Fr, Jun 24, 2005 14:27, insgesamt einmal bearbeitet
Apocalyptic |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie wärs mit BlitzBasic: [AUSKLAPPEN] Global Figur? Und zu dem Pseudocode von Alfadur: So wäre es besser: laufen=false wenn taste-oben: laufen=true: sframe=0 wenn taste-unten: laufen=true: sframe=5 wenn taste-links: laufen=true: sframe=10 wenn taste-rechts: laufen=true: sframe=15 Sonst müsste man die letzte Taste immer drücken, damit "laufen" nicht False ist. Die andere Möglichkeit wäre ElseIf. Ich erwähne das nur, um eventuellen Komplikationen vorzubeugen ![]() |
||
Suum cuique
[ www.ffs-net.de.vu ] [ Raycaster ] |
![]() |
Jack |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, mein Code sieht jetzt so aus:
Code: [AUSKLAPPEN] Global frame
Global laufen = False Global sframe = False Function drawspieler(laufen,sframe) If KeyDown(200) Then laufen=True sframe=0 ElseIf KeyDown(208) Then laufen=True sframe=5 ElseIf KeyDown(203) Then laufen=True sframe=10 ElseIf KeyDown(205) Then laufen=True sframe=15 EndIf DrawImage Figur, 100,200, sframe + frame End Function Graphics 640,480 SetBuffer BackBuffer() ClsColor 0,0,255 Cls Global Figur = LoadAnimImage("C:\Bilder\Dino.bmp",35,50,0,8) MaskImage Figur, 255,255,255 Repeat Cls drawspieler 0,3 If KeyDown(1) Then Exit Delay 150 Flip Forever Cls Text 100,100,"Tschau" WaitKey Aber er geht immer noch nicht. Es liegt daran, dass Apocalyptic den SFrame über 8 bzw. 7 getan hat. Deshalb steht immer diese Fehlermeldung da: "Image frame out of range". Das Debug-Menü zeigt diese Dinge: Globals frame = 0 laufen = 0 sframe = 0 figur = 12087736 Locals drawspieler laufen = 1 sframe = 15 Bei KeyDown(205). Kann mir jemand helfen ![]() ![]() ![]() ![]() ![]() ![]() |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
- Zuletzt bearbeitet von Jack am Fr, Jun 24, 2005 14:27, insgesamt einmal bearbeitet
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, sollte wohl bei Keydown(203) auch passieren. du lädst doch nur ein AnimImage mit 9 Frames, woher willst du dann frame 15 bekommen ?
oh , jetzt hab ichs gesehen... hast da eine variable vertauscht Code: [AUSKLAPPEN] Function drawspieler(laufen,sframe) If KeyDown(200) Then laufen=True frame=0 ElseIf KeyDown(208) Then laufen=True frame=5 ElseIf KeyDown(203) Then laufen=True frame=10 ElseIf KeyDown(205) Then laufen=True frame=15 EndIf DrawImage Figur, 100,200, sframe + frame End Function aber trotzdem werden diese beiden : Code: [AUSKLAPPEN] ElseIf KeyDown(203) Then
laufen=True frame=10 ElseIf KeyDown(205) Then laufen=True frame=15 nicht funktionieren, da du nur frame 0-8 zur verfügung hast... greetz |
||
![]() |
Jack |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber wie soll ich es jetzt machen ![]() |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
- Zuletzt bearbeitet von Jack am Fr, Jun 24, 2005 14:28, insgesamt einmal bearbeitet
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
omg,
check erst mal wieviele frames dieser dino nun wirklich hat... am besten du stellst ihn hier mal aus, damit ich das image mal sehen kann laut deiner funktion müßte der nun 18 frames haben. sollte dem so sein, dann muß du auch 18 frames laden... Code: [AUSKLAPPEN] Global Figur = LoadAnimImage("C:\Bilder\Dino.bmp",35,50,0,18)
aber um das genau zu sagen brauch ich das bild !!! greetz |
||
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
außerdem vermisst man bei dir immernoch das
wenn frame>4 dann frame=0 ansonsten frame=frame+1 von alleine animiert sich da nämlich nix. und die tastaturabfrage soll nich mit in die funktion... @apocalyptic : stimmt mit dem false, aber wie er es umsetzt ist ja seine sache, war ja nur pseudocode .-) |
||
A Cray is the only computer that runs an endless loop in less than four hours. |
Apocalyptic |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Alfadur hat Folgendes geschrieben: @apocalyptic : stimmt mit dem false, aber wie er es umsetzt ist ja seine sache, war ja nur pseudocode .-)
Ich wollte nur verhindern, dass gleich wieder ein "Hilfe, das geht nicht!"-Post kommt... Hat wohl nicht geholfen ![]() @ Dennerlein: Lies die Onlinehilfe, das ein oder andere Tutorial und denk nach. Am Ende sollte das Ganze so in etwa aussehen (SO sollte es eigentlich nicht aussehen. Das liegt daran, dass ich deinen Code nur ergänzt habe... ![]() Global frame Warum ich das hier poste weiß ich auch nicht, der Lerneffekt beim Kopieren von Code nähert sich 0... da du mit "fremdem" Code jedoch scheinbar nichts anfangen kannst (s.o.), ist das wahrscheinlich sowieso egal... |
||
Suum cuique
[ www.ffs-net.de.vu ] [ Raycaster ] |
![]() |
Jack |
![]() Antworten mit Zitat ![]() |
---|---|---|
Juhu, danke @all und vor allem an Apocalyptic ![]() ![]() P.S: Das "und oben" in den Klammern, hab ich in Klammern geschrieben, weil ich das nur beim Springen brauche. ![]() ![]() ![]() |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
- Zuletzt bearbeitet von Jack am Fr, Jun 24, 2005 14:28, insgesamt einmal bearbeitet
![]() |
Jack |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, hier mein neues Programm:
Code: [AUSKLAPPEN] Global frame
Global laufen = False Global sframe = False Function drawspieler() If KeyDown(203) Then laufen = True sframe = 5 ElseIf KeyDown(205) Then laufen = True sframe = 1 Else laufen = 0 EndIf If laufen = True Then frame = (frame + 1) Mod 2 If sframe > 5 Then sframe = 5 If sframe < 4 Then sframe = 4 If sframe > 1 Then sframe = 1 If sframe < 2 Then sframe = 2 DrawImage Figur, 100,200, sframe + frame End Function Graphics 640,480,16,2 SetBuffer BackBuffer() ClsColor 0,0,255 Cls Global Figur = LoadAnimImage("C:\Bilder\Dino.bmp",35,50,0,8) MaskImage Figur, 255,255,255 Repeat Cls drawspieler If KeyDown(1) Then Exit Delay 150 Flip Forever End Der Code funzt, naja, bis auf eine klitzekleine Kleinigkeit: Wenn ich die linke Pfeiltaste drücke, dann sind das die gleichen Frames, wie bei der rechten. Was kann ich ändern ![]() ![]() ![]() |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
- Zuletzt bearbeitet von Jack am Fr, Jun 24, 2005 14:28, insgesamt einmal bearbeitet
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN]
was haste dir dabei gedacht? |
||
A Cray is the only computer that runs an endless loop in less than four hours. |
![]() |
Jack |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was denn ![]() ![]() ![]() ![]() |
||
Wer kein HTML kann und lernen will, der ist wirklich dumm... MFG Dennerlein |
- Zuletzt bearbeitet von Jack am Fr, Jun 24, 2005 14:29, insgesamt einmal bearbeitet
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group