die hilfe bzw die einträge im forum haben mir fast immer weitergeholfen aber einige fragen bleiben offen... vielleicht habe ich ja auch was übersehen?
- gibt es soetwas wie SCREENRESIZE? also eine möglichkeit erst einen screen 320x240 zu öffnen und diesen dann auf zb 640x480 zu "ziehen" (also eine 2x2 vergrößerung)? idealerweise mit und ohne sampling...
- ist es möglich mit gl-basic bilder, sounds usw in die binary reinzuhängen... also dass ich zum schluss nur eine datei habe wo alles drinsteckt? bietet gl-basic vielleicht sowas wie ein containerformat?
du kannst mit SETSCREEN auch während des Programmlaufes die Auflösung verändern. Um evtl. erforderliche Anpassungen an Grafiken/Coding musst du dich jedoch selbst kümmern.
zu b:
prinzipiell auf Umwegen möglich z.B. mit READ .. DATA (siehe F1-Hilfe). aber nicht empfehlenswert. Besser wäre das die sogenannte Shoebox zu verwenden, Dort kannst du alles, was an Mediadateien anfällt, eine gepackte Datei packen und diese aus deinem programm heraus ganz normal ansprechen. (siehe z.B. auch Befehl SETSHOEBOX)
D.h. du hast dann neben deinem Programm mindestens noch eine Datei, aber eben nur eine ;)
SETSCREEN habe ich schon gesehen aber das ist nicht das was ich suche... eher sowas wie VIEWPORT was ja leider nur mit 3D funktioniert...
das mit SHOEBOX habe ich jetzt auch gesehen,... wenigstens was. allerdings schade denn mittlerweile ist es standard dass sprachen solche dateien einbinden können... oder hängt das mit den unterschiedlichen systemen zusammen? funktioniert SHOEBOX wenigstens auf allen systemen gleich gut?
VIEWPORT geht meines Wissens sowohl in 2D als auch in 3D
INCBIN oder etwas Vergleichbares könnte ganz nützlich sein *zustimm*. Vielleicht nimmt Gernot es ja mit auf seine todo-Liste ;)
stimmt, VIEWPORT funktioniert auch mit 2D... ABER wichtig ist der kleine zusatz dass zommen/verkleinern nur mit 3D funktioniert, bei 2D werden sämtliche zeichenoperationen "nur" umgeleitet! ...dabei werden doch sprites usw sicher auch nur als texturierte poligone gehandhabt, oder?
für dieses problem benutze ich erstmal diesen kleinen code den ich jedesmal vor SHOWSCREEN aufrufe... das einzige was da noch zu beachten ist sind die coordinaten einer mous-abfrage die *0.5 gerechnet werden müssen... ich denke mal unter windows ist der aufruf 1x pro frame zu verkraften! ;-)
IF PLATFORMINFO$("") = "WIN32"
SMOOTHSHADING FALSE
GRABSPRITE TEMP, 0,0,320, 240
STRETCHSPRITE TEMP, 0, 0, 640, 480
ENDIF
kann man natürlich auch prozentual machen, dann passt es auf jede screengröße!
ähhh, auch auf die Gefahr hin, daß ich hier mit meinem Halbwissen Mist erzähle:
2D-Sprites sind keine texturierten Polygone, sondern einfach nur Grafiken, die du natürlich bei geänderter Auflösung größenmäßig anpassen kannst (siehe z.B. ZOOMSPRITE etc.). Texturierte Polygone sind in 2D mit STARTPOLY .. ENDPOLY möglich.
Warum machst du dir die Umstände mit den unterschiedlichen Auflösungen? Ein ganzes Spielfeld auf die doppelte Größe zu sizen, sieht in der Regel kagge aus. Meines Erachtens ist es sinnvoller sich entweder
- auf eine bestimmte Auflösung festzulegen
- oder wenn die Auflösung gewechselt werden kann, dann evtl. verschiedene Grafiksets für die jeweileigen Auflösungen zur Verfügung zu stellen
Bei bestimmten Spielen, der Spielfeld eh etliche Bildschirmseiten umfaßt, kann es u.U. egal sein, daß hier bei höherer Auflösung lediglich ein etwas größerer Bereich des Spielfeldes anzeigt wird.
da gl-basic die "sprites" auch drehen, zommen und dabei filtern kann nehme ich ganz stark an das diese "sprites " etwas einfach gehandhabte texturierte polygone sind - ich glaube kaum dass diese operationen alle von der cpu bewältigt werden sondern von der grafik-hardware -> meine vermutung!
ich versuche zZ ein kleines spiel dass ich mal in BMAX geschrieben habe umzusetzen... es soll möglichst ohne grossen aufwand auf PocketPC & GP2X laufen (eventuell auch OSX). da WIN32 für mich nicht wichtig ist aber ich darauf entwickle will ich auch die pixel sehen!
unter win32 ist drawsprite wie polyvector -> weil schneller.
du kannst mit copy eine shoebox an die exe dranpappen. schau bei faq.
danke, genau dein eintrag unter FAQ habe ich übersehen... aber wer kommt auch schon auf COPY? ;-)