Provides a screen to draw pixels to with a basic rendering update loop and accepts user input
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
PixelEngine/README.md

29 lines
2.6 KiB

# PixelEngine
A small pixel-based game / rendering engine made in Java highly influenced and similar to the olcPixelGameEngine.
Usage:
Main engine file is in `JavaProjectTemplate.java`. If you choose to rename this file you should probably have your IDE refactor it so all references change accordingly. Better to just leave it as-is.
You will also have to update the `sig` script with the new `PROJECT_NAME` value.
# Window
Window Width, Height, and the title can all be customized.
# Drawing
You will find all possible drawing features under the `game` Panel object that is initialized for you. Draw commands all start with `Draw` or `Fill`. The example program contains quite a few of the possible draw commands available.
## Sprites
Sprites can be placed in the `sprites` folder and referenced accordingly. Instantiating a new `Sprite` class or `AnimatedSprite` class with the name will auto-load it in. Animated Sprites need their base width and height defined, the engine will figure out the animation frames for the rest of the image. `DrawAnimatedSprite` functions request what index of the animation to draw, you feed that yourself. Only horizontal animation strips are supported by default.
# Input
Mouse input is handled from the `Mouse` static instance. Can poll for `Held`,`Pressed`, and `Released` status of the mouse.
Keyboard input is handled much the same way with the `Key` static instance. Also has `Held`,`Pressed`, and `Released` statuses per key. Keycodes come from the Java Swing `KeyEvent` class (ex.`KeyEvent.VK_UP`).
# Sounds
Sounds can be loaded up and played by creating new instances of the `Sound` class. There is also a loop variable which determines whether or not a sound loops. You can set it in the constructor using the `new Sound(filename,loop)` constructor or set it using the `setCanLoop()` function. You can control the volume of a suond using `setVolume(val)` where val is a number between 0-100 (percent). By default sounds play at 100% their original volume.
Each sound consumes an active line on your sound device. To clear the line, use the `unload()` function, which is useful when your game no longer needs to use that sound or when trying to load a different sound to replace it (say background music).
# Building
I include some compile scripts, but you are free to use your own. `./sig` lists all possible commands, `./sig build` builds and tries to run the compiled Java classes. `./sig jar` will output a jar. `./sig zip` will piece together the sprites folder, bin folder, and a run script (for Linux) to run a finished java jar, which provides an easy way to "export" the game.