Gamestudio Links
Zorro Links
Newest Posts
Zorro 2.70
by jcl. 09/29/25 09:24
optimize global parameters SOLVED
by dBc. 09/27/25 17:07
ZorroGPT
by TipmyPip. 09/27/25 10:05
assetHistory one candle shift
by jcl. 09/21/25 11:36
Plugins update
by Grant. 09/17/25 16:28
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
3 registered members (AndrewAMD, Ayumi, NewbieZorro), 14,141 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
krishna, DrissB, James168, Ed_Love, xtns
19168 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 2 of 3 1 2 3
Re: Meistgenutzte Auflösungen / most used ressolutions [Re: Uhrwerk] #389717
12/17/11 14:17
12/17/11 14:17
Joined: Apr 2006
Posts: 273
Germany, NRW
Meerkat Offline OP
Member
Meerkat  Offline OP
Member

Joined: Apr 2006
Posts: 273
Germany, NRW
Hrm stimmt. Danke für die Info. laugh


http://www.gpi-studios.com

OS: Windows 7 Home Premium (64 Bit Version)
AMD Athlon 64 X2 Dual Core Processor 5200+
6gb DDR 2 - RAM
NVIDIA GeForce GTX 460
GameStudio Version A8 Commercial
Re: Meistgenutzte Auflösungen / most used ressolutions [Re: Meerkat] #389718
12/17/11 14:22
12/17/11 14:22
Joined: May 2007
Posts: 2,043
Germany
Lukas Offline

Programmer
Lukas  Offline

Programmer

Joined: May 2007
Posts: 2,043
Germany
Ich würde aber in jedem Fall empfehlen, keine Feste Liste zu nehmen, sondern rauszufinden, welche Auflösungen das System unterstützt. Ich glaube dazu gab es sogar mal ein Beispiel in den Lite-C Contributions.

Re: Meistgenutzte Auflösungen / most used ressolutions [Re: Lukas] #389728
12/17/11 15:41
12/17/11 15:41
Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Rondidon Offline
Expert
Rondidon  Offline
Expert

Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Ja, ich habe sowas auch vor kurzem eingebaut. Ich mache das, indem ich eine Auflösungsliste erstelle und dann ein dynamisches Dropdown-Menü daraus forme, das genau so lang wie die Auflösungsliste ist (aber nicht unter 1024x768 geht).




Re: Meistgenutzte Auflösungen / most used ressolutions [Re: Rondidon] #389729
12/17/11 15:50
12/17/11 15:50
Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Rondidon Offline
Expert
Rondidon  Offline
Expert

Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Hier mal der Code für die Auflösungsliste. Das Beispiel hier erstellt dir eine .TXT Datei mit allen verfügbaren Auflösungen > X-Auflösung 640.

Code:
////////////////////////////////////////////////////////////////////////////////////////////////////////
// Funktion zum Auslesen der verfügbaren Auflösungen. Speichert diese in einer .txt ab

typedef struct _devicemode 
{ 
	char  dmDeviceName[32]; 
	WORD   dmSpecVersion; 
	WORD   dmDriverVersion; 
	WORD   dmSize; 
	WORD   dmDriverExtra; 
	DWORD  dmFields; 
	short dmOrientation;
	short dmPaperSize;
	short dmPaperLength;
	short dmPaperWidth;
	short dmScale; 
	short dmCopies; 
	short dmDefaultSource; 
	short dmPrintQuality; 
	short  dmColor; 
	short  dmDuplex; 
	short  dmYResolution; 
	short  dmTTOption; 
	short  dmCollate; 
	BYTE  dmFormName[32]; 
	WORD  dmLogPixels; 
	DWORD  dmBitsPerPel; 
	DWORD  dmPelsWidth; 
	DWORD  dmPelsHeight; 
	DWORD  dmDisplayFlags; 
	DWORD  dmDisplayFrequency; 
	DWORD  dmICMMethod;
	DWORD  dmICMIntent;
	DWORD  dmMediaType;
	DWORD  dmDitherType;
	DWORD  dmReserved1;
	DWORD  dmReserved2;
	DWORD  dmPanningWidth;
	DWORD  dmPanningHeight;
} SCRMODE; 
  
