im Zusammenhang mit der Diskussion um das Zoomen von Sprites (http://www.purebasic.fr/german/viewtopi ... 5&start=50) hatte ich grade eine Idee, bei einer geringen Auflösung eines (Retro-)Spiels (z.B. 320 x 240 oder 640 x 480) diese ohne Änderung des Quellcodes zu verdoppeln oder zu verdreifachen (da viele heutige Grafikkarten mit 320 x 240 zum Beispiel nicht mehr klarkommen). Ganz einfach durch "Überladen" der ganz normalen Sprite-Funktionen:
Includedatei: http://www.lebostein.de/tomysoft/temp/Zoomer.pb
Hier ein kleines Beispiel zum Testen:
Code: Alles auswählen
; mit dieser Zeile wird alles mit einer Auflösung x 2 dargestellt
; ohne den Code irgendwie zu verändern:
; ------------------------------------------
;IncludeFile "Zoomer.pb"
; ------------------------------------------
InitSprite()
InitKeyboard()
OpenScreen(640, 480, 32, "Sprite")
LoadSprite(1, #PB_Compiler_Home + "Examples/Sources/Data/PureBasic.bmp")
LoadSprite(5, #PB_Compiler_Home + "Examples/Sources/Data/Geebee2.bmp")
TransparentSpriteColor(5, $FF00FF)
add = 1
Repeat
FlipBuffers()
ClearScreen(RGB(0,0,0))
For px = 0 To 3
For py = 0 To 13
DisplaySprite(1, px * 169, py * 36)
Next py
Next px
DisplaySprite(1, x, x)
ClipSprite(5, 0, 0, x, x/2)
DisplayTransparentSprite(5, x, 100)
DisplayTransparentSprite(5, 600-x, x)
x + add
If x > 400 Or x < 0: add * -1: EndIf
StartDrawing(ScreenOutput())
DrawText(10, 10, "Hallo")
StopDrawing()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
Natürlich könnte man an dem eigentlichen Zoomen des geladenen Sprites (hier über ImageResize realisiert) noch andere Möglichkeiten finden, aber an sich sollte die Vorgehensweise mit dem "Überladen" ohne Probleme funktionieren. Ich habe es jedenfalls schon erfolgreich an einigen meiner kleinen PB-Spiele mit geringerer Auflösung getestet.