Objekt gleichmäßig bewegen
Übersicht

![]() |
KnorxThieusBetreff: Objekt gleichmäßig bewegen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
wenn ich ein Objekt (einen Text) über den Bildschirm bewege, bewegt es sich schneller, wenn das rechte Ende den Rand berührt, weil dann doch weniger berechnet werden muss? Kann ich das einfach durch einen Timer ausgleichen, oder lieber berechnen, wieviel schon verdeckt ist? Für Letzteres, würde diese Berechnung es tun? BlitzBasic: [AUSKLAPPEN] graphics_width = 800(im original hatte ich viele viele texte auf einmal, da war das heftiger zu spüren) das scheint aber trotzdem noch nicht richtig zu laufen. Also wie ist es am elegantestem? Bitte helft mir! MfG, KnorxThieus |
||
- Zuletzt bearbeitet von KnorxThieus am Do, Feb 06, 2014 19:21, insgesamt 2-mal bearbeitet
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast Du denn schonmal ausprobiert ob es schneller läuft? | ||
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 |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: bewegt es sich schneller, wenn das rechte Ende den Rand berührt, weil dann doch weniger berechnet werden muss? Hast du festgestellt, dass das so ist, oder ist das die Frage? Nein, nicht wenn man es richtig macht, würde ich sagen. Ohne Flip(0) und Timer rennt die Schleife sowieso mit tausend FPS die alle nicht angezeigt werden können - kein Wunder, wenn dann alles ungleichmäßig läuft.
|
||
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) |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die einfachste Möglichkeit gleichmäßige Geschwindigkeiten in ein Spiel zu bringen ist, einen Timer takten zu lassen:
BlitzBasic: [AUSKLAPPEN] graphics_width = 800 Über die Variable speed# (als Float) und x# ebenfalls als Float kannst du dann mit Nachkommastellen ziemlich genau die gewünschte Geschwindigkeit erzeugen. Sie wird so auf allen Rechner auch genau gleich sein!!! |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
- Zuletzt bearbeitet von Midimaster am Do, Aug 01, 2013 13:17, insgesamt einmal bearbeitet
![]() |
KnorxThieusBetreff: !Enthält EDIT! |
![]() Antworten mit Zitat ![]() |
---|---|---|
@BladeRunner & Xeres:
Jain, ich glaube es... ich wusste nicht wie man das misst. @Midimaster: Danke. Ich hatte deinen Tutorial auch angelesen, ich war mir aber nicht sicher... denn wenn der "flip"-Befehl Geschwindigkeit kostet, kommt ja im Endeffekt die Wartezeit vom Timer PLUS der vom flippen zusammen! EDIT: Nein, natürlich nicht, habe mich geirrt... timer wartet, bis bestimmte zeit, ab vorherigem tick vorbei ist. Ok. Dann mache ich das so, mit Timer. Ist ja auch Auslastungs-freundlicher. MFG und Danke allen! EDIT: Midimaster, wie ist das mit dem Setbuffer ![]() ![]() ![]() Und wie mache ich das bei FlipCanvas und SetBuffer CanvasBuffer, weil ich das ganze in einem Vollbild-Täusch-Fenster mache? |
||
Version: BlitzPlus / Blitz+ |
- Zuletzt bearbeitet von KnorxThieus am Sa, Aug 10, 2013 21:32, insgesamt einmal bearbeitet
Kruemelator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zu SetBuffer Backbuffer() und Flip 0:
Nötig sind sie nicht, aber sie sorgen dafür dass das Programm auf jedem Rechner und Monitor gleich schnell läuft. Flip oder Flip 1 warten auf den Monitor, hast du einen Monitor mir doppelt so hoher Bildrate läuft der Programm doppelt so schnell ab. Flip 0 wartet nicht sondern zeigt das Bild sofort an (des wegen Waittimer()). SetBuffer Backbuffer() mal erstmal alles im Hintergrund (Backbuffer) und wenn Flip kommt wird es auf dem Monitor dargestellt. Ohne diesen Befehl würde dierekt auf dem Monitor gemalt, das heist die ein Hälfte des Bildes auf dem Monitor ist nach die vom Letzten Bild, erzeugt zerschnittene Bilder. |
||
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aha, Danke! Und - wenn du BlitzPlus hast - wie ist das mit FlipCanvas? Da gibt's nur einen Buffer, den CanvasBuffer![]() ![]() |
||
Version: BlitzPlus / Blitz+ |
![]() |
Lobby |
![]() Antworten mit Zitat ![]() |
---|---|---|
Canvas-Objekte nutzen automatisch einen Backbuffer, der Parameter wert von FlipCanvas![]() ![]() |
||
TheoTown - Eine Stadtaufbausimulation für Android, iOS, Windows, Mac OS und Linux |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke, also BlitzBasic: [AUSKLAPPEN] graphics_width = 800? MFG |
||
Version: BlitzPlus / Blitz+ |
- Zuletzt bearbeitet von KnorxThieus am Fr, Aug 02, 2013 14:39, insgesamt einmal bearbeitet
![]() |
Lobby |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, genau so, abgesehen davon, dass du jetzt Speed einen konstanten Wert geben kannst. | ||
TheoTown - Eine Stadtaufbausimulation für Android, iOS, Windows, Mac OS und Linux |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gut, das hatte ich jetzt beim Copy & Paste übersehen ![]() Änderungen im vorherigem Post |
||
Version: BlitzPlus / Blitz+ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group