SCRMODE resolution;

//Table of resolution available
var Tab_x[29]={0};
var Tab_y[29]={0};


void get_screenres()
{	
		//create file with all resolution available
		
		//set all value at zero
		var i = 0;
		for (i=0; i<=29; i++)
		{
		   Tab_x[i] = 0;
		   Tab_y[i] = 0;
		}
		
		var n = 0;
		var e = 0;
		while(EnumDisplaySettings(NULL,n , &resolution)!=0)
		{
			var p =0;
			var VL_exist = 0;
			for (p=0; p<=29; p++)
			{
				if((Tab_x[p]==resolution.dmPelsWidth)&&(Tab_y[p]==resolution.dmPelsHeight))
				{
					VL_exist = 1;
				}
					
			}
			
			if(VL_exist==0)
			{
				Tab_x[e] = resolution.dmPelsWidth;
				Tab_y[e] = resolution.dmPelsHeight;
				e = e+1;
			}
			
			n = n + 1;
		}
		
		var VL_file_write_resolution = file_open_write("resolution.txt");
		if(VL_file_write_resolution!=0)
		{
			var l=0;
			var nummer=1;
			while(Tab_x[l]!=0)
			{
				if(Tab_x[l]>=640)
				{
					file_str_write(VL_file_write_resolution,"aufl_x");
					file_var_write(VL_file_write_resolution,nummer);
					file_var_write(VL_file_write_resolution,Tab_x[l]);
					file_str_write(VL_file_write_resolution,",");
	   			file_str_write(VL_file_write_resolution,"\r\n");
					file_str_write(VL_file_write_resolution,"aufl_y");
					file_var_write(VL_file_write_resolution,nummer);
					file_var_write(VL_file_write_resolution,Tab_y[l]);
					file_str_write(VL_file_write_resolution,",");
					file_str_write(VL_file_write_resolution,"\r\n");
					nummer++;
				}
				l++;
			}
			file_open_write(VL_file_write_resolution);
		}
		file_close(VL_file_write_resolution);	
}



Hiermit kannst du die TXT dann auslesen

Code:
var gvFileParserHandle;

function txt_read_var(STRING* szKey)
{
	file_find(gvFileParserHandle, szKey); // find parameter
	file_seek(gvFileParserHandle, 1, 1); // reset cursor	
	return(file_var_read(gvFileParserHandle)); // return the parameter
}



Und so mache ich das mit dem Dropdown-Menü.

Code:
if(dropdown_aufl_opened==0)
{
	dropdown_aufl_opened = 1;
	get_screenres();
	wait(1);		
	gvFileParserHandle = file_open_read("resolution.txt");
	
	aufl_x_1 = txt_read_var("aufl_x1");
	aufl_y_1 = txt_read_var("aufl_y1");
	if(aufl_x_1==0) {return;}
	aufl_dropdown1.pos_y = menu_dropdown_aufl.pos_y+28;
	aufl_dropdown1.pos_x = menu_dropdown_aufl.pos_x;
	set(aufl_dropdown1,SHOW);
	
	aufl_x_2 = txt_read_var("aufl_x2");
	aufl_y_2 = txt_read_var("aufl_y2");
	if(aufl_x_2==0) {return;}
	aufl_dropdown2.pos_y = menu_dropdown_aufl.pos_y+55;
	aufl_dropdown2.pos_x = menu_dropdown_aufl.pos_x;
	set(aufl_dropdown2,SHOW);

// ...

	file_close(gvFileParserHandle);
	return;
}



Wahrscheinlich ist das recht unelegant, aber es funktioniert genau wie es soll.

Re: Meistgenutzte Auflösungen / most used ressolutions [Re: Rondidon] #389737
12/17/11 16:33
12/17/11 16:33
Joined: Apr 2006
Posts: 273
Germany, NRW
Meerkat Offline OP
Member
Meerkat  Offline OP
Member

