Seite 4 von 8

Verfasst: 11.08.2008 23:25
von Lebostein
Kaeru Gaman hat geschrieben:ich kann da nix mit 320x240 einstellen ...
nen 640er kann ich öffnen, den gibts allerdings auch nicht in den Einstellungen fürn Desktop...
WO soll man sowas denn einstellen können?
Hängt sicherlich vom Monitor/Grafikkarte ab. Bin mir sicher, dass es bei meinem Arbeitsrechner geht. Der skaliert um einen festen Faktor und zeigt das bild halt mit schwarzen Rändern an.. guck morgen mal

Verfasst: 11.08.2008 23:27
von ZeHa
Jo, wie gesagt, manche glückliche haben halt ein Gerät welches das unterstützt. Die meisten können das aber nicht, und das finde ich halt sehr schade.

Verfasst: 11.08.2008 23:29
von Little John
ZeHa hat geschrieben:Ja ich bin grad noch am überlegen... muß eh nochmal neu hochladen, und evtl. baue ich einen richtigen 320x240-Modus wieder ein. Allerdings bräucht ich dazu noch eine gute Bezeichnung :)
Dr. Wuros 320x240-Pixel-Therapie. :D

Gruß, Little John

Verfasst: 11.08.2008 23:35
von Kaeru Gaman
> manche glückliche haben halt ein Gerät welches das unterstützt. Die meisten können das aber nicht, und das finde ich halt sehr schade.

nunja... ehrlich gesagt halte ich das für weniger wichtig...

meiner ist schon ein paar jahre alt, war sehr günstig,
und hat für seine Generation ausgezeichnete Reaktionszeit, Kontrast und Sichtwinkel - DAS finde ich wichtig.
die meiste zeit benutze ich eben NICHT 320x240,
sondern will auf 1280x1024 auch mal von etwas mehr von der Seite gucken können,
und auch was erkennen, wenn es nicht stockfinster im zimmer ist, etc.etc.

Verfasst: 11.08.2008 23:38
von ZeHa
Natürlich ist 320x240 nicht der wichtigste Modus, aber als Monitorhersteller sollte man halt auch an die Leute denken, die solche Modi noch benutzen (und das dürften nicht grad wenige sein). Sowas brauchen die im Grunde auch nur einmal entwickeln und können das locker in all ihren Modellen einbauen.

Darum geht's mir halt. Warum weglassen, wenn die Implementierung doch eigentlich so gesehen ein Klacks wäre :)


@ Little John: :mrgreen:
Ja, so könnte man meine Spiele eigentlich insgesamt benennen ;)
Aber die Modi sollen schon klar sein. Eventuell werde ich die Buttons einfach gruppieren, also mit kleinen Überschriften, sodaß klarer ist, was passiert. Mal schauen... werd ich wohl die Tage mal machen.

Verfasst: 12.08.2008 06:59
von Danilo
Man muß ja nun wirklich nicht die nächsten 1000 Jahre altes Zeug
mit rumschleppen. Wer das noch nutzt, nimmt halt einen Emulator.

@ZeHa: Du kannst ja abfragen ob 320x240 verfügbar ist, und dann
wenn gewünscht anbieten/öffnen.

Verfasst: 12.08.2008 09:02
von ZeHa
Man muß ja nun wirklich nicht die nächsten 1000 Jahre altes Zeug
mit rumschleppen. Wer das noch nutzt, nimmt halt einen Emulator.
Das Problem ist halt nur, daß z.B. DOSBox noch nicht sooo schnell emulieren kann, sodaß wirklich jedes Spiel ordentlich läuft. Erst wenn das mal eintrifft, dann sehen die Zeiten wieder etwas rosiger aus :)

Und ich finde auch nicht, daß "altes Zeug mit rumgeschleppt" wird, denn für eine Grafikkarte oder für einen Monitor wäre die Unterstützung von 320x240 sicherlich keine große "Last" ;)

Verfasst: 12.08.2008 11:16
von Lebostein
Und wie wäre das Zoomen eines Sprites ohne Sprite3D? Also ein einmaliges Zoomen nach dem Laden. Sowas in der Art:

Code: Alles auswählen

#SCR_WIDX = 1024
#SCR_WIDY = 768
#SCR_MODE = 32
#SCR_NAME = "TEST"

#SCR_BPPS = 4

InitSprite()
InitMouse()
InitKeyboard()

OpenScreen(#SCR_WIDX, #SCR_WIDY, #SCR_MODE, #SCR_NAME)

Procedure LoadSpriteZoom(datei$, faktor)

  Sprite1N = LoadSprite(#PB_Any, datei$)
  Sprite1X = SpriteWidth(Sprite1N)
  Sprite1Y = SpriteWidth(Sprite1N)

  Sprite2N = CreateSprite(#PB_Any, Sprite1X * faktor, Sprite1Y * faktor)

  StartDrawing(SpriteOutput(Sprite1N))
  Buf1 = DrawingBuffer()
  Len1 = DrawingBufferPitch()
  StopDrawing()

  StartDrawing(SpriteOutput(Sprite2N))
  Buf2 = DrawingBuffer()
  Len2 = DrawingBufferPitch()
  StopDrawing()

  For Y = 0 To Sprite1Y - 1
  For X = 0 To Sprite1X - 1

    RGBX = PeekL(Buf1 + (Y) * Len1 + (X) * #SCR_BPPS)

    For YY = 0 To faktor - 1
    For XX = 0 To faktor - 1

      PokeL(Buf2 + (Y * faktor + YY) * Len2 + (X * faktor + XX) * #SCR_BPPS, RGBX)

    Next XX
    Next YY

  Next X
  Next Y

  FreeSprite(Sprite1N)

  ProcedureReturn Sprite2N

EndProcedure

a = LoadSpriteZoom(".\data\gfx\am.gfx", 1)
b = LoadSpriteZoom(".\data\gfx\am.gfx", 2)
c = LoadSpriteZoom(".\data\gfx\am.gfx", 3)
d = LoadSpriteZoom(".\data\gfx\am.gfx", 4)

Repeat

  ExamineMouse()
  ExamineKeyboard()
  ClearScreen($FF0000)

  DisplaySprite(a, 010, 10)
  DisplaySprite(b, 100, 10)
  DisplaySprite(c, 200, 10)
  DisplaySprite(d, 300, 10)

  FlipBuffers(1)

Until KeyboardPushed(#PB_Key_Escape)
Bild

Verfasst: 12.08.2008 11:31
von ZeHa
Das wäre natürlich auch eine Lösung, allerdings nur für neue Spiele. Das jetzige umzubauen könnte schwierig werden (zumal ich nicht weiß, ob ich damals wirklich Konstanten für die Tilegröße verwendet habe - wenn doch, dann wäre das noch eine eventuelle Lösung).

Interessant wäre hierzu aber auch ein Performance-Vergleich

Verfasst: 12.08.2008 11:41
von Fluid Byte
Dieses kleine Beispiel ist gut geschrieben und für mich sehr aufschlussreich.

Vielen Dank dafür Lebostein. :D