- Java 12 on your shell path
git clone https://github.com/ndon55555/Tetris.git
cd Tetris
./gradlew :desktop:runGame
git clone https://github.com/ndon55555/Tetris.git
cd Tetris
./gradlew :browser:runServer
- Go to
localhost:8080
in your browser.
- Iterating over a parallel stream of a synchronized collection is not automatically thread-safe.
Timer.schedule(...)
vsTimer.scheduleAtFixedRate(...)
.- To set an event handler on the entire window in TornadoFX, register it on the current stage during the
View
'sonDock()
method. - To have fine control of multiple key presses at once, keep track of the keys pressed and released.
- If it's necessary to stop a thread that is currently sleeping, call its
interrupt()
method. Wherever theThread.sleep()
inside of that thread is executed must be wrapped in atry-catch
block that handlesInterruptedException
. - To make sure a thread stops when the main program has ended, set it to a daemon thread before execution.
- At the time of this writing, Travis CI doesn't have a text area where you can input multiline environment variables.
They only provide a text field. To get around this, simply replace new lines with
\n
, then prefix the string with$'
and append'
(e.g.$'like\nthis'
).