Seite 1 von 1
Amiga Copperbar
Verfasst: 08.05.2015 16:26
von Delle
Hallo,
ich versuche gerade sauber eine typische Amiga-Copperbar zu programmieren.
Die Ausgabe erfolgt zwar korrekt, ist aber sicherlich eleganter lösbar:
Code: Alles auswählen
CreateSprite(#Sprite_Copperbar,1024,32)
StartDrawing(SpriteOutput(#Sprite_Copperbar))
For i=0 To 16:Line(0,i,1023,1,RGB(i*15,0,0)):Next
For i=17 To 32:Line(0,i,1023,1,RGB(500-(i*15),0,0)):Next
StopDrawing()
Ist es möglich eine Prozedur zu programmieren mit folgenden Eigenschaften?
- Höhe der Copperbar (Pixel)
- Farbe 1 (außen)
- Farbe 2 (innen)
- Höhe der einzelnen Linien (1 - X Pixel)
- Raster (jede 2. "Zeile" ist sozusagen schwarz/transparent)
Re: Amiga Copperbar
Verfasst: 08.05.2015 16:39
von Kiffi
ich musste erst einmal nachschauen, was eine Copperbar ist.
Vielleicht kannst Du was mit den
Gradient-Befehlen anfangen?
Grüße ... Peter
Re: Amiga Copperbar
Verfasst: 11.05.2015 10:53
von Kukulkan
Ja, Gradienten sollten das einfach Möglich machen. Nur das "Rastern" müsste man danach in einer separaten schleife rein-malen.
Re: Amiga Copperbar
Verfasst: 11.05.2015 13:00
von Delle
Funzt!
Aber ich schätze mal die haben das damals nicht immer Realtime kalkuliert, sondern die Bars einmalig berechnet und in ein Sprite kopiert und das dann bewegt oder?
Re: Amiga Copperbar
Verfasst: 11.05.2015 13:08
von NicTheQuick
Ich hab irgendwie immer noch nicht ergoogeln können wie diese Copperbar aussehen soll. Kann mir mal jemand ein Bild dazu linken?
Re: Amiga Copperbar
Verfasst: 11.05.2015 13:14
von Delle
Re: Amiga Copperbar
Verfasst: 11.05.2015 14:27
von Torr
Hallo Schaue dir mal MP3D von MPZ an ! Tolle Erweiterung für Purebasic....
Re: Amiga Copperbar
Verfasst: 11.05.2015 15:23
von Kukulkan
Der Copper war ein Ko-Prozessor im Amiga (
http://de.wikipedia.org/wiki/Copper_%28Amiga%29). Damit konnte man so eine Art Callback auf die Bildchirmposition des Bildaufbaus machen. Also zB
... wenn Du gerade Position X=0 und Y=10 bis, dann rufe folgenden Code auf ...
Damit konnte man dann allerlei Tricks ausführen. Die Copper Bars wurden dann Oft einfach durch wechsel der Hintergrundfarbe für jede Zeile erzeugt. Damit blieben die Sprites für Schriften und andere Effekte frei.
Re: Amiga Copperbar
Verfasst: 17.05.2015 14:36
von mpz
Hi,
Epyx hat mal eine 2D-FXLib geschrieben mit diesen Grafikfunktionen (die jetzt Bestandteil von MP3D sind). Hier heißen diese Linien "Rasterbar"
Er hat diese Techniken auch in seinem tollen Intromaker integriert
http://www.purebasic.fr/german/viewtopi ... intromaker
Hier mal ein Beispielcode mit Exe Datei...
http://www.flasharts.de/mpz/FX_Rasterbar.exe
Code: Alles auswählen
;#*************************************************************#
;* *
;* Rasterbars Example by Epyx / Epyx_FXLib v1.21 *
;* MP3D Engine version *
;* *
;#*************************************************************#
EP_InitFXLib()
MP_Graphics3D (640,480,0,1) ; Fullscreen Modus, #Windowed = 1
SetWindowTitle(0, "FXLib Rasterbars Example")
;There are two ways to create a rasterbar
;Prepare the Color Table, a Red gradient and the same for the Yellow one
R=0 : G=0 : B=0
For t = 1 To 16
R+16
EP_SetColorTable(t, RGB(R,G,B))
Next t
For t = 16 To 31
R-16
EP_SetColorTable(t, RGB(R,G,B))
Next t
R=0
For t = 32 To 95
R+4 : G+4
EP_SetColorTable(t, RGB(R,G,B))
Next t
For t = 95 To 161
R-4 : G-4
EP_SetColorTable(t, RGB(R,G,B))
Next t
;Now we define a Rasterbar with Yellow Color
EP_CreateRasterBar(1, 32, 159)
;Some Jumping Rasterbars with Fast Creating
For t = 2 To 7
EP_FastRasterBar(t, RGB(Random(255),Random(255),Random(255)), 32, 200,2, 200+(t*20), 2)
Next t
Repeat
;Showing the big Rasterbar, hmm nothing else...
EP_DisplayRasterBar(1, 240)
;Now display the Moving Bars
For t = 2 To 7 : EP_DisplayRasterBar(t,260+(t*10)) : Next t
MP_RenderWorld() ; Erstelle die Welt
MP_Flip () ; Stelle Sie dar
Until MP_KeyDown(#PB_Key_Escape)
End
Gruß Michael