Sophie

Sophie

distrib > Mandriva > 2006.0 > i586 > by-pkgid > d9833c3d816a278974f8c48406d819c4 > files > 17

sdlBasic-20040425-1mdk.i586.rpm

sdlBasic un piccolo basic per fare semplici giochi in 2d

Questo basic e' una dimostrazione lampante della forza della licenza GPL
L'interprete basic e' il wxbasic di David Cuny ("http://wxbasic.sourceforge.net") distribuito sotto licenza lGPL
le librerie Grafiche SDL ("http://www.libsdl.org")sono distribuite sotto licenza GPL
il motore grafico e' derivato dal mini gioco aliens ("http://www.libsdl.org/projects/aliens")scritto in c e
distribuito sotto licenza GPL
le rutine putpixel getpixel sono derivate direttamente dal tutorial delle SDL
la rutine line e stata estratta e adattata direttamente dal sorgente della libreria python pygame("http://www.pygame.org")
sempre sotto GPL
Ho usato anche i sorgenti della libreria sdldraw ("http://sdl-draw.sourceforge.net/")

Il sottoscritto non ha fatto altro che tagliare incollare e adattare sorgenti altrui distribuiti tutti sotto licenza GPL.
Questo prodotto e' ovviamente soggetto alla licenza GPL ed e' gratuito come tutti i programmi
sopra citati.

_______________________________________________________________________________________________
sdlBasic elenco comandi e sintassi

suggerisco di scaricare wxbasic per le istruzioni specifiche

sezioni:
    Run time
    Sub and function
    Control structures
    Operator
    Array
    Strings
    Maths
    Files
    Dirs
    console output
    Date and time

    Screen
    Graphics
    File graphics input output
    Image manipulation
    Blitting
    Sprite system
    Bob system
    Text draw
    Print screen
    Sounds and music
    Keyboard
    Mouse
    Joystick
    SDLtime
_________________________________________________________________________________________________________________________
Run time

const
option explicit				: dichiarazione variabile obligatoria
option qbasic
include					: inclusione file sorgente esterno
argc					: return number of args in caller
argv					: copy arg onto stack
command command$			: returns requested arg from command line
*run					: run command on new thread
shell					: execute command, wait until finished
end					: terminate program and exit
os					: restituisce il nome del sistema operativo (windows o linux)
_________________________________________________________________________________________________________________________
Sub and function

declare
sub
function
return

_________________________________________________________________________________________________________________________
Control structures

while
wend
exit while
end while
continue

if
then
else
elseif
end if

select
case
case else
end case

for
each
step
next
to
continue

*do
*loop
*until
*continue

_________________________________________________________________________________________________________________________
Operator

+
-
*
/
^
mod					:
shl					: shift left
shr					: shift right
or
and
xor
not


_________________________________________________________________________________________________________________________
Array

dim
*redim
shared
common
lbound					: returns lower bound of array
*quicksort				: sort an array
ubound					: upperbound of array
erase
_________________________________________________________________________________________________________________________
Strings

asc					: returns ascii value of first char in string
chr chr$				: return string corresponding to ascii key value
*format format$				: returns formatted string with embedded args
insert insert$				: insert source string to target at index
instr					: returns position in source that target was found
lcase lcase$				: convert string to lower case
left left$				: returns leftmost chars in string
len length				: return length of string
ltrim ltrim$				: returns string with left whitespace removed
mid mid$				: returns string with chars 1..n from source
replace replace$			: replace string from source with replace starting at index
replacesubstr replacesubstr$		: replace substring in source with withstring
reverse reverse$			: reverse a string
right right$				: returns rightmost chars in string
rinstr					: reverse Instr function, search from end to start
rtrim rtrim$				: right trim string
space space$				: return string with n spaces in it
str str$				: return string representation of numeric expression
strf strf$				: converts a floating point or number value to a string
string string$				: returns string m chars wide with n in it
tally					: returns number of occurances of matchstring
trim trim$				: trim string
typeof typeof$				: returns string with datatype
ucase ucase$				: convert string to upper case
val					: returns closest numeric representation of number

_________________________________________________________________________________________________________________________
Maths

