Playdate4j
Java framework to create games for Playdate console made by Panic Inc.
Install / Use
/learn @am1goo/Playdate4jREADME
playdate4j
Java framework to create games on Playdate console.
ATTENTION: it is an experimental version, I don't sure that you should to use it in production purposes right now.
What inside?
- full support of
Playdate API - pretty good works in
Playdate Simulator - easy-to-use
Localization APIfor system languages and any others
C API support
=100%= Logging API
=100%= System Menu API
=100%= Time and Date API
=100%= Miscellaneous API
=100%= Audio API
=100%= Display API
=100%= Graphics API
=100%= Video API
=100%= Input API
=100%= Device Auto Lock API
=100%= System Sounds API
=100%= Sprites API
=100%= Sprite Collisions API
BUT
=000%= JSON API (skipped API, package com.google.code.gson would be better)
Let me explain what it looks like:
public class ExampleGameCycle implements GameCycle {
private Graphics.LCDBitmap playerBitmap;
private Sprite.LCDSprite player;
@Override
public void start() {
playerBitmap = Graphics.loadBitmap("images/player");
player = Sprite.newSprite();
player.setPosition(lcd_columns / 2, lcd_rows / 2);
player.setImage(playerBitmap, Graphics.LCDBitmapFlip.Unflipped);
Sprite.addSprite(player);
}
@Override
public void loop() {
Graphics.clear(Graphics.LCDSolidColor.White);
int xDir = 0;
int yDir = 0;
if (Input.isButton(Input.PDButtons.Up)) {
yDir--;
}
if (Input.isButton(Input.PDButtons.Down)) {
yDir++;
}
if (Input.isButton(Input.PDButtons.Left)) {
xDir--;
}
if (Input.isButton(Input.PDButtons.Right)) {
xDir++;
}
float deltaTime = Game.getDeltaTime();
float dx = 100 * xDir * deltaTime;
float dy = 100 * yDir * deltaTime;
player.moveBy(dx, dy);
Sprite.updateAndDrawSprites();
}
@Override
public void stop() {
if (player != null) {
Sprite.removeSprite(player);
Sprite.freeSprite(player);
player = null;
}
if (playerBitmap != null) {
Graphics.freeBitmap(playerBitmap);
playerBitmap = null;
}
}
}
Roadmap
- [X] full
C APIcoverage - [ ] well-automated app creation process
- [ ] using
Java-to-Ccode conversion instead of JavaVM on device
Requirements
Playdate SDK2.5.x version or higher from official siteg++compiler, like mingw64Java Development Kit1.6 version or higher
Contribute
Contribution in any form is very welcome. Bugs, feature requests or feedback can be reported in form of Issues.
Related Skills
gh-issues
337.7kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
node-connect
337.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
oracle
337.7kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
tmux
337.7kRemote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
