Amiga Copperbar

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Delle
Beiträge: 1118
Registriert: 10.05.2005 22:48

Amiga Copperbar

Beitrag 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)
PB 6.02 LTS + Win 11
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Amiga Copperbar

Beitrag von Kiffi »

ich musste erst einmal nachschauen, was eine Copperbar ist. :lol:

Vielleicht kannst Du was mit den Gradient-Befehlen anfangen?

Grüße ... Peter
Hygge
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: Amiga Copperbar

Beitrag von Kukulkan »

Ja, Gradienten sollten das einfach Möglich machen. Nur das "Rastern" müsste man danach in einer separaten schleife rein-malen.
Benutzeravatar
Delle
Beiträge: 1118
Registriert: 10.05.2005 22:48

Re: Amiga Copperbar

Beitrag 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?
PB 6.02 LTS + Win 11
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Amiga Copperbar

Beitrag von NicTheQuick »

Ich hab irgendwie immer noch nicht ergoogeln können wie diese Copperbar aussehen soll. Kann mir mal jemand ein Bild dazu linken?
Bild
Benutzeravatar
Delle
Beiträge: 1118
Registriert: 10.05.2005 22:48

Re: Amiga Copperbar

Beitrag von Delle »

Bild
PB 6.02 LTS + Win 11
Torr
Beiträge: 21
Registriert: 20.08.2014 12:06

Re: Amiga Copperbar

Beitrag von Torr »

Hallo Schaue dir mal MP3D von MPZ an ! Tolle Erweiterung für Purebasic....
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: Amiga Copperbar

Beitrag 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.
Benutzeravatar
mpz
Beiträge: 497
Registriert: 14.06.2005 15:53
Computerausstattung: Win 10 Pro, 16 GB Ram, Intel I5 CPU und TI1070 Grafikkarte, PB 5.73 / 6.00 beta4
Wohnort: Berlin, Tempelhof

Re: Amiga Copperbar

Beitrag 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
Working on - MP3D Engine -
Antworten