110 lines
2.6 KiB
Plaintext

import { Color } from @core:color;
import { Log } from @sdk:log;
import { Input } from @sdk:input;
import { Gfx } from @sdk:gfx;
import { Assets } from @sdk:asset;
declare global loading_handle: int = -1;
declare global loading_status: int = -1;
declare global frame_counter: int = 0;
declare global tile_id: int = 0;
declare const MAX_FRAMES: int = 4;
[Init]
fn init() -> void
{
loading_handle= -1;
loading_status = -1;
frame_counter = 0;
tile_id = 0;
}
[Frame]
fn frame() -> void
{
Gfx.clear(new Color(6577));
if (loading_handle == -1) {
let t : (status: int, loading_handle: int) = Assets.load(assets.ui.atlas2, 3);
if (t.status != 0) {
Log.failure("load failed");
} else {
loading_handle = t.loading_handle;
Log.info("state: loading");
}
} else {
let s : int = Assets.status(loading_handle);
if (s == 2) {
let commit_status : int = Assets.commit(loading_handle);
if (commit_status != 0) {
Log.failure("commit failed");
}
} else if (s == 3) {
let sprite_status : int = Gfx.set_sprite(3, 10, 150, 150, 0, 0, true, false, false, 1);
if (sprite_status != 0) {
Log.failure("set_sprite failed");
}
} else {
Log.info("state: waiting");
}
}
let touch : InputTouch = Input.touch();
if (touch.button().released())
{
frame_counter = 0;
tile_id = 0;
}
if (touch.button().down())
{
frame_counter = frame_counter + 1;
if (frame_counter > MAX_FRAMES)
{
frame_counter = 0;
tile_id = tile_id + 1;
if (tile_id > 7)
{
tile_id = 0;
}
}
}
Gfx.set_sprite(0, 0, touch.x() - 16, touch.y() + 8, tile_id, 0, true, true, false, 0);
Gfx.set_sprite(0, 1, touch.x() + 16, touch.y() + 8, tile_id, 0, true, false, false, 0);
let a : int = 10;
let b : int = 15;
let total : int = a + b;
if (Input.pad().a().pressed())
{
total += 25;
}
else if (Input.pad().b().pressed())
{
total += 5;
}
else if (Input.pad().x().pressed())
{
total -= 10;
}
if (total == 30)
{
Log.info("30 is the magic number!");
}
else if (total == 50)
{
Log.failure("50 is the magic number!");
}
else if (total == 15)
{
Log.warn("The magic number is neither 30 nor 50!");
}
}