npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@imbrn/ace

v0.0.3

Published

A charming engine. A simple and charming 2D game engine for Javascript.

Downloads

4

Readme

What is it?

Ace is designed to be a really small and lighweight engine for 2D games.

  • It has no complicated physics;
  • It has no fancy tools for making advanced games;
  • It's just a wrapper around the HTML Canvas abstraction with a basic game loop; and some more nice stuff :)

That's it. It's perfect for the ones that are making simple games for fun or learning. If your intention is to making advanced and powerful games, there are a lot of better options outside there.

Development stage

Ace is in a very initial development stage. It's not ready for production yet.

It'll be awesome if you become part of this. Contributions are really really welcome! Let's have fun! :)

Installing

Install it using npm (or yarn)

npm install @imbrn/ace

or

yarn add @imbrn/ace

Install it using a CDN

<script src="https://cdn.jsdelivr.net/npm/@imbrn/ace/dist/ace.min.js"></script>

or

<script src="https://unpkg.com/@imbrn/ace/dist/ace.min.js"></script>

For other installation options, or if you want to start developing your own version, check the building section.

Basic example

import { Game, Scene, rect } from "ace.js";

// Implementing a game scene
class MyGameScene extends Scene {
  constructor() {
    super({ width: 1600, height: 900 });
  }
  
  udpate(elapsedTime) {
    // update your game progress
  }
  
  draw() {
    // draw your game state this.canvas API
    this.canvas.fillStyle = "black";
    this.canvas.fill(rect({ x: 0, y: 0, width: 1600, height: 900 }));
  }
  
  onClick(event) {
    // capture user click events
  }
  
  onKeydown(event) {
    // capture user keydown events
  }
}

// Creating game
const game = new Game(document.querySelector("#my-canvas"));
game.currentScene = new MyGameScene();
game.start();

Building

After cloning this repo, install the dependencies:

npm install

For building the library, run:

npm run build

This is going to create a build folder with the generated Javascript files for CommonJS, UMD, AMD, ESM, browser and system modules.

For running the examples, you can execute:

npm start

This is going to start a local server with hot-reload enabled by default. Then, you can open your browser, access the address indicated in the console and add /example-name for accessing the example-name.

License

MIT License