Git Product home page Git Product logo

ascii-paint's Introduction

Ascii-Paint

Animated ascii gif

This is a fork of Ascii-Paint which revamps the GUI and adds a number of new features.

ASCII-Paint is a simple open source painting program which uses ASCII characters instead of pixels. It is made for roguelike developers but it can be used by anyone.

Developers:

  • 2011-2012 Ben Porter
  • 2009-2010 Shafqat Bhuiyan & Jice

Quick Start

The program is quite self-explanatory though there are a few things that are not entirely obvious:

  • Press Tab to hide/show the GUI
  • When drawing text, type the text, click the position where you want to place it then press enter to confirm
  • Press CTRL+Left Click to drag the canvas
  • Saving a file ending with a 'z' makes a compressed file(eg. myfile.ascz, myfile.acz, myfile.gz)

Features

As of version 0.3.2 the following features are available:

GUI

  • GUI based interface with tooltips
  • Keyboard shortcuts
  • Palette color chooser
  • Fullscreen color chooser
  • Symbol chooser
  • Fullscreen support
  • Hiding/Unhiding GUI (pressing TAB)
  • Move mouse with keyboard (arrows and num pad)
  • Image and solid view modes
  • Grid

Drawing

  • Arbitrary sized canvases
  • Draw single cells, lines, rectangles, ovals and text
  • Holding shift draws straight lines/squares/ovals
  • Flood filling
  • Color picker
  • Copy/Paste
  • Undo/redo
  • Roguelike Tools
  • Cells can be solid
  • Field of view tool
  • 4 FOV algorithms
  • Path finding tool

File handling

  • Opening and saving .asc files
  • Opening and saving compressed files (files ending with a 'z')
  • Importing text, foreground and background colors
  • Exporting .png, .bmp, text, foreground and background colors
  • Exporting to animated .gif (the program dices up the canvas into frames)

Configuration

  • Configurable options (ascii-paint.cfg)
  • Palettes (palettes.cfg)
  • Window size
  • Full screen
  • Window Background color
  • FPS (frames per second)
  • Font
  • Canvas Size
  • Initial brush properties
  • GUI colors

Shortcuts

  • CTRL+N: New
  • CTRL+O: Open
  • CTRL+S: Save
  • CTRL+Q: Quit
  • CTRL+Z: Undo
  • CTRL+Y: Redo
  • CTRL+H: Hide/Show mouse
  • CTRL+C: Copy
  • CTRL+V: Paste
  • TAB: Hide/Show GUI
  • c: Cell
  • l: Line
  • r: Rect
  • o: Oval
  • f: Fill
  • t: Text
  • p: Pick
  • Arrow Keys: Move the mouse
  • Numpad: Move the mouse
  • CTRL+Left Click: Drag the canvas view
  • CTRL+Right Click: Reset canvas view
  • ALT+ENTER: Switch to Fullscreen/Windowed
  • SHIFT: Draw straight line/square/circle

Color Selector

You can open up the full screen color selector by clicking on the 'C' in the palette. To select a color click on it. To change the saturation of the colors, right click a color from the gray colors.

Export/Import

You can import and export text, foreground and background colors. In addition you can also export the current image to bmp, png, or as an animated gif. Importing and exporting text is done by .txt files. Foreground and background colors are .pngs where each pixel represents the foreground or background color of a cell in the image.

FOV

Currently the FOV functionality is disabled.

FOV stands for Field Of View. FOV is used to see what someone standing at some point can see. ASCII-Paint currently offers 4 types of algorithms: (taken from libtcod docs) Basic : classic libtcod fov algorithm (ray casted from the player to all the cells on the submap perimeter) Diamond : based on this algorithm Shadow : based on this algorithm Permissive : based on this this algorithm

Configuration

ASCII-Paint is configured using the ascii-paint.cfg file. Most of the options are quite obvious. In case you screw up the file, just copy ascii-paint.cfg.bak into ascii-paint.cfg. Colors are specified by "#RRGGBB" or "rrr, ggg, bbb".

For the font layout the following three options are available:

"incol" = the font has the characters going down in columns. ie b is underneath a

"inrow" = the font has the characters going across in rows. ie. b is to the right of a

"tcod" = for custom characters. Is not fully implemented yet. The font type is either "greyscale" or "normal". "greyscale" means that gray pixels will be considered transparent. "normal" means all non-black pixels will be considered opaque.

Extra tips

During the middle of a drawing operation, press the opposite mouse button erases the drawing. eg if you are holding down the left mouse button while drawing a line and then press the right mouse button at the same time, then that line is erased.

Building

To build ascii-paint, you can use cmake:

mkdir build
cd build
cmake ..
make
make install

Then run ascii-paint.exe from within bin/

ascii-paint's People

Contributors

eigenbom avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.