Auflösung 320x240
Übersicht

michi9999Betreff: Auflösung 320x240 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich habe vor ca. einem Monat angefangen, mich mit Blitz Basic zu beschäftigen. Ich kenne mich zwar mit einigen anderen Programmiersprachen gut aus, aber mit Blitz Basic habe ich noch ein paar kleine Probleme. Mein größtes Problem ist folgendes: Ich habe mir ein paar Sprites von "Super Mario World" geholt und möchte damit nun versuchen, ein kleines Spiel zu erstellen. Die einzelnen "Blöcke" der Grafik sind 15x15 groß. Die kleinstmögliche Auflösung, die Blitz Basic für den Graphic-Modus akzeptiert, ist 640x480. Nun sehen die Blöcke bei dieser Auflösung aber ziemlich winzig aus, da dachte ich mir, ich setze die Auflösung des Bildschirms herab, dann sind die Blöcke größer. Ich habe schon folgendes ausprobiert, jedoch ohne Erfolg: 1) Den Graphic-Modus mit der Auflösung 320x240 aufrufen -> geht, wie bereits beschrieben, nicht. Es kommt nur eine Fehlermeldung 2) Die Auflösung 640x480 nehmen, jedoch nur im Bereich 320x240 zeichnen. Dann diesen Bereich kopieren, mit ScaleImage auf die doppelte Größe vergrößern lassen und das Ergebnis ausgeben. -> Das Bild ist zwar schön groß und sieht nett aus, aber der Befehl arbeitet viel zu langsam 3) Wie bei dem vorherigen Versuch nur im Bereich 320x240 zeichnen, dann ein neues Bild mit der Größe 640x480 erstellen. Dann den Imagebuffer und Backbuffer absperren und mit Hilfe von CopyPixelFast jeden Pixel vom Backbuffer vier Mal auf den Imagebuffer zeichnen (in ein 2x2 Quadrat). Dann das Bild ausgeben -> Das Ergebnis ist wie bei der vorherigen Methode gut, allerdings vergisst dieser Befehl, dass ich bevor ich die Pixel kopiere den Bildschirm geleert habe, also befindet sich auf dem Bildschirm auch noch das Bild in der alten Größe. Und außerdem ist diese Methode immer noch zu langsam, es werden lediglich 5 Bilder pro Sekunde produziert. 4) Als letztes habe ich direkt am Anfang, nachdem ich die Bilder aus den Dateien gelesen habe, die einzelnen Blöcke mit ScaleImage vergrößert, also noch bevor die Grafikausgabe beginnt. -> Die Geschwindigkeit ist super, aber die Grafik ist Müll, da dieser Befehl anscheinend Probleme mit der Transparenz hat. Als transparente Farbe habe ich Blau gewählt, nun habe ich um alle Teile einen kleinen blauen Rand. Weitere Ideen habe ich nicht mehr. Vielleicht hat jemand von Euch noch eine Idee, wie ich mein Problem lösen könnte? Danke im Voraus für Eure Antworten! |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde die Bilder einfach mit einem Grafikprogramm extern vergrößern. Wenn das kein einzelnes, großes Bild ist, ist es etwas Arbeit, aber schneller wird es kaum gehen. | ||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das liegt eher an deiner Grafikkarte/Grafiktreiber oder anderem, als an Blitz. Mein Rechner kann folgende Auflösungen die noch kleiner als 640x480 sind.
320x200 320x240 400x300 512x384 in jeweils 16 oder 32 Bit Farbtiefe. Dafür kann ich überhaupt nicht mehr 24 Farbtiefe einstellen. Hier ein Code der dir alle Auflösungen auflistet, die du unter Blitz bei Vollbild anwenden kannst. Code: [AUSKLAPPEN] AppTitle "Auflösung auswählen"
Graphics 480,800,0,2 For q=1 To CountGfxModes() ; If GfxMode3D(q)=1 Text 0,500+y,gfx_mode(q):y=y+Sgn(Int(Len(gfx_mode(q))))*16 If GfxModeDepth(q)=16 y1=y1+16:Text 000,y1,q+" "+GfxMode3D(q)+" "+GfxModeWidth(q)+"·"+GfxModeHeight(q)+"·16" If GfxModeDepth(q)=24 y2=y2+16:Text 160,y2,q+" "+GfxMode3D(q)+" "+GfxModeWidth(q)+"·"+GfxModeHeight(q)+"·24" If GfxModeDepth(q)=32 y3=y3+16:Text 320,y3,q+" "+GfxMode3D(q)+" "+GfxModeWidth(q)+"·"+GfxModeHeight(q)+"·32" Next FlushKeys WaitKey EndGraphics End Function gfx_mode$(mode) ;Zusammenstellung xw#=GfxModeWidth(mode) yw#=GfxModeHeight(mode) dp%=GfxModeDepth(mode) If xw/yw=16.0/9.0 vh$=" (16:9)" If xw/yw=5.0/4.0 vh$=" (5:4)" If xw/yw=4.0/3.0 vh$=" (4:3)" ; Return Int(xw)+"·"+Int(yw)+"·"+dp+vh If dp=32 If Instr(vh,"4:3") Return Right("00"+mode,2)+" "+Int(xw)+"·"+Int(yw)+"·"+dp+vh End Function Bei mir sind es 29 verschiedene für jeweils 16 und 32 Bit Farbtiefe (also 58 Auflösungen). Das ist auch der Grund, warum es so wichtig ist, den Spielern zu ermögichen sich eine eigene Grafikauflösung einstellen zu lassen. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei meinem Rechner ist bei 640x480 schluss und ist auch gut so. Mein Bildschirm hat 1680x1050 Auflösung, da kann ich mit Gameboy grossen Fenstern nicht viel anfangen muss ich sagen, 320x240 macht nur auf TV Geräten noch im Ansatz einen Sinn fürchte ich ... | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Benutz doch
Code: [AUSKLAPPEN] Graphics 320, 200, 16, 3
Dann bist du zwar im Fenstermodus, kannst das Fenster aber maximieren und musst dich nicht um Skalierung kümmern. |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
michi9999 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
danke erstmal für Eure Antworten. Tatsächlich ist diese kleine Auflösung auf meinem Computer nicht möglich. Der Fenstermodus, wie ihn SpionAtom vorgeschlagen hat, erfüllt zwar seinen Zweck, allerdings stört dann die Fensterleiste von Windows. Ich habe mir mal die kompletten Grafikbefehle von Blitz angeguckt, und bin auf folgenden gestoßen: TFormFilter Wenn ich diese Funktion abschalte, lassen sich die Bilder auch schon vor der Grafikausgabe skalieren, ohne dass die transparente Farbe "verwischt" wird. Ich denke, ich werde damit mal ein bisschen rumexperimentieren. |
||
![]() |
4pac |
![]() Antworten mit Zitat ![]() |
---|---|---|
Den Stress würde ich mir (an deiner Stelle) und meinem Prozessor nicht zumuten. Da legst du die Grafiken besser in 320 x 240 an, resized sie dann in einem Bildbearbeitungsprogramm per Stapelverarbeitung, wenn du alle fertig hast, auf doppelte Größe, und codest dann auf 640 x 480. Warum nicht, BB ist bei 640x480 immer noch rattenschnell, wenn man keine größeren Dummheiten reincodet, und von der Optik her dürfte es kaum einen Unterschied machen. Und das LoFi-Feeling kommt immer noch rüber.
Die Idee, in so geringer grafischer Auflösung ein Spiel zu entwickeln, finde ich sehr reizvoll. Grüße, 4pac |
||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie hectic schon sagt legt Blitzbasic gar keine Auflösung fest. Der normale Weg ist folgender:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() cu |
||
![]() |
4pac |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, aber macht trotzdem nicht so viel Sinn, für eine Auflösung zu coden, die viele GraKa´s gar nicht (mehr) unterstützen, und zukünftig wahrscheinlich auch noch immer weniger unterstützen werden.
Ich beziehe mich da u.a. auch auf die BB-Hilfeseiten, in denen es da heißt: "Valid graphic width and height varies GREATLY from card to card [...]. Common resolutions that are probably safe are 640x480 and 800x600." Mit 640 x 480 ist man da schon eher auf der sicheren Seite. Es sei denn, michi9999 will das Spiel nur für sich selbst coden. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group