{{htmlmetatags>metatag-robots=() metatag-title=(GESTIONE DEGLI SPRITE MULTIPLEXING DEGLI SPRITE | ugBASIC User Manual) metatag-keywords=(ugBASIC,Commodore 64,Commodore PLUS/4,ZX Spectrum) metatag-description=(An isomorphic language for retrocomputers) metatag-media-og:image=(:ugbasic:logo-ugbasic-fb.png) metatag-og:title=(GESTIONE DEGLI SPRITE MULTIPLEXING DEGLI SPRITE | ugBASIC User Manual) metatag-og:description=(An isomorphic language for retrocomputers) }} ====== ugBASIC Manuale Utente ====== ===== GESTIONE DEGLI SPRITE MULTIPLEXING DEGLI SPRITE ===== ==== SCOPO ==== Questo esempio mostra come utilizzare gli sprite multiplexed su hardware che supporta questo tipo di oggetti animabili hardware. ==== SORGENTE ==== BITMAP ENABLE DEFINE MSPRITE ASYNC CLS WHITE batAtlas := LOAD ATLAS( "bat2.png" ) FRAME SIZE (32,32) DIM frame(3) AS BYTE DIM batSprite(3) AS MSPRITE DIM x(3) AS POSITION DIM y(3) AS POSITION DIM i AS BYTE frame(0) = RND(4) frame(1) = RND(4) frame(2) = RND(4) y(0) = RND(SCREEN HEIGHT) y(1) = RND(SCREEN HEIGHT) y(2) = RND(SCREEN HEIGHT) WAIT KEY batAtlasImage0 := IMAGE( batAtlas FRAME 0 ) batAtlasImage1 := IMAGE( batAtlas FRAME 1 ) batAtlasImage2 := IMAGE( batAtlas FRAME 2 ) batAtlasImage3 := IMAGE( batAtlas FRAME 3 ) WAIT KEY batSprite(0) = MSPRITE( batAtlasImage0 IGNORE COLOR WHITE ) batSprite(1) = MSPRITE( batAtlasImage0 IGNORE COLOR WHITE ) batSprite(2) = MSPRITE( batAtlasImage0 IGNORE COLOR WHITE ) ' WAIT KEY 'batSprite(0) = MSPRITE( batAtlasImage1, batSprite(0) IGNORE COLOR WHITE ) 'batSprite(1) = MSPRITE( batAtlasImage2, batSprite(1) IGNORE COLOR WHITE ) 'batSprite(2) = MSPRITE( batAtlasImage3, batSprite(2) IGNORE COLOR WHITE ) ' SPRITE batSprite(0) ENABLE AT SCREEN BORDER X + x(0), SCREEN BORDER Y + y(0) ' SPRITE batSprite(1) ENABLE AT SCREEN BORDER X + x(1), SCREEN BORDER Y + y(1) ' SPRITE batSprite(2) ENABLE AT SCREEN BORDER X + x(2), SCREEN BORDER Y + y(2) ' ' WAIT KEY ' ' MSPRITE UPDATE ' DO ' ' i = 0 ' ' REPEAT ' ' SELECT CASE frame(i) ' CASE 0 ' batSprite(i) = MSPRITE( IMAGE( batAtlas FRAME 0 ), batSprite(i) IGNORE COLOR WHITE ) ' CASE 1 ' batSprite(i) = MSPRITE( IMAGE( batAtlas FRAME 1 ), batSprite(i) IGNORE COLOR WHITE ) ' CASE 2 ' batSprite(i) = MSPRITE( IMAGE( batAtlas FRAME 2 ), batSprite(i) IGNORE COLOR WHITE ) ' ENDSELECT ' ' SPRITE batSprite(i) ENABLE AT SCREEN BORDER X + x(i), SCREEN BORDER Y + y(i) ' ' ADD frame(i), 1, 0 TO 3 ' ' INC x(i) ' ' UNTIL i = 3 ' ' MSPRITE UPDATE ' ' WAIT KEY ' LOOP ==== FILE ==== * ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/sprites_example_09.bas|sprites_example_09.bas]]'' ==== COME ESEGUIRLO ==== === Atari 400/800 === 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 sprites_example_09.bas -o example.xex altirra example.xex # Windows ugbc.atari.exe sprites_example_09.bas -o example.xex altirra example.xex === Atari 600XL/800XL/1200XL/XG(SE) === 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 sprites_example_09.bas -o example.xex altirra example.xex # Windows ugbc.atarixl.exe sprites_example_09.bas -o example.xex altirra example.xex === Commodore 64 === 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 sprites_example_09.bas -o example.prg x64sc example.prg # Windows ugbc.c64.exe sprites_example_09.bas -o example.prg x64sc example.prg === Commodore 64+REU === 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 sprites_example_09.bas -o example.prg x64sc -reu example.prg # Windows ugbc.c64reu.exe sprites_example_09.bas -o example.prg x64sc -reu example.prg === Commodore PLUS/4 === == Usando YAPE == 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 sprites_example_09.bas -o example.prg yape example.prg # Windows ugbc.plus4.exe sprites_example_09.bas -o example.prg yape example.prg == Usando VICE == 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 sprites_example_09.bas -o example.prg xplus4 example.prg # Windows ugbc.plus4.exe sprites_example_09.bas -o example.prg xplus4 example.prg === Dragon 32 === 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 sprites_example_09.bas -o example.bin xroar -rompath (percorso ROM) example.bin # Windows ugbc.d32.exe sprites_example_09.bas -o example.bin xroar.exe -rompath (percorso ROM) example.bin === Dragon 64 === 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 sprites_example_09.bas -o example.bin xroar -rompath (percorso ROM) example.bin # Windows ugbc.d64.exe sprites_example_09.bas -o example.bin xroar.exe -rompath (percorso ROM) example.bin === PC128 Olivetti Prodest === 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 sprites_example_09.bas -o example.bin dcmoto example.bin (scegliere example.bin) (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC # Windows ugbc.pc128op.exe sprites_example_09.bas -o example.bin dcmoto example.bin (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC === Thomson MO5 === 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 sprites_example_09.bas -o example.bin dcmoto example.bin (scegliere example.bin) (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC # Windows ugbc.mo5.exe sprites_example_09.bas -o example.bin dcmoto example.bin (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC === Commodore VIC-20 === 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 sprites_example_09.bas -o example.prg xvic --memory 24k example.prg # Windows ugbc.vic20.exe sprites_example_09.bas -o example.prg xvic --memory 24k example.prg === ZX Spectrum === 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 sprites_example_09.bas -o example.tap Speccy example.tap # Windows ugbc.zx.exe sprites_example_09.bas -o example.tap Speccy example.tap === ColecoVision === 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: == openMSX == # Linux ugbc.coleco sprites_example_09.bas -o example.rom openmsx -machine \"COL - ColecoVision\" -cart example.rom # Windows ugbc.coleco.exe sprites_example_09.bas -o example.rom bluemsx -machine \"COL - ColecoVision\" example.rom == blueMSX == # Linux ugbc.coleco sprites_example_09.bas -o example.rom bluemsx /machine \"COL - ColecoVision\" /rom1 example.rom # Windows ugbc.coleco.exe sprites_example_09.bas -o example.rom bluemsx /machine \"COL - ColecoVision\" /rom1 example.rom === SEGA SC-3000 === 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 sprites_example_09.bas -o example.rom bluemsx /machine \"SEGA - SC-3000\" /rom1 example.rom # Windows ugbc.sc3000.exe sprites_example_09.bas -o example.rom bluemsx /machine \"SEGA - SC-3000\" /rom1 example.rom === SEGA SG-1000 === 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 sprites_example_09.bas -o example.rom bluemsx /machine \"SEGA - SG-1000\" /rom1 example.rom # Windows ugbc.sg1000.exe sprites_example_09.bas -o example.rom bluemsx /machine \"SEGA - SG-1000\" /rom1 example.rom ==== PROBLEMI? ==== 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, [[https://github.com/spotlessmind1975/ugbasic/issues/new?title=MIGLIORARE GESTIONE DEGLI SPRITE MULTIPLEXING DEGLI SPRITE|apri una segnalazione]] su GitHub per questo specifico esempio. Grazie!===== POWERED BY ===== [[:it:ugbasic:user:examples|{{ :ugbasic:user:logo-ugbasic.png?nolink&600 |}}]]