Thema: Bildschirmauflösung Di Feb 24, 2009 11:18 pm
Gibt es eigendlich eine Funktion, die die Auflösung wiedergibt?
Ich wollte einen Rahmen machen, mit Paralax und so, jedoch weiß ich nicht wie ich das untere und das linke Rahmenteil setzten soll, ohne vor Spielbeginn ein Menü zu erstellen, oder eine Auflösung vorauszusetzen. Ein Menü würde nur stören, und bei Onlinegebrauch hat ja jeder eine andere Auflösung.
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Bildschirmauflösung Mi Feb 25, 2009 10:56 am
Eine Funktion dazu gibt es afaik nicht. In manchen Szenarien steht aber: MinScreenResX bzw. Y Ich weiß es nich 100%, aber glaube das war eher Foldermap... Übersetzt heißt das obere "MindestensBildschirmAuflösung X (also Breite) bzw. Y (also Höhe)
Liech Fregattenkapitän
Alter : 33 Anmeldedatum : 02.02.09
Thema: Re: Bildschirmauflösung Mi Feb 25, 2009 2:32 pm
Dieser Rahmen geht theoretisch recht einfach, praktisch habe ich es noch nie probiert. Ich schreib dir das jetzt mal das prinzip ohne größere erklärungen hin. Falls du fragen hast kannst du die immernoch stellen.
Erstmal brauchst du 1 Kante des Rahmens (Entweder sehr große grafik oder eine bei der das strecken nichts ausmacht). Das Objekt dazu machst du HUD Paralax. Dann platzierst du 4 rahmen stücke welche du inetwa so positionierst, dank paralax erscheinen sie dann zb am unteren rand des bildschirms SetPosition(1,1) SetPosition(-1,1) SetPosition(1,-1) SetPosition(-1,-1)
Diese Rahmendinger drehst und streckst du dann so das sie einen Rahmen bilden, mach das mit SetObjDrawTransform()
Wenn das irgendwie doof aussieht kannst du auch noch an die 4 bildschirm ecken eigene Eckteile einsetzen.
Simsi Staatssekretär
Alter : 31 Ort : Vaihingen/Enz Anmeldedatum : 30.03.08
Thema: Re: Bildschirmauflösung Mi Feb 25, 2009 9:37 pm
also nochmal kurz (so wie ichs verstanden habe):
Code:
func GetResolution(int &X, int &Y) { var xx = CreateObject(BLUB, 1,-1); var yy = CreateObject(BLUB, -1,1); X = GetX(xx); Y = GetY(yy); }
vorausgesetzt das objekt BLUB hat die kategorie C4D_Parallax
bitte berichtigt mich wenn ich irre
Liech Fregattenkapitän
Alter : 33 Anmeldedatum : 02.02.09
Thema: Re: Bildschirmauflösung Mi Feb 25, 2009 11:28 pm
Nein, das geht nicht. Das Objekt wird nur Optisch unten daargestellt, tatsächlich befindet es sich immernoch an position -1,-1.
Umezawa Feldmarschall
Alter : 29 Anmeldedatum : 30.12.08
Thema: Re: Bildschirmauflösung Fr Feb 27, 2009 11:03 pm
Liech schrieb:
Dieser Rahmen geht theoretisch recht einfach, praktisch habe ich es noch nie probiert. Ich schreib dir das jetzt mal das prinzip ohne größere erklärungen hin. Falls du fragen hast kannst du die immernoch stellen.
Erstmal brauchst du 1 Kante des Rahmens (Entweder sehr große grafik oder eine bei der das strecken nichts ausmacht). Das Objekt dazu machst du HUD Paralax. Dann platzierst du 4 rahmen stücke welche du inetwa so positionierst, dank paralax erscheinen sie dann zb am unteren rand des bildschirms SetPosition(1,1) SetPosition(-1,1) SetPosition(1,-1) SetPosition(-1,-1)
Diese Rahmendinger drehst und streckst du dann so das sie einen Rahmen bilden, mach das mit SetObjDrawTransform()
Wenn das irgendwie doof aussieht kannst du auch noch an die 4 bildschirm ecken eigene Eckteile einsetzen.
Das funktioniert nicht, der setzt das nur ein Stück aus dem Screen heraus.
Liech Fregattenkapitän
Alter : 33 Anmeldedatum : 02.02.09
Thema: Re: Bildschirmauflösung Fr Feb 27, 2009 11:22 pm
Jetzt musst du es nurnoch mit SetObjDrawTransform() weiter rausbekommen, zb durch drehen um eine ecke.
Umezawa Feldmarschall
Alter : 29 Anmeldedatum : 30.12.08
Thema: Re: Bildschirmauflösung Fr Feb 27, 2009 11:40 pm
Ich versteh das nicht so ganz, kannst du vielleicht ein Beispiel nennen?
Liech Fregattenkapitän
Alter : 33 Anmeldedatum : 02.02.09
Thema: Re: Bildschirmauflösung Sa Feb 28, 2009 2:06 am
Du positionierst ein Parallaxes objekt von der größe 100x100 (Offset: -50,-50) an der stelle -1,-1. Jetzt drehst du es mit SetObjDrawTransform um 180 grad um die obere linke ecke
Zitat :
SetDTRotation(180,-50,-50,obj);
Und schon ist das objekt in der unteren Rechten bildschirm ecke zu sehen. Wenn du es stattdessen 100x1024 (oder so) machst kannst füllst es auch den unteren bildschirmteil aus =)
Zitat :
global func SetDTRotation (int r, int xoff, int yoff, object obj) { var fsin=Sin(r, 1000), fcos=Cos(r, 1000); // set matrix values SetObjDrawTransform ( +fcos, +fsin, (1000-fcos)*xoff - fsin*yoff, -fsin, +fcos, (1000-fcos)*yoff + fsin*xoff, obj ); }
Umezawa Feldmarschall
Alter : 29 Anmeldedatum : 30.12.08
Thema: Re: Bildschirmauflösung So März 01, 2009 12:44 pm
Hab ich gemacht, jetzt sieht man das Bild gar nicht mehr.
Liech Fregattenkapitän
Alter : 33 Anmeldedatum : 02.02.09
Thema: Re: Bildschirmauflösung So März 01, 2009 1:01 pm
Dann versuch spaßeshalber dochmal selbst ein bisschen rumzuprobieren?