Version 1.17.1 of ugBASIC and UGBASIC-IDE has just been released. In addition to containing strong optimizations and corrections for all targets, preliminary support for automatic animations and synced movements is available.
In addition to containing numerous fixes and corrections for all targets, DOJO protocol support has been improved, and simplified instructions are now provided for creating rooms and communication channels. DOJO protocol is also available on FujiNet and, in general, for any device that supports serial communications.
New instructions have been included: JMOVE
, which allows you to update the coordinates based on the movement of the joystick; BOTTOM
and LBOTTOM
which allow you to position cursor in the last line of the screen and, optionally, in the first column; VCENTER
and VHCENTER
, which allow you to print a string in the center of the screen (vertically and also horizontally); RANGE
, which allows you to check if a variable is in a range; SLEEP
, to wait a certain number of seconds.
In terms of language, it is now possible to define functions (FUNCTION
), that is, procedures with parameters and composed of a single expression, which is the result of a calculation. It is also possible, for those hardware that allow it, to obtain the character present in a specific position with the SCREEN
and SCREEN$
functions. Furthermore, it is possible to obtain the sum of all the elements of an array with the (ARRAY) SUM
command as well as count how many elements have a certain value with (ARRAY) COUNT
. It is now possible to limit a DO..LOOP
with a WHILE
or an UNTIL
at the end of the LOOP
and, finally, the FLOAT
type can also be called SINGLE
.
The compiler has also been improved, with some consistency checks and several changes for games written for the BASIC 10 liner contest. In particular, many commands have been made composite and, therefore, abbreviatable with a single instruction, and polymorphism, typical of the BASIC language, is widely supported. Furthermore, where the default value is obvious, it will be possible to omit it (as happens with the JOY
or GET
commands), and the screen border will always be set to “black”, by default.