Joined: Apr 2006
Posts: 273
Germany, NRW
Ich danke dir vielmals Rondidon. Damit hast du mir den Arsch gerettet! grin

Und was das unelegant angeht, egal wie der Code geschrieben ist, auf das Ergebnis kommt es an! laugh


http://www.gpi-studios.com

OS: Windows 7 Home Premium (64 Bit Version)
AMD Athlon 64 X2 Dual Core Processor 5200+
6gb DDR 2 - RAM
NVIDIA GeForce GTX 460
GameStudio Version A8 Commercial
Re: Meistgenutzte Auflösungen / most used ressolutions [Re: Meerkat] #389738
12/17/11 17:02
12/17/11 17:02
Joined: Sep 2003
Posts: 9,859
F
FBL Offline
Senior Expert
FBL  Offline
Senior Expert
F

Joined: Sep 2003
Posts: 9,859
Nur kleine Randnotiz:

Es muss "< 29" sein, sonst hast du einen Arrayüberlauf.

Re: Meistgenutzte Auflösungen / most used ressolutions [Re: FBL] #389740
12/17/11 17:42
12/17/11 17:42
Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Rondidon Offline
Expert
Rondidon  Offline
Expert

Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Stimmt. Danke für den Hinweis.

Re: Meistgenutzte Auflösungen / most used ressolutions [Re: Rondidon] #389789
12/18/11 17:39
12/18/11 17:39
Joined: Dec 2002
Posts: 3,375
Vindobona (Ostarichi)
Harry Potter Offline
Expert
Harry Potter  Offline
Expert

Joined: Dec 2002
Posts: 3,375
Vindobona (Ostarichi)
Ich würde bei der Auswahl der Auflösung nicht nur eine Untergrenze einbauen (z.B. Auflösung muss breiter sein als 640 Pixel), sondern auch eine Obergrenze (z.B. bis maximal 2560 Pixel).

Warum?
Ganz einfach, weil man nie weiß, welche Hardware die Zukunft bringen wird. Vielleicht gibt es irgendwann mal Auflösungen von 10.000 Pixel?! Und so manches Spiel würde dann vielleicht bei einer höheren Auflösung unspielbar werden.

Die Bildschirmauflösung hat nämlich auf mehrere Dinge eine Auswirkung:

1.) auf die Panels:
Hier gibt es drei verschiedene Vorgehensweisen:
a) Entweder man skaliert die Panels, sodass sie bei unterschiedlichen Bildschirmauflösungen immer die selbe Fläche am Bildschirm einnehmen. Man muss dabei aber bedenken, dass man dann auch die Schriftgröße skalieren muss, und alles was auf den Panels angezeigt wird (z.B. Icons). Diese Vorgehensweise hat außerdem den Nachteil, dass die Grafikqualität nicht gerade besser wird, wenn ein Panel skaliert wird. Je höher die Auflösung, desto pixeliger sieht das Panel dann aus.

b) Oder die Panels behalten die gleiche Größe, und werden nur anders am Bildschirm plaziert. Dadurch bleibt die Bildqualität der Panels gleich gut, jedoch werden die Panels immer kleiner, je größer die Bildschirmauflösung wird. Deshalb sollte man bei dieser Vorgehensweise auf jeden Fall die Bildschirmauflösung nach oben hin begrenzen, weil sonst die Panels (oder Icons, oder die Schrift) so klein werden könnten, dass sie nicht mehr deutlich erkennbar bzw. lesbar sind.

c) Die beste, aber aufwändigste Variante: man legt für verschiedene Bildschirmauflösungen auch verschiedene Panel-Grafiken an. Für Auflösungen von z.B. bis zu einer Breite von 1280 Pixel, verwendet man dann die Panels und Icons aus dem Grafik-Set A. Für Auflösungen ab 1280 Pixel verwendet man dann das Grafik-Set B. Für alle Zwischen-Auflösungen geht man so vor, wie unter Punkt b) beschrieben.


