Bildschirmauflösung / Panel position

Posted By: Ich_bin_Batman

Bildschirmauflösung / Panel position - 05/05/10 13:54

Hallo,
Ich weiß wie ich die Größe meiner Panels unabhängig von der Auflösung lasse.
Doch nun habe ich das Problem,dass alle Panels die nicht den gesamten Bildschirm füllen(zb. HP bar)nicht mehr auf der richtigen Position sind und bei jedem Wechsel der Auflösung verändert sich die position,bitte um Hilfe.

MFG Batman
Posted By: Espér

Re: Bildschirmauflösung / Panel position - 05/05/10 14:10

setz sie mittels

screen_size.x/y

doch einfach neu...
Posted By: Ich_bin_Batman

Re: Bildschirmauflösung / Panel position - 05/05/10 20:12

Hä? Versteh ich nicht ganz könntest mal ein Beispiel posten?

pause.scale_x = screen_size.x / bmap_width(pausepic);

pause.scale_y = screen_size.y / bmap_height(pausepic)

so setz ich die Größe das müsste man doch auf , auf die Position anwenden können,oder?
Posted By: TSG_Torsten

Re: Bildschirmauflösung / Panel position - 05/05/10 20:30

Du musst die ursprünglich konzipierte Auflösung als Faktor mit verwenden, z.B. wenn du es für 1024x768 konzipiert hättest:

pause.scale_x=screen_size.x/1024;
pause.scale_y=screen_size.y/768;

Tipp: Setze das Filter-Flag, um die Bitmaps zu glätten.

Gruß
TSGames
Posted By: Widi

Re: Bildschirmauflösung / Panel position - 05/05/10 20:41

... dasselbe für pause.pos_x...

Wenn du mehrere Panels hast, schreibe einfach eine kleine Helpfunktion:

Code:
void SET_PANEL(PANEL* my_pan,my_x,my_y)
{
   my_pan.scale_x = screen_size.x / 1024;
   my_pan.scale_y = screen_size.y / 768;
   my_pan.pos_x = my_x * screen_size.x / 1024;
   my_pan.pos_y = my_y * screen_size.y / 768;
}

...
INIT_PANELS()
{
   SET_PANEL(pause,50,60);
   SET_PANEL(anderes_panel,150,30);
   SET_PANEL(noch_ein_panel,screen_size.x / 2,screen_size.y / 2);
}


Posted By: Ich_bin_Batman

Re: Bildschirmauflösung / Panel position - 05/05/10 23:23

ok,danke erstma für die schnellen Antworten , es klappt bei "fast" allen Panels.
Aber was mach ich bei meinen beweglichen Panels?
Genau das gleiche bei meinem Mauszeiger das ist ja nur ein Bitmap und kein Panel.
Posted By: Widi

Re: Bildschirmauflösung / Panel position - 05/06/10 09:31

Ich habe eine leere Bitmap für meine Maus und hänge einfach ein Panel an die Mausposition.
Posted By: Ich_bin_Batman

Re: Bildschirmauflösung / Panel position - 05/06/10 17:18

Quote:
Ich habe eine leere Bitmap für meine Maus und hänge einfach ein Panel an die Mausposition.


Versucht jetzt kann ich keine Buttons mehr anklicken crazy

Aber es bleibt immernoch die Frage mit beweglichen Panels bzw. wenn ich die Position in einem Script nachträglich änder.
Posted By: Superku

Re: Bildschirmauflösung / Panel position - 05/06/10 17:22

"Versucht jetzt kann ich keine Buttons mehr anklicken" -> UNTOUCHABLE flag für Panel setzen.
Posted By: Widi

Re: Bildschirmauflösung / Panel position - 05/06/10 20:38

Nachträglich ändern? Der Code steht ja oben !!!

pause.pos_x = 524 * screen_size.x / 1024;

setzt den Panel immer auflösungsunabhängig dorthin, wo bei screen_size.x = 1024 die Position 524 ist.

Oder rufe die Function SET_PANEL(pause,50,60); einfach nochmals auf mit anderen x und y Werten. Kannst auch eine Function schreiben, in der nur die Position und nicht der scalefactor geändert wird.

Posted By: Ich_bin_Batman

Re: Bildschirmauflösung / Panel position - 05/07/10 16:35

Eigentlich wollte ich früher zurückschreiben,aber naja.

Das mit der Maus klappt soweit nur wird sie wie alle anderen beweglichen Panel von der Position her verändert.
Quote:

Nachträglich ändern? Der Code steht ja oben !!!

pause.pos_x = 524 * screen_size.x / 1024;

setzt den Panel immer auflösungsunabhängig dorthin, wo bei screen_size.x = 1024 die Position 524 ist.


Das klappt bei mir wohl ncih ganz es is etwas anders ich hab das ganze in einer while-Schleife verpackt.

Achja was bei der Maus auch noch etwas komisch ist sie wird lamsanger umso höher die Auflösung

PS: Hätte nie gedacht das es so viele Probleme macht nachträglich die Auflösung zu verändern crazy
© 2024 lite-C Forums