abs					: returns absolute value of number
acos					: returns arccos of number
asin					: returns arcsin of number
atan					: returns arctan of number
cos					: returns cos of number
exp					: returns exponential function
fix floor				: truncate fractional number, rounding down towards zero
frac					: return fractional portion of number
hex hex$				: returns hexidecimal representation of number
int					: convert to 32 bit integer, truncating decimals
log					: returns natural log of expression
randomize				: reseed the random number generator
rnd					: return an random number
round					: round to nearest integer
sgn					: returns sign of numeric expression
sin					: returns sine of given angle in radians
sqr					: return square root - make sure it's non-negative
tan					: return tanget of given angle in radians
min   					: return min number of the operands
max					: return max number of the operands
bitwiseand andbit			: return the logic and of the operands
bitwiseor  orbit			: return the logic or of the operands
bitwisexor xorbit			: return the logic xor of the operands

_________________________________________________________________________________________________________________________
Files

open as
file input
close
output
append

eof					: returns nonzero if Eof
fileexists				: returns true if the file exists
filecopy				: copy a file
filemove				: move a file
filerename				: rename a file
freefile				: return the handle of the next free file
kill					: delete filename
loc					: returns position in file
lof					: returns length of file
readbyte				: return a byte from the file
rename					: rename file
seek					: seek file position/return current file position
writebyte				: write a byte in the file

_________________________________________________________________________________________________________________________
Dirs

chdir					: change directory
dir dir$				: returns current path
direxists				: returns true if directory exists
dirfirst				: returns first entry in path dir
dirnext					: returns next entry in path dir
mkdir					: create a new directory
rmdir					: remove directory

_________________________________________________________________________________________________________________________
console output

print

_________________________________________________________________________________________________________________________
Date and time

date date$				: returns date in MM-DD-YYYY format
time time$				: return time in HH:MM:SS format
ticks					: returns current timer value

_________________________________________________________________________________________________________________________
Screen

setdisplay(w,h,bpp,m)		 	: apre lo schermo/finestra in double buffer in modo 0=screen|1=window|2=resize
displaywidth				: restituisce la larghezza del display
displayheight				: restituisce l'altezza del display
displaybpp				: restituisce la profondita di colore del display

screen(n)				: attiva lo schgermo logico n
directscreen 				: apre direttamente il display come screen(piu veloce ma gli sprite e screen offset non funzionano correttamente)
screenopen(n,w,h,dx,dy,dw,dh,flag)	: apre lo schermo logico n di dimensione w,h nelle coordinate dx,dy,dw,dh, del display
screenclose(n)				: chiude lo schermo logico n

screenclone(n,s,x,y,w,h,flag)		: crea una nuova entrata nello schermo s
screencopy(n,x,y,w,h,nd,xd,yd)          : copia una porzione di schermo da n a nd
screenfade(n,t)				: sfuma lo screen n in t time
screenfadein(n,i,t)			: sfuma lo screen n verso l'immagine i in t time
screencrossfade(n,i,t)			: sfuma lo screen n verso dall'imagine correntel'immagine i in t time
screenalpha(n,a)			: setta il parametro alpha(trasparenza) allo screen n
screenlock(n)				: blocca lo screen n per l'accesso diretto dai comandi grafici
screenunlock(n)				: sblocca lo screen n per l'accesso diretto dai comandi grafici

screenrect(x,y,w,h,flag)		: modifica le coordinate di output sul display dello screen corrente
xscreenrect				: restituisce la coordinata x del rettangolo di output dello screen corrente
yscreenrect				: restituisce la coordinata y del rettangolo di output dello screen corrente
wscreenrect				: restituisce la coordinata w del rettangolo di output dello screen corrente
hscreenrect				: restituisce la coordinata h del rettangolo di output dello screen corrente
flagscreenrect				: restituisce lo stato del flag del rettangolo di output dello screen corrente

screenwidth				: restituisce la larghezza dello screen corrente
screenheight				: restituisce l'altezza dello screen corrente

offset (x,y)				: posiziona la posiziona di visione del display sullo schermo logico corrente
xoffset					: restituisce la coordinata x dell' offset dello screen corrente
yoffset					: restituisce la coordinata y dell' offset dello screen corrente

cls 					: cancella lo schermo logico corrente

screenswap				: scambia lo schermo logico con quello fisico e aggiorna il bob system
autoback setautoback(m)			: attiva / disattiva lo screenswap automatico m=0 disattivato m>0 attende m millisecondi e performa lo screenswap m<0 esegue il comando screen swap solo se chiamato e dopo m millisecondi
dualplayfield(optional m) 		: attiva  / disattiva l'aggiornamento degli screen sopra al piano dei bob
waitvbl					: attende lo screenswap automatico
fps(optional n)				: attiva/disattiva o restituisce frame rate corrente (0/1/none)

_________________________________________________________________________________________________________________________
Graphics

