Un uso classico del blitting è il rendering di sprite trasparenti su uno sfondo. In questo esempio vengono utilizzate un'immagine di sfondo, uno sprite e una maschera a 1 bit. Note that this example will be executed everywhere BUT Commodore VIC-20 and Philips VG5000.
PROCEDURE example ON ALL BUT VIC20, VG5000 BITMAP ENABLE(16) DEFINE PALETTE NOT PRESERVE CLS BLACK mask := LOAD IMAGE("blit_mask.png") EXACT TRANSPARENCY BLACK OPACITY LIGHT WHITE background := LOAD IMAGE("blit_background.png") sprite := LOAD IMAGE("blit_sprite.png") CONST x = ( SCREEN WIDTH - IMAGE WIDTH(background) ) \ #2 CONST y = ( SCREEN HEIGHT - IMAGE HEIGHT(background) ) \ #2 PUT IMAGE background AT x,y REM In the first blit, the mask is blitted onto the background using REM the raster operator AND. Because any value ANDed with 0 equals 0, REM and any value ANDed with 1 is unchanged, black areas are created REM where the actual sprites will appear, while leaving the rest of REM the background alone. BLIT bop1 AS ( ( SOURCE ) AND ( DESTINATION ) ) BLIT IMAGE mask AT x+10,y+10 WITH bop1 REM In the second blit, the sprite is blitted onto the newly altered REM background using the raster operator of OR. Because any value REM ORed with 0 is unchanged, the background is unaffected and the REM black areas are filled with the actual sprite image. BLIT bop2 AS ( ( ( INVERSE ( SOURCE 2 ) ) AND ( SOURCE 1 ) ) OR ( DESTINATION ) ) BLIT IMAGES sprite, mask AT x+10,y+10 WITH bop2 END PROC CALL example ON ALL BUT VIC20, VG5000
Per poter eseguire l'esempio, è necessario disporre dell'emulatore Altirra, e in particolare che l'eseguibile x64sc
sia accessibile.
Digitare quindi il seguente comando:
# Linux ugbc.atari blit_basic_mask.bas -o example.xex altirra example.xex # Windows ugbc.atari.exe blit_basic_mask.bas -o example.xex altirra example.xex
Per poter eseguire l'esempio, è necessario disporre dell'emulatore Altirra, e in particolare che l'eseguibile x64sc
sia accessibile.
Digitare quindi il seguente comando:
# Linux ugbc.atarixl blit_basic_mask.bas -o example.xex altirra example.xex # Windows ugbc.atarixl.exe blit_basic_mask.bas -o example.xex altirra example.xex
Per poter eseguire l'esempio, è necessario disporre dell'emulatore VICE, e in particolare che l'eseguibile x64sc
sia accessibile.
Digitare quindi il seguente comando:
# Linux ugbc.c64 blit_basic_mask.bas -o example.prg x64sc example.prg # Windows ugbc.c64.exe blit_basic_mask.bas -o example.prg x64sc example.prg
Per poter eseguire l'esempio, è necessario disporre dell'emulatore VICE, e in particolare che l'eseguibile x64sc
sia accessibile.
Digitare quindi il seguente comando:
# Linux ugbc.c64reu blit_basic_mask.bas -o example.prg x64sc -reu example.prg # Windows ugbc.c64reu.exe blit_basic_mask.bas -o example.prg x64sc -reu example.prg
Per poter eseguire l'esempio, è necessario disporre dell'emulatore YAPE, e in particolare che l'eseguibile yape
sia accessibile.
Digitare quindi il seguente comando:
# Linux ugbc.plus4 blit_basic_mask.bas -o example.prg yape example.prg # Windows ugbc.plus4.exe blit_basic_mask.bas -o example.prg yape example.prg
Per poter eseguire l'esempio, è necessario disporre dell'emulatore VICE, e in particolare che l'eseguibile xplus4
sia accessibile.
Digitare quindi il seguente comando:
# Linux ugbc.plus4 blit_basic_mask.bas -o example.prg xplus4 example.prg # Windows ugbc.plus4.exe blit_basic_mask.bas -o example.prg xplus4 example.prg
Per poter eseguire l'esempio, è necessario disporre dell'emulatore XROAR, e in particolare che l'eseguibile x64sc
sia accessibile.
Digitare quindi il seguente comando:
# Linux ugbc.d32 blit_basic_mask.bas -o example.bin xroar -rompath (percorso ROM) example.bin # Windows ugbc.d32.exe blit_basic_mask.bas -o example.bin xroar.exe -rompath (percorso ROM) example.bin
Per poter eseguire l'esempio, è necessario disporre dell'emulatore XROAR, e in particolare che l'eseguibile x64sc
sia accessibile.
Digitare quindi il seguente comando:
# Linux ugbc.d64 blit_basic_mask.bas -o example.bin xroar -rompath (percorso ROM) example.bin # Windows ugbc.d64.exe blit_basic_mask.bas -o example.bin xroar.exe -rompath (percorso ROM) example.bin
Per poter eseguire l'esempio, è necessario disporre dell'emulatore DCMOTO, e in particolare che l'eseguibile x64sc
sia accessibile.
Digitare quindi i seguenti comandi:
# Linux ugbc.pc128op blit_basic_mask.bas -o example.bin dcmoto example.bin (scegliere example.bin) (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC # Windows ugbc.pc128op.exe blit_basic_mask.bas -o example.bin dcmoto example.bin (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC
Per poter eseguire l'esempio, è necessario disporre dell'emulatore DCMOTO, e in particolare che l'eseguibile x64sc
sia accessibile.
Digitare quindi i seguenti comandi:
# Linux ugbc.mo5 blit_basic_mask.bas -o example.bin dcmoto example.bin (scegliere example.bin) (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC # Windows ugbc.mo5.exe blit_basic_mask.bas -o example.bin dcmoto example.bin (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC
Per poter eseguire l'esempio, è necessario disporre dell'emulatore XEMU, e in particolare che l'eseguibile xmega65
sia accessibile.
Digitare quindi il seguente comando:
# Linux ugbc.vic20 blit_basic_mask.bas -o example.prg xvic --memory 24k example.prg # Windows ugbc.vic20.exe blit_basic_mask.bas -o example.prg xvic --memory 24k example.prg
Per poter eseguire l'esempio, è necessario disporre dell'emulatore Speccy, e in particolare che l'eseguibile speccy
sia accessibile.
Digitare quindi il seguente comando:
# Linux ugbc.zx blit_basic_mask.bas -o example.tap Speccy example.tap # Windows ugbc.zx.exe blit_basic_mask.bas -o example.tap Speccy example.tap
Per compilare e mandare in esecuzione l'esempio, hai bisogno di avere l'emulatore openMsx oppure il BlueMSX, e in particolare che il suo eseguibile sia accessibile.
Dopo di che, digita questo comando sulla linea di comando:
# Linux ugbc.coleco blit_basic_mask.bas -o example.rom openmsx -machine \"COL - ColecoVision\" -cart example.rom # Windows ugbc.coleco.exe blit_basic_mask.bas -o example.rom bluemsx -machine \"COL - ColecoVision\" example.rom
# Linux ugbc.coleco blit_basic_mask.bas -o example.rom bluemsx /machine \"COL - ColecoVision\" /rom1 example.rom # Windows ugbc.coleco.exe blit_basic_mask.bas -o example.rom bluemsx /machine \"COL - ColecoVision\" /rom1 example.rom
Per compilare e mandare in esecuzione l'esempio, hai bisogno di avere l'emulatore BlueMSX, e in particolare che il suo eseguibile sia accessibile.
Dopo di che, digita questo comando sulla linea di comando:
# Linux ugbc.sc3000 blit_basic_mask.bas -o example.rom bluemsx /machine \"SEGA - SC-3000\" /rom1 example.rom # Windows ugbc.sc3000.exe blit_basic_mask.bas -o example.rom bluemsx /machine \"SEGA - SC-3000\" /rom1 example.rom
Per compilare e mandare in esecuzione l'esempio, hai bisogno di avere l'emulatore BlueMSX, e in particolare che il suo eseguibile sia accessibile.
Dopo di che, digita questo comando sulla linea di comando:
# Linux ugbc.sg1000 blit_basic_mask.bas -o example.rom bluemsx /machine \"SEGA - SG-1000\" /rom1 example.rom # Windows ugbc.sg1000.exe blit_basic_mask.bas -o example.rom bluemsx /machine \"SEGA - SG-1000\" /rom1 example.rom
Se hai trovato un problema nel cercare di eseguire questo esempio, se pensi che ci sia un bug o, più semplicemente, vorresti che fosse migliorato, apri una segnalazione su GitHub per questo specifico esempio. Grazie!