Blitz Basic Problem

    • Blitz Basic Problem

      So ich hab jetz diesen Code hier:

      Quellcode

      1. Graphics 640,480
      2. Color 0,255,0
      3. Rect 0,0,640,480
      4. arbeiter = LoadImage("C:\Users\Standard\Pictures\spiel\Arbeiter.jpg")
      5. X = 320
      6. Y = 240
      7. DrawImage arbeiter,X,Y
      8. Repeat
      9. Knopf = WaitMouse()
      10. If Knopf = 2 Then
      11. gotoX = MouseX()
      12. gotoY = MouseY()
      13. EndIf
      14. Repeat
      15. If Not X = gotoX Then
      16. If gotoX > X Then
      17. X = X + 1
      18. ElseIf gotoX < X Then
      19. X = X - 1
      20. EndIf
      21. EndIf
      22. If Not Y = gotoY Then
      23. If GotoY > Y Then
      24. Y = Y + 1
      25. ElseIf gotoY < Y Then
      26. Y = Y - 1
      27. EndIf
      28. EndIf
      29. Cls
      30. Color 0,255,0
      31. Rect 0,0,640,480
      32. DrawImage arbeiter,X,Y
      33. Until X = gotoX And Y = gotoY
      34. Until KeyDown(1)
      Alles anzeigen

      Der Arbeiter soll sich Pixel für Pixel zur ausgewählten Stelle bewegen. Er bewegt sich aber nicht Pixel für Pixel sondern taucht einfach an der angeklickten stelle auf.
      Wo liegt das Problem dabei?
      Hoffe mir kann jemand helfen
    • Also, wenn ich den Code seh weiss ich nicht wo ich anfangen soll zu meckern :D


      Hier für dich ein kleines Programm das ich vor 2 Jahren geschrieben habe.

      Zur Steuerung:

      Wähle die Erde mit linker Maustaste aus, darauf kannst du :
      - mit den Pfeiltasten die erde bewegen
      - mit rechtklickt die erste zu einen Punkt bewegen lassen (das wird wohl das sein was du braucht)
      - mit rechter Maustaste auf die erde diese upgraden


      wenn du mit der Erde über den Schalter bist geht die Lampe an.

      Quellcode ist dabei.
      Der Code ist auch Unsauber , aber müsste für deine Zwecke reichen.

      darkmirrorgames.de/Page/Lauf.rar

      Nebenbei findest du auf robsite.de nette Tutorials
    • Also so ganz werd ich aus deinem Code nicht schlau Todesbringer.

      2 Repeatschleifen? Das ist eine zuviel :tongue: Repeat setzt du einmal ein, als deine Hauptschleife. Da packst du alles rein, was du brauchst. Hm, also goto hab ich noch nie benutzt und die meisten Blitzprogramimerer raten davon ab. Wenn dein Code später länger wird, dann wird es schnell unübersichtlich.

      So ganz scheint das alles in deinem Code nicht zu funktionieren. Z.B. wenn ich mit der Maus irgendwo hin klicke, springt das Männchen in die linke obere Ecke. Das Programm kann man auch nicht mit esc beenden (liegt daran, dass du 2 Repeatschleifen hast, die sich beide im Weg stehen). Flimmern tut es auch ein bisschen aber das bekommst du mit Buffern weg. Kennst du Back und Frontbuffer? Setbuffer und Flip solltest du auf jeden Fall einsetzen... die machen die Bewegungen erst richtig flüssig ;) Kein Spiel kommt ohne diesen Baustein aus.

      Edit:
      Also um das Flimmern zu kontrollieren schreib unter "Graphics 640,480" Setbuffer Backbuffer() und über "Until X = gotoX And Y = gotoY" Flip reinschreiben.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Mojo ()