{{htmlmetatags>metatag-robots=() metatag-title=( | 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=( | ugBASIC User Manual) metatag-og:description=(An isomorphic language for retrocomputers) }} ====== ugBASIC Manuale Utente ====== ===== ===== ==== SCOPO ==== ==== SORGENTE ==== INK BROWN CLS COLOR BORDER LIGHT BLUE CONST POSITIVE maxWalls = 3 CONST POSITIVE windowHeight = 3 CONST POSITIVE maxPlayers = 2 basement = LOAD TILES("examples/scrolling_basement.png") TRANSPARENT DIM wall AS TILES(maxWalls) wall(0) = LOAD TILES("examples/scrolling_wall0.png") TRANSPARENT wall(1) = LOAD TILES("examples/scrolling_wall1.png") TRANSPARENT wall(2) = LOAD TILES("examples/scrolling_wall2.png") TRANSPARENT DIM window AS TILES(windowHeight) window(0) = LOAD TILES("examples/scrolling_window0.png") TRANSPARENT window(1) = LOAD TILES("examples/scrolling_window1.png") TRANSPARENT window(2) = LOAD TILES("examples/scrolling_window2.png") TRANSPARENT DIM player AS SPRITE(maxPlayers) player(0) = CSPRITE(LOAD IMAGE("examples/scrolling_player0.png")) player(1) = CSPRITE(LOAD IMAGE("examples/scrolling_player1.png")) arrow = SPRITE(LOAD IMAGE("examples/scrolling_arrow.png")) rowIndex = 0 windowIndex = 0 playerIndex = 0 playerX = ( SCREEN WIDTH - SPRITE WIDTH ) \ #2 arrowX = 0 arrowY = 0 GLOBAL wall GLOBAL window GLOBAL rowIndex GLOBAL windowIndex GLOBAL playerIndex GLOBAL playerX GLOBAL arrowX GLOBAL arrowY SCREEN ROWS 24 SCROLL LEFT SCROLL LEFT SCROLL LEFT SCROLL LEFT DRAW TILES basement ROW 0, 0 TO SCREEN TILES WIDTH - 1 DOUBLE BUFFER ON BEGIN GAMELOOP PROCEDURE refreshRow x = (BYTE) 0 IF rowIndex > 0 THEN DRAW TILES wall(rowIndex) ROW 0, 0 TO rowIndex - 1 ENDIF DRAW TILES wall(rowIndex) ROW 0, rowIndex TO SCREEN TILES WIDTH - 1 IF windowIndex > 4 THEN w = TILES WIDTH(window(windowIndex-5)) x = 4 DRAW TILES window(windowIndex-5) ROW 0, x TO x + w - 1 ADD x, w ** #2 DRAW TILES window(windowIndex-5) ROW 0, x TO x + w - 1 ADD x, w ** #2 DRAW TILES window(windowIndex-5) ROW 0, x TO x + w - 1 ENDIF SPRITE player(playerIndex) AT playerX, SCREEN HEIGHT - SPRITE HEIGHT - TILES HEIGHT(basement) ENABLE SPRITE player(1-playerIndex) DISABLE ADD rowIndex, 1, 0 TO 2 ADD windowIndex, 1, 0 TO 7 ADD playerIndex, 1, 0 TO 1 END PROC ON SCROLL DOWN ROW CALL refreshRow SCROLL DOWN SELECT CASE JOY(0) CASE JOY LEFT IF playerX > 0 THEN DEC playerX ENDIF CASE JOY RIGHT IF playerX < (SCREEN WIDTH - SPRITE WIDTH) THEN INC playerX ENDIF ENDSELECT IF RND(100) > 50 THEN IF arrowY = 0 THEN arrowX = RND(SCREEN WIDTH - SPRITE WIDTH - 1) arrowY = 1 ENDIF ENDIF IF arrowY > 0 THEN ADD arrowY, 3, 0 TO SCREEN HEIGHT + SPRITE HEIGHT SPRITE arrow AT arrowX, arrowY ENABLE ELSE SPRITE arrow DISABLE ENDIF END GAMELOOP ==== FILE ==== * ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/scrolling_example_04.bas|scrolling_example_04.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 scrolling_example_04.bas -o example.xex altirra example.xex # Windows ugbc.atari.exe scrolling_example_04.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 scrolling_example_04.bas -o example.xex altirra example.xex # Windows ugbc.atarixl.exe scrolling_example_04.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 scrolling_example_04.bas -o example.prg x64sc example.prg # Windows ugbc.c64.exe scrolling_example_04.bas -o example.prg x64sc 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 scrolling_example_04.bas -o example.prg yape example.prg # Windows ugbc.plus4.exe scrolling_example_04.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 scrolling_example_04.bas -o example.prg xplus4 example.prg # Windows ugbc.plus4.exe scrolling_example_04.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 scrolling_example_04.bas -o example.bin xroar -rompath (percorso ROM) example.bin # Windows ugbc.d32.exe scrolling_example_04.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 scrolling_example_04.bas -o example.bin xroar -rompath (percorso ROM) example.bin # Windows ugbc.d64.exe scrolling_example_04.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 scrolling_example_04.bas -o example.bin dcmoto example.bin (scegliere example.bin) (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC # Windows ugbc.pc128op.exe scrolling_example_04.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 scrolling_example_04.bas -o example.bin dcmoto example.bin (scegliere example.bin) (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC # Windows ugbc.mo5.exe scrolling_example_04.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 scrolling_example_04.bas -o example.prg xvic --memory 24k example.prg # Windows ugbc.vic20.exe scrolling_example_04.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 scrolling_example_04.bas -o example.tap Speccy example.tap # Windows ugbc.zx.exe scrolling_example_04.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 scrolling_example_04.bas -o example.rom openmsx -machine \"COL - ColecoVision\" -cart example.rom # Windows ugbc.coleco.exe scrolling_example_04.bas -o example.rom bluemsx -machine \"COL - ColecoVision\" example.rom == blueMSX == # Linux ugbc.coleco scrolling_example_04.bas -o example.rom bluemsx /machine \"COL - ColecoVision\" /rom1 example.rom # Windows ugbc.coleco.exe scrolling_example_04.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 scrolling_example_04.bas -o example.rom bluemsx /machine \"SEGA - SC-3000\" /rom1 example.rom # Windows ugbc.sc3000.exe scrolling_example_04.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 scrolling_example_04.bas -o example.rom bluemsx /machine \"SEGA - SG-1000\" /rom1 example.rom # Windows ugbc.sg1000.exe scrolling_example_04.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 |apri una segnalazione]] su GitHub per questo specifico esempio. Grazie!===== POWERED BY ===== [[:it:ugbasic:user:examples|{{ :ugbasic:user:logo-ugbasic.png?nolink&600 |}}]]