2.) auf Buttons:
Hier gilt generell das gleiche wie für die Panels. Jedoch sollte man bedenken, dass ein Spiel schnell unspielbar werden kann, wenn die Buttons immer die selbe Größe haben.
Ein 16x16-Pixel großer Icon-Button kann bei einer Auflösung von 1024x768 noch relativ einfach mit dem Mauszeiger getroffen werden.
Bei einer Auflösung von 2560 x 1440 Pixel wird das schon sehr mühsam sein, und man braucht eine absolut ruhige Hand dafür.
Bei noch höheren Auflösungen könnte es irgendwann dann gar nicht mehr möglich sein, dass man den Button trifft. Schon gar nicht in der Hitze eines Gefechtes. Das Spiel wird dadurch unspielbar.


3.) auf die Geschwindigkeit des Mauszeigers:
Vor allem wenn man eine eigene Maussteuerung im Spiel verwendet, hängt es stark von der Bildschirmauflösung ab, wie lange es dauert, um einen Mauszeiger(oder ähnliches) von Punkt A nach Punkt B zu bewegen.
Normalerweise macht man ja die Mausgeschwindigkeit einstellbar. Aber man sollte bedenken, dass selbst die Maximalgeschwindigkeit an ihre Grenzen stößt, wenn die Bildschirmauflösung sehr sehr groß wird. Also man sollte hier auf jeden Fall für die Berechnung der Mausgeschwindigkeit auch die Bildschirmauflösung berücksichtigen.


4.) auf die Qualität der Texturen:
Man sollte bedenken, dass auch die Texturen im Spiel immer unschärfer/matschiger werden, je höher die Bildschirmauflösung wird. Wenn man zum Beispiel in einem Shooter vor einer Hauswand steht, deren Textur 1024x1024 Pixel groß ist, wird das bei einer Bildschirmauflösung von 1024x768 super scharf aussehen. Bei einer Auflösung von 2560 x 1440 Pixel wird man aber die Pixel in der Textur deutlich erkennen können. Die Polygon-Kanten der Models werden dann deutlich und scharf zu sehen sein, während die Pixel der Textur immer verschwommener werden, je höher die Bildschirmauflösung wird.


Man sollte also immer überlegen, bis zu welcher Bildschirmauflösung noch eine Steigerung der Bildqualität des jeweiligen Spieles erreicht werden kann. Und ab einer noch höheren Auflösung, die dann eigentlich nur noch eine Verschlechterung des Bildes mit sich bringt, sollte man diese Auflösungen dann sperren.

Ist zumindest meine persönliche Meinung. wink

Re: Meistgenutzte Auflösungen / most used ressolutions [Re: Harry Potter] #389791
12/18/11 17:45
12/18/11 17:45
Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Rondidon Offline
Expert
Rondidon  Offline
Expert

Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Hört sich sehr sinnvoll an. Gute Tipps. Vielen Dank. Werde darüber mal nachdenken.

Re: Meistgenutzte Auflösungen / most used ressolutions [Re: Harry Potter] #389792
12/18/11 17:47
12/18/11 17:47
Joined: Apr 2006
Posts: 273
Germany, NRW
Meerkat Offline OP
Member
Meerkat  Offline OP
Member

Joined: Apr 2006
Posts: 273
Germany, NRW
Deine Meinung ist vollkommen richtig und sehr gut durchdacht Harry Potter. Das hat mir selbst nochmal gezeigt was das wichtige dabei ist, danke. laugh

Naja beim Skalieren von Panels skaliere ich von der höchst auflösenden Grafik sowieso immer nur runter, niemals rauf. Sonst wirds pixelig und hässlich. Dacht achte ich drauf. wink


http://www.gpi-studios.com

OS: Windows 7 Home Premium (64 Bit Version)
AMD Athlon 64 X2 Dual Core Processor 5200+
6gb DDR 2 - RAM
NVIDIA GeForce GTX 460
GameStudio Version A8 Commercial
Page 2 of 3 1 2 3

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1