Tophat is a friendly 2d game library for the Umka programming language. Visit the homepage for more info. You can browse the API reference here
Creating a moving rectangle is as easy as this:
import ("th.um"; "rect.um"; "input.um"; "canvas.um"; "window.um")
fn main() {
const speed = 100
window.setup("my game", 400, 400)
window.setViewport(th.Vf2{200, 200})
pos := th.Vf2{100, 100}
for window.cycle() {
var change: th.Vf2
// Handle input
if input.isPressed(input.key_left) { change.x -= 1 }
if input.isPressed(input.key_right) { change.x += 1 }
if input.isPressed(input.key_up) { change.y -= 1 }
if input.isPressed(input.key_down) { change.y += 1 }
// Apply movement
pos = pos.add(change.norm().mulf(speed * th.delta / 1000.0))
// Draw!
canvas.drawRect(th.green, rect.mk(pos.x, pos.y, 10, 10))
}
}
Draw an image to the screen using this:
import ("window.um"; "image.um"; "th.um")
fn main() {
window.setup("image drawing", 400, 400)
img := image.load("my-image.png")
for window.cycle() {
img.draw(th.mkTransform(th.Vf2{ 0, 0 }))
}
}
You can look at more complex examples in the
examples/
folder.
Tophat is licensed under the BSD-3 license.