am1goo / playdate4j

Java framework to create games for Playdate console made by Panic Inc.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 API for 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

  • full C API coverage
  • well-automated app creation process
  • using Java-to-C code conversion instead of JavaVM on device

Requirements

  • Playdate SDK 2.3.x version or higher from official site
  • g++ compiler, like mingw64
  • Java Development Kit 1.6 version or higher

Contribute

Contribution in any form is very welcome. Bugs, feature requests or feedback can be reported in form of Issues.

About

Java framework to create games for Playdate console made by Panic Inc.

License:MIT License


Languages

Language:Java 52.5%Language:C++ 43.9%Language:Batchfile 2.4%Language:CMake 1.0%Language:C 0.2%