rgb(r,g,b)				: restituisce il colore corrente in formato Uint32
color (c,optional v)			: setta  il colore della paletta c con il valore v se mancante restituisce il colore c
palette(optional 0-255 param)		: setta l'intera paletta
ink(c)					: seleziona il colore corrente dal formato Uint32
point(x,y)				: restituisce la componente  colore alla coordinata x,y
dot(x,y)				: scrive un punto con il colore ink alla coordinata x,y
plot(x,y,c)				: scrive un punto con il colore c alla coordinata x,y
line(x,y,x1,y1)				: traccia una linea
box(x,y,x1,y1)				: traccia un rettangolo vuoto
bar(x,y,x1,y1)				: traccia un rettangolo pieno
circle(x,y,r)				: traccia un cerchio
fillcircle(x,y,r)			: traccia un cerchio pieno
ellipse(x,y,rx,ry)			: traccia un ellisse
fillellipse(x,y,rx,ry)			: traccia un ellisse piena
paint(x,y)				: riempie un area chiusa

_________________________________________________________________________________________________________________________
File graphics input output

loadimage(filename,n)			: carica in un banco file grafico
saveimage(filename,n)			: salva il banco n nel file grafico (deve essere .bmp)
loadsound(filename,n)			: carica in un banco un file wav
soundexists( n)				: restituisce 1 se il bancosonoro n esiste 0 se vuoto
loadmusic(filename)			: carica in un banco un file xm mod
musicexists()				: restituisce 1 se la musica e' caricata 0 se vuoto

_________________________________________________________________________________________________________________________
Image manipulation

hotspot(n,x,y)				: stabilisce il punto delle coordinate (n,0,0=alto sx | n,1,1=centro | n,2,2 =basso dx)n= image
imageexists( n)				: restituisce 1 se il banco n esiste 0 se vuoto
imagewidth(n)				: restituisce la larghezza dell'immagine n
imageheight(n)				: restituisce l'altezza dell'immagine n
deleteimage(n)				: cancella l'immagine n dalla memoria
copyimage(s,d)  			: copia l'immagine s nel banco d
setalpha(n,a)				: setta la trasparenza
zoomimage(n,zoomx.zoomy)		: zoomma l'immagine
rotateimage(n,angle)			: ruota l'immagine
rotozoomimage(n,angle,zoom)		: ruota e zoomma l'imagine

_________________________________________________________________________________________________________________________
Blitting

blt(n,sx,sy,sw,sh,dx,dy)		: copia un banco nello screen
pastebob(x,y,n)				: copia sullo schermo il banco n alle coordinate x,y ritagliando
pasteicon(x,y,n)			: copia sullo schermo il banco n alle coordinate x,y
grab(n,x,y,w,h)				: ritaglia dallo schermo corrente e copia nel banco

_________________________________________________________________________________________________________________________
Sprite system

In questa implementazione ci sono 512 sprite software che sono indipendenti degli screen

spriteclip(x,y,w,h)			: imposta il clipping degli sprite
sprite(n,x,y,fr)			: attiva o sposta il sprite n alla coordinata x,y con l'immagine fr
deletesprite(n)				: disattiva il sprite n
xsprite(n)				: restituisce la coordinata x del sprite n
ysprite(n)				: restituisce la coordinata y del sprite n
spritewidth(n)				: restituisce la larghezza del sprite n
spriteheight(n)				: restituisce l'altezza del sprite n
frsprite(n)				: restituisce il frame del sprite n
livesprite(n)				: restituisce 1 se il sprite n e' "vivo"
spritehit(n, optional x)		: restituisce 1 se il sprite n collide con il sprite x se -1 con tutti
autoupdatesprite(m)			: attiva  / disattiva l'aggiornamento automatico dei sprite allo screenswap
updatesprite				: attiva  un aggiornamento manuale degli sprite allo screenswap

_________________________________________________________________________________________________________________________
Bob system

In questa implementazione ci sono 512 bob software che sono dipendenti degli screen e attuano
il background preserve

setbob(n,scr)				: assegna il bob n allo screen scr
bob(n,x,y,fr)				: attiva o sposta il bob n alla coordinata x,y con l'immagine fr
deletebob(n)				: disattiva il bob n
xbob(n)					: restituisce la coordinata x del bob n
ybob(n)					: restituisce la coordinata y del bob n
bobwidth(n)				: restituisce la larghezza del bob n
bobheight(n)				: restituisce l'altezza del bob n
frbob(n)				: restituisce il frame del bob n
livebob(n)				: restituisce 1 se il bob n e' "vivo"
bobhit(n,optional x)			: restituisce 1 se il bob n collide con il bob x se -1 con tutti
autoupdatebob(m) 			: attiva  / disattiva l'aggiornamento automatico dei bob allo screenswap
updatebob  				: attiva   un aggiornamento manuale dei bob allo screenswap

