Umrechnung

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

schalli

Betreff: Umrechnung

BeitragSo, Jan 18, 2009 12:10
Antworten mit Zitat
Benutzer-Profile anzeigen
In einem Spiel, dass ich gerade programmiere, biete ich drei Auflösungen an. Ich mache alle Angaben in
800x600 und rechne sie dann um:

640x480: faktor#=0.8
800x600: faktor#=1
1024x768: faktor#=1.28

Beispiel-Code: [AUSKLAPPEN]
Color 144,30,120
Rect 325*faktor#,550*faktor#,150*faktor#,25*faktor#
Color 114,0,90
Rect 325*faktor#,550*faktor#,50*faktor#,25*faktor#


Da es leider keine "Komma-Pixel" gibt, Crying or Very sad wird alles (automatisch) gerundet.
Und das sieht manchmal etwas seltsam aus. (Sachen sind zu dick/dünn, sowas halt)

Weiß jemand wie ich den "Rundungsfehler" verhindern kann?

BtbN

BeitragSo, Jan 18, 2009 12:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde für X und Y einen eigenen faktor nehmen.
 

schalli

BeitragSo, Jan 18, 2009 12:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Er wäre genau gleich. Rechne mal nach:
1024/800=1.28
768/600=1.28
640/800=0.8
480/600=0.8

EDIT: Der Fehler liegt nicht im faktor#, sondern in der Rundung:
Es gibt keine "Komma-Pixel".
  • Zuletzt bearbeitet von schalli am So, Jan 18, 2009 12:26, insgesamt einmal bearbeitet

BtbN

BeitragSo, Jan 18, 2009 12:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Und was machst du, wenn mal nen User mit ner Breitbild-Auflösung kommt?
 

schalli

BeitragSo, Jan 18, 2009 12:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Gute Frage:
Aber das sind die drei Standartauflösungen, die fast jedes Spiel unterstützt.
Mehr Auflösungen mache ich nicht. Wäre zu aufwendig.
Wie schon gesagt, ich mach nur die 3 Standarts.

BtbN

BeitragSo, Jan 18, 2009 12:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann werden sich die Breitbild-User(wie ich) aber bedanken, weil ein 4:3/5:4 Spiel auf 16:9/16:10 breitgezogen wird und entsprechend aussieht.
Wenn du schon so ein System mit einem Scale-Faktor aufbaust, kannst du auch gleich die Auflösung komplett frei vom User regeln lassen per config-datei.
 

schalli

BeitragSo, Jan 18, 2009 12:38
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, werde drüber nachdenken.
..., was meine Frage noch nicht beantwortet.

BtbN

BeitragSo, Jan 18, 2009 12:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du vllt. mal einen Beispiel-Screenshot, in wie fern sich das problem zeigt?
 

schalli

BeitragSo, Jan 18, 2009 13:09
Antworten mit Zitat
Benutzer-Profile anzeigen
800x600 gut:
user posted image
640x480 schlecht:
user posted image
Der Rahmen um das Weiterspielen, wenn die Maus draufgehalten wird.

BtbN

BeitragSo, Jan 18, 2009 13:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke, da wird man nicht viel machen können, das sind halt kleine integer-rundungs-fehler.

Xeres

Moderator

BeitragSo, Jan 18, 2009 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Rechne mit Floats, also nicht
Code: [AUSKLAPPEN]
Rect 325*faktor#,550*faktor#,150*faktor#,25*faktor#
sondern...
Code: [AUSKLAPPEN]
Rect 325.0*faktor#,550.0*faktor#,150.0*faktor#,25.0*faktor#
Das sollte eine Verbesserung geben.
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

tedy

BeitragSo, Jan 18, 2009 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Was würde denn passieren wenn du die buttons größer / kleiner machst ? (so 1 px)
01010100 01100101 01000100 01111001 00100000 00111010 01000100
 

schalli

BeitragSo, Jan 18, 2009 13:39
Antworten mit Zitat
Benutzer-Profile anzeigen
@xeres: Hilft nichts.
@tedy: Muss ich noch probieren.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Jan 18, 2009 13:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit der Draw3D habe ich ein einfaches System eingebaut, mit welcher man genau so etwas machen kann. Das ganze wird dann mit Origin3D geregelt. Nachteil bei der Sache ist, dass bei einer anderen Auflösung als 1:1 die anisotrope Filterung der Grafikkarte einherzieht. Das heisst, die Pixel werden verwaschen. Wirken also nicht mehr so scharf. Außerdem wird bei einem anderem Bildverhältnis das ganze gestreckt oder gestaucht. Es entstehen Eierköpfe die man zwar unterbinden kann, aber dann wieder schwarze Balken entstehen.

Die meiner Meinung nach beste aber auch aufwendigste Methode ist, man passt alle Bildelemente variabel an. Also Elemente die links oder oben angeordnet sind, werden ''normal'' berechnet und eingezeichnet. Und so ähnlich mit Elementen die unten, rechts oder mittig angeordnet werden. Diese müssen dann stets variabel angeordnet werden. Das Problem ist nur, dass Bediehnelemente dann aber auch auf sehr großen Auflösungen sehr klein ausfallen können, sind aber immer quadratisch und scharfgezeichnet.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

schalli

BeitragSo, Jan 18, 2009 14:11
Antworten mit Zitat
Benutzer-Profile anzeigen
@hectic:Umständlich, muss aber wohl so gemacht werden Crying or Very sad

EDIT: Draw3D kommt sowieso nicht in Frage. Ich hab B+.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group