peekpoke
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

PEEKPOKE

Tiny minimum retro fantasy console having only two commands: peek and poke.

Sample game 'BOMB SNAKE'

BOMB SNAKE

Games for PEEKPOKE can be written in simple JavaScript code. PEEKPOKE games run in the browser of any PC or mobile device.

Memory map

memory_map

You can draw pixels or text by writing a number to a specific address in memory (poke), or get the input status of a key by reading a number from the address (peek).

Getting started

Download docs/getting_started/index.html and write your game code in the <script> element. Open index.html in a browser and play the game.

Use with npm

% npm i peekpoke

The peekpoke library must be imported and initialized.

import "peekpoke";
initPeekpoke({ setup, loop, enableSplashScreen: false });

function setup() { ... }

function loop() { ... }

Sample snippets

Draw a pixel

// Draw a red pixel at (x, y).
poke(ADDRESS_VIDEO + x + y * VIDEO_WIDTH, COLOR_RED);

Draw a text

// Draw a 'A' text at (x, y).
poke(ADDRESS_TEXT + x + y * TEXT_WIDTH, "A",charCodeAt(0));

Set text color

// Make the text color green.
poke(ADDRESS_TEXT_COLOR + x + y * TEXT_WIDTH, COLOR_GREEN);

Set text background color

// Make the text background color blue.
poke(ADDRESS_TEXT_BACKGROUND + x + y * TEXT_WIDTH, COLOR_BLUE);

Check keystroke state

// Check if the up key is pressed.
if (peek(ADDRESS_KEY + KEY_UP) & KEY_STATE_IS_PRESSED) ...
// Check if the left key is just pressed.
if (peek(ADDRESS_KEY + KEY_LEFT) & KEY_STATE_IS_JUST_PRESSED) ...
// Check if the X key is just released.
if (peek(ADDRESS_KEY + KEY_X) & KEY_STATE_IS_JUST_RELEASED) ...

Buzzer

// Buzzer at 500 (50 x 10) Hz.
poke(ADDRESS_BUZZER, 50);
// Stop buzzer.
poke(ADDRESS_BUZZER, 0);

Other sample games

Package Sidebar

Install

npm i peekpoke

Weekly Downloads

3

Version

1.0.0

License

MIT

Unpacked Size

41.2 kB

Total Files

8

Last publish

Collaborators

  • abagames