_________________________________________________________________________________________________________________________
Text draw

text(x,y,s,testo)			: stampa il testo sul video con s size
setfont(path)				: seleziona il font d'uso
textrender(testo,s,n)                   : crea il bob n contenente il "testo" scritto con il font corrente con size s

_________________________________________________________________________________________________________________________
Print screen

pen(c)					: setta il colore di print con -1 restituisce il colore corrente
paper(c)				: settail colore di sfondo del carattere con -1 restituisce il colore corrente
fprints(testo)				: stampa un testo monospace nella griglia senza il return finale
prints(testo)				: stampa un testo monospace nella griglia
locate(x,y)				: muove il cursore di stampa alle coordinate x y
atx					: restituisce la coordinata x del cursore
aty					: restituisce la coordinata y del cursore
curson					: visualizza il cursore lampeggiante sul video alle coordinate (atx,aty)
cursoff					: spegne il cursore lampeggiante sul video
inputs(prompt,defs)			: raccoglie l'input da tastiera fino alla pressione di invio e lo restituisce
zoneinputs(x,y,l,default)		: raccoglie l'input da tastiera fino alla pressione nell'area specificata da x,y,l
_________________________________________________________________________________________________________________________
Sounds and music

playsound(n,c,optional l)		: suona il suono n nel canale c l volte
volumesound(c,optional v)		: cambia il volume del canale c (-1 tutti) al valore v (0-128)
stopsound(optional c)			: ferma l'emissione del wav dal canale c (senza o -1 tutti)
pausesound(optional c)			: mette in pausa il canale c (senza o -1 tutti)
resumesound(optional c)			: sblocca dalla pausa il canale c (senza o -1 tutti)
vumetersound(optional c)                : restituisce lo stato corrente del canale c(senza o -1 tutti)
positionsound(c,angle,dist)             : posiziona il suono
soundChannels(n)	                : definisce dinamicamente il numero di canali

playmusic(n)				: suona il track xm,mod,ogg,mp3 n e' l numero di volte (-1 continua)
positionmusic(p)                        : sposta l'esecuzione al secondo indicato
stopmusic				: termina la riproduzione del modulo musicale
pausemusic                              : mette in pausa la musica in esecuzione
resumemusic                             : riavvia la musica in pausa
rewindmusic                             : riavvolge la musica corrente
fademusic(t)				: esegue la dissolvenza progressiva della musica
volumemusic(optional v)			: cambia il volume della musica al valore v (0-128)
speedmusic(v)                           : cambia la velocita di esecuzione della musica

_________________________________________________________________________________________________________________________
Keyboard

key(keycode)				: restitusce 1 se e' premuto il tasto keycode
inkey					: restituisce il codice ascii del tasto premuto
waitkey(optional keycode)		: attende la pressione di un tasto(0 qualsiasi)

_________________________________________________________________________________________________________________________
Mouse

xmouse					: restituisce la coordinata x del mouse sul display
ymouse					: restituisce la coordinata y del mouse sul display
xmousescreen(n)				: restituisce la coordinata x del mouse sullo screen
ymousescreen(n)				: restituisce la coordinata y del mouse sullo screen
bmouse 					: restituisce il pulsante premuto del mouse
mouseshow				: visualizza il cursore del mouse
mousehide				: nasconde il cursore del mouse
mousezone(x,y,w,h)			: restituisce 1 se il mouse occupa questa parte dello screen

_________________________________________________________________________________________________________________________
Joystick

**xjoy					: retituisce la coordinata x del joystick
**yjoy					: retituisce la coordinata y del joystick
**bjoy					: retituisce il pulsante premuto del joystick

_________________________________________________________________________________________________________________________
SDLtime

wait(t)					: attende il trascorrere di t millisecondi
timer					: restituisce il tick corrente

_________________________________________________________________________________________________________________________
* non funziona
** non funziona e da testare
-> da eliminare

to do:

speedmusic
vumeter

msgbox (perform in interface.sdlblib)
fsel (perform in interface.sdlblib)
dirsel
inputbox (perform in interface.sdlblib)
listbox
otionbox
checkbox??

menu system (perform in interface.sdlblib)

socket system

sprite editor
ide scritta in sdlBasic