Find a file
2024-10-23 00:32:14 -04:00
assets Extract 2d and 3d functions into separate libraries 2024-10-07 01:05:59 -04:00
examples Minor updates, add line_intersect example 2024-10-23 00:32:14 -04:00
scripts Extract 2d and 3d functions into separate libraries 2024-10-07 01:05:59 -04:00
spec Extract 2d and 3d functions into separate libraries 2024-10-07 01:05:59 -04:00
src Minor updates, add line_intersect example 2024-10-23 00:32:14 -04:00
.editorconfig Initial commit 🎮 2021-11-25 20:57:57 -05:00
.gitignore Minor updates, add line_intersect example 2024-10-23 00:32:14 -04:00
LICENSE Initial commit 🎮 2021-11-25 20:57:57 -05:00
README.md Fix Typo 2022-02-27 12:53:20 -05:00
shard.yml Minor updates, add line_intersect example 2024-10-23 00:32:14 -04:00

PixelFaucet Game

GitHub release

PixelFaucet is a "Game Engine" written in the Crystal programming language and uses SDL2 under the hood to create a window, renderer, and draw pixels. See the examples.

The examples can be built by running the ./scripts/build_examples.rb script. This will place the binaries in the examples/build folder.

Setup

PixelFaucet requires the crystal compiler which can be installed via homebrew

  • Install crystal
brew install crystal
  • Install sdl2
brew install sdl2
  • Create a new project:
crystal init app my_game
  • Add the dependency to your shard.yml:
dependencies:
  pixelfaucet:
    github: sleepinginsomniac/pixelfaucet
  • Run the shards command:
shards install

Usage

require "pixelfaucet/game"

class Example < PF::Game
  def update(dt)
  end

  def draw
    clear
    0.upto(width) do |x|
      0.upto(height) do |y|
        draw_point(x, y, PF::Pixel.random)
      end
    end
  end
end

e = Example.new(100, 60, 5)
e.run!

Documentation

Run crystal docs to generate documentation. The documentation can then be found under the docs folder.

Contributing

  1. Fork it (https://github.com/sleepinginsomniac/pixelfaucet/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors