simple-turtle
v2.6.0
Published
A TypeScript implementation of the famous TurtleJS project based on LOGO.
Downloads
6
Maintainers
Readme
better-turtle
A TypeScript port of the famous Turtle JS project.
📔 Complete documentation -> Here
🐢 What is BetterTurtle ?
Turtle JS is a graphic library based on the LOGO programming language aimed towards education. It allows JavaScript beginners to handle programming in a very graphic way, every action is rendered visually, making it easy to understand the principles of programming. BetterTurtle is an improved version of the many existing ones into TypeScript.
📥 Installation
Option 1 - Include in a HTML script tag
You can directly include a minified (No IntelliSense) version of the code into your HTML page.
<script src="https://github.com/Caesarovich/better-turtle/releases/download/v1.2.1/main.min.js"></script>
Option 2 - Install from NPM
npm install --save better-turtle
Option 3 - Clone and build from source
# Clone the repo in your project directory
git clone https://github.com/Caesarovich/better-turtle
# Build the library
cd "better-turtle" && npm i && npm run build
# Then install it to your project
## 1 - Browser
npm exec webpack && mv dist/main.min.js ../turtle.min.js
## 2 - NPM
cd ../ && npm install better-turtle
⌛ Quickstart
In browser
const { Turtle } = BetterTurtle;
// Get an HTML Canvas element
const canvas = document.getElementById('my-canvas-element-id');
const ctx = canvas.getContext('2d');
// Instanciate a new Turtle
const tur = new Turtle(ctx);
tur.goto(-350, 0).forward(60).left(50).forward(300);
NodeJS
import { createCanvas } from 'canvas';
import { Turtle } from 'better-turtle';
const canvas = createCanvas(400, 400);
const ctx = canvas.getContext('2d');
const turtle = new Turtle(ctx);
turtle.forward(100).right(90).forward(50);
🔗 Exposing methods
Using the .expose
method, it is possible to expose a Turtle instance's methods onto a JavaScript Object. It is particularly useful when using it with a global object such as the window
object in browsers.
Note: It is possible to remap the methods with the optionnal parameter. Further details in the docs 📔
const turtle = new Turtle(ctx);
turtle.expose(window);
// ...
forward(50);
right(120);
setColor('red');
forward(150);
hide();
⏲️ Events
The Turtle class extends the EventEmitter Class. Allowing you to listen to events such as 'step'
or 'forward'
when the turtle is in StepByStep Mode.
const turtle = new Turtle(ctx);
turtle.on('step', (step) => {
console.log(`The turtle has done an action: ${step}`);
});
turtle.forward(120).left(90).forward(30).right(90);
In this exemple, every action will be logged in the console.