source code demo here
source code demo here
Bernard’s Enterprise Edition Basic
Basic for the JVM. The github project at https://github.com/bernardjason/beeb allows a basic program to be developed and compiled to Java classes.
The project was/is a rough and limited attempt at implementing something like BBC Basic on the Java Virtual Machine. There are plenty of things missed out as well as a couple of extras like making it capable of being a webserver, database access and some JSON support.
I’ve included a version of the hangman program in the BBC user guide as well as a simple webserver that offers a blog writing to a database in BEEB basic.
I’ve got an article published in Linux Format issue 214 https://www.linuxformat.com/archivesabout Rest,Swagger and Play with a demo application using Google Charts to display a timeseries overtime. There are 2 demos, one tracking the share price of BT compared to FTSE 100 and the temperature difference between London and Darlington.
The database for Play implementation is Sqlite. The play implementation is 2.4 as 2.5 was too fresh to support Swagger at the time. I wanted to show how easy it is to add Swagger annotations to a simple interface.
Finally as it’s Play it was easy to deploy this to Heroku. Albeit changing the database from Sqlite to Postgres. See
and the 2 charts
Source code is available here
I’ve produced this very simple game
source code available here https://github.com/bernardjason/holeinone
I’ve pulled together some code I had to show how to put together something using libgdx and scala that can run on either desktop or android platform. I’ve not tried it with a Mac. This wont work with HTML flavour libgdx as it’s scala.
The game uses the arrow keys, mouse or screen press to move the gun. Press and hold the spacebar, mouse button or screen then release to fire a missile at the bouncing ball.
The intention of this code is something to pick the bones out of or use as a start for something else.
Things of note
file local.properties contains the location of the android sdk. So this needs to be changed to where you’ve installed it.
core/build.gradle has been changed to build scala source
class FlatTerrain extends class BaseTerrain. This class supports an uneven terrain as well as the simple flat terrain shown in the game.
to a linear
For collision detection I’ve not used Bullet physics but rather sphere collision bernardcjason.gdx.basic.shape.CollideSphere.
I’ve created a utility to try and mimic what Dropbox does on Linux for Google Drive. Google hasn’t provided as yet a Linux tool to keep a local Linux directory and Google Drive in sync, unlike Dropbox.
The project is available here
The utility uses Google’s api library rather than using the REST api directly so integration with Scala was straight forward. I also provided some integration with the Linux status tray as well as using Swing for Scala which was something new for me. The utility is capable of being nohup’ed safely, and as it uses sbt assembly it is self contained, needing only a jdk 1.7 or greater to run.
My aim with this tool was to provide a way for me to backup files from my Linux box to the free 15gb I have on Google.
One comment I did see for another tool for Linux called “drive”, “Background sync is not just hard, it is stupid”. I’d agree it is harder than I thought, I’ll see how I get on now I’m using my own tool in anger as to how stupid I was writing it.
Go to core project and the desktop project, right click and select Configure, then add Scala nature
You should now have in the build path
“Scala Library Container”
you need a Scala nature on both projects for adding Scala code to the core as well as running the program via desktop project. That said all logic should sit in core project if you are to run the final app on android and desktop.
find the SimpleGame.java class in the core project and delete it.
Create a new SimpleGame.scala class instead in the same package, with the following code
to enable scala when building from command line add
apply plugin: “scala”
./gradlew clean desktop:run
./gradlew clean android:installDebug android:run
First get the setup application, libGDX uses Gradle rather than download the entire library
java -jar ~/Downloads/gdx-setup.jar
decide on package and game names. Also decide if you want ios and html version. I’ve never tried anything apart from hello world with html and I don;t have access to a mac to have tried ios. I always select desktop for testing my app and android as the end goal.
You may need to update android build tools if message
is displayed. If so run the tool within android sdk directory
tools/android update sdk
If like me you like using an IDE, select advanced settings to generate eclipse project files, so that you can import into eclipse later on
Once the code is generated by gdx-setup you can then go to eclipse and import the projects. The tool has created the .project, .classpath and .settings for you.
go to eclipse menu, select File then Import.
Make sure you import core project and desktop project into eclipse.