{{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 |}}]]