Version 1.2.1 released.
New/updated BASIC commands:
- AnimateSprites and AnimateSpriteFrames routines now have an optional "factor" by which the sprite velocity, spin and animation speed is multiplied.
- TickCountElapsed() function returns the number of ticks (milliseconds) since the previous call.
- SecondsElapsed() function returns the number of seconds since the previous call.
- Improved screen resizing in Windows and WebAssembly runtimes. now automatically calls glViewPort behind the scenes so that the whole window is accessible. This results in sprites and text being stretched to the new window size. If this is not what you want, you can detect the new window size by checking whether WindowWidth() and/or WindowHeight() has changed and call ResizeSprites() and/or ResizeSpriteArea() accordingly.
- This also means the WebAssembly scale and stretch modes now work correctly.
Make sure to update the Basic4GL Android app as well (if it doesn't update automatically).
Remember, if you've purchased an earlier version of Basic4GL Mobile, use the download link from your original email to download the latest version. If you've lost/deleted the email, email me (click the icon at the top of this page) and I can arrange to have it resent.
Create browser based games and apps
Click here to see a Basic4GL Mobile in-browser app.
Basic4GL Mobile has a new WebAssembly target.
Install WebAssembly development tools, point Basic4GL Mobile to your Emscripten SDK folder and
publish your BASIC program to the web. See the help section for more details.
Note: WebAssembly is relatively new at time of writing and browser vendor support varies (but should improve).
It currently works well on Firefox and Chrome. I expect Edge support to roll out soon.
Important info for existing customers
If you've purchased an earlier version of Basic4GL Mobile, use the download link from your original email
to download the latest version. If you've lost/deleted the email, email me (click the icon at the top of
this page) and I can arrange to have it resent.
New improved behaviour in Android runtime
- Android application doesn't restart if suspended and resumed (e.g. switched to the background). Basic4GL runtime reestablishes OpenGL context, reloads all textures and carrys on from where it left off.
New BASIC language features
- Added support for function pointers. See language guide for more information.
New BASIC routines/functions
- WasProgramSuspended() function to detects whether the program has just resumed from being suspended. (Can use this to pause the game for example).
- DeleteTex() and DeleteTexArray() routines for freeing textures.
- Added TEXT_OVERLAID constant for TextMode() routine and SwapBuffers() routine (actually they were already there, but not really useful without ClearScreen(), so were previously undocumented.
- Added ClearScreen() routine for use in this mode.
- Fix crash when variable is evaluated before program has been run.
- Fix issue that prevented larger jpeg images from loading.
IMPORTANT: Due to the new commands the format for the virtual machine state (program.vm) has been changed.
If you generate a program.vm file with the new Windows application and attempt to run it on an older Android runtime IT WILL NOT WORK. Likewise if you try to run a program.vm file generated with an older Windows application on a newer Android runtime IT WILL NOT WORK.
Please make sure you update BOTH the Windows Application and Android runtime to the same version and rebuild your program.vm files
Very happy to say that Basic4GL Mobile v1.0 is here!
The main new piece is the Pro version, which can turn your BASIC game/program into a
stand-alone Android App, which doesn't require the Basic4GL App in order to run, and
can be sumitted to the Google Play store.
Basic4GL Mobile Pro can be purchased for $15 USD. See the
Twin stick shooter tutorial
A new tutorial on how to create a twin stick
shooter for PC and mobile. Now up on the tutorials page.
- Fix "run" command so that textures, sprites, sound effects etc are released.
- Set a FileError() message if OpenFileRead() or OpenFileWrite() fails.
This version also has improvements to the immediate mode UI. Text boxes will automatically
focus and bring up the on screen keyboard (rather than waiting for you to touch them), as well
as automatically advancing to the next text box when you press enter.
- Added general purpose file I/O commands (see Programmers' Guide help file).
- Fixed crash when loading non power-of-two images.
- Added support for loading jpeg images.
- Added sound and music support.
Also added an immediate mode UI. This makes it easy to add buttons, sliders, text boxes
and on-screen joysticks to games/programs with very little code. This is particularly
useful for mobile devices which don't (usually) have a keyboard or mouse.
See the included demo programs for examples.