pf2d
Version, currently 0.5.07 versions
github.com/SleepingInsomniac/pf2d
PixelFaucet 2d graphics library
1 stars
2 dependents
License: Apache-2.0
Installation
# Add this to your shard.yml
dependencies:
pf2d:
github: SleepingInsomniac/pf2d
version: ~> 0.5.0Then run:
shards installshard.yml
- Crystal
>= 1.13.2- License
- Apache-2.0
- Author
- Alex Clink
Dependencies
This version declares no dependencies.
README
PF2d
PF2d is a 2d drawing library that provides a set of structs and methods for 2d drawing operations. PF2d was extracted from PixelFaucet.
Installation
-
Add the dependency to your
shard.yml:dependencies: pf2d: github: sleepinginsomniac/pf2d -
Run
shards install
Usage
require "pf2d"
char_grid = PF2d::Grid(Char).new(11, 11) { ' ' }
char_grid.fill_circle(PF2d::Vec[5, 5], 5, '#')
char_grid.each_row do |row|
puts row.join
end
###
#######
#########
#########
###########
###########
###########
#########
#########
#######
###
Implementing your own
class View
include PF2d::Viewable(Color)
#...
def get_point?(x, y) : Color?
return nil unless in_bounds?(x, y)
# @data[y * width + x] ... etc.
end
end
class Draw
include PF2d::Drawable(Color)
#...
def draw_point(x, y, value)
return nil unless in_bounds?(x, y)
# @data[y * width + x] = value ... etc.
end
end
Caveats
- Drawing operations don't anti-alias
Contributing
- Fork it (https://github.com/sleepinginsomniac/pf2d/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
Contributors
- Alex Clink - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.5.0- Tagged
- Feb 10, 2026
- Commit
e8bdd9a2f1f6- Crystal
>= 1.13.2- Indexed
- yes
Dependents
Repository
github.com/SleepingInsomniac/pf2d
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 7