...
v0.6: LINUX! - a KsVoxelLogo for Linux/OpenGL is now in the download!
(+ 2 linuxfiles needed - configlinux.xml.txt + libIrrlicht.a )
v0.7:
new variablesystem!
floatnumbers, floatvariables
(example> MAKE "FLOAT 0.02 )
some new mathcommands
-
ABS,
NEG, ASIN, ACOS, ATAN, ATANTWO, SIN, COS, TAN, LOG, POW, SQRT
stringvariables
(example> MAKE "astring "Teststring ) or ( MAKE "X "[hello world] )
some
new stringcommands -
FIRST, LAST, INDEX
other things:
-
label: changed label to #
- files: moved media/shaders
in subdirectories
- for-command: new last parameter
is the step (example> for "i 1 7 1 [ print :i ] )
-
new parameter in configfile for xeffects shadowmapfilter in configfile (default=0=hardshadow)
- new parameters in configfile to change size of cyberspacevolume (default 127, 127, 127)
- new command LOADCSV to load a csv-file from sproxel0.6 with rotation
degree 0/90/180/270 (example> loadcsv "test.csv 0 )
(a
palette-file with the defaultcolors of KsVoxelLogo is in dir media->in sproxel0.6 import filetype palettefile)
- new command REFRESHALL to refresh screen from program -> animation,
action, movement
(caution: not allowed inside other
commands, use smaller volume for quicker refresh)
(for
example for movement you can clear the volume with CLEAR, draw new things and refresh with REFRESHALL)
0.7.1 found some bugs
new
command ISKEYDOWN to check if a key is pressed (check for spacebar example> "key = iskeydown 32 )
(update with REFRESHALL to also update keys)
(irrlichtkeycodes in hex http://irrlicht.sourceforge.net/docu/_keycodes_8h_source.html )
changed LOADCSV loading to turtleposition
new example castles.txt - loading sproxel0.6 csvfile
0.8 found some bugs
IF also works with strings/stringvariables (example> if :key = "true print :key endif )
LOADCSV now rotates 0, 90, 180 or 270 degrees around yaxis
PRINT prints a sentence if separated with commata (example> print
"[variable x is ] , :x )
new command:
PRINTSCREEN fontname integer integer integer string [, string] - print a string to screen at x, y with a color
new command: GETFONT fontpicturename - load a font from a picture (read
irrlichtdocumentation)
new command:
BACKGROUND integer integer integer - set the backgroundcolor from program
new command: LIGHTPOS x y z targetx targety targetz - set lightposition
new command: CAMERAPOS - set the camerapos with six numbers for position
and target from program
new command: CHANGECAMERA number - 0=change to fixed camera
(and mousepointer is shown), 1=Freeflightcamera(invisible mousepointer)
new command: varstring = MOUSEBUTTONLEFTDOWN - true if leftmousebutton is down in variable
new command: varstring = MOUSEPOSITIONX - reads mousepositionx to variable
new
command: varstring = MOUSEPOSITIONY - reads mousepositiony to variable
new parameter in configfile: set showcamerapos to true and see cameraposition in windowcaption
diamondsquarealgorithm:
new command: varstring = DSGET x y - get value from diamondsquare
new command: DSSET x y value - set value to diamondsquare
new command: DSINIT size roughness - init diamondsquare
new
command: DIAMONDSQUARE - start diamondsquare
new
command: INITVOLUMESIZE integer integer integer - init cyberspacevolumesize from program at start of program
(example> INITVOLUMESIZE 63 63 63 ) the defaultsize
is 127x127x127, you can also change in configfile
new
example: diamondsquare shows how to init a volume with INITVOLUMESIZE, print to screen, read keys,
cameraposition/light move and set new diamondsquareterrain and refresh it with REFRESHALL.
0.9 CLI-mode reactivated - if you start KsVoxelLogo without parameter,
youre in the CLI-mode where
you can write lines that
are interpreted (example> repeat 4 [ forward 50 left 90 ] )
and
you can see the result immediately, type commands and see whats happening
new command: OUTPUT :x - procedures now can give back something, use at end of procedure(
number, string, value)
to get the output you have
to call the procedure with a "variablestring = GO procedurestringname
(example>
TO "test MAKE "X 7 OUTPUT :X END "A = GO "test print :A )
if
you make local variables in a procedure with MAKE, they are now automatic popped from the stack when leaving the procedure.
new command: variablestring = READLIST - reads a list of words (a line)
from console to a variable
(example> "line = READLIST
PRINT :line )
new command: variablestring
= APPEND string - appends a string to a string
fileio:
new
command: OPENFILE filenamestring "r or "w - opens one file for read or write (example> openfile "xfiles.txt "w )
new command: CLOSEFILE - closes the one opened file (example> closefile
)
new command: varstring = READCHARFILE - reads a char
from the opened file to variable (example> "c = readcharfile )
new
command: WRITELINEFILE string - writes a string to the opened file followed by carriage return "\n" (example> writelinefile
"[This is the first line.] )
removed
command CALC, now after the equalsign "=" follows the expression (example> "x = 7 )
NEW! correct mathemathical expressions:
after
the equalsign "=" a correct mathematical expression also with parentheses ( ) before */ before +-
is possible with the commands listed under language/math.
(example> "x = 7 + :y * 3 * ( :a + random 42 ) )