A package to draw Karel in graphics projects.
For use by students who want to make art or games with Karel as a character.

tBKwtWS 2c3af6bc74 Update 'README.md' 1 ngày trước cách đây
README.md 2c3af6bc74 Update 'README.md' 1 ngày trước cách đây
karel_asset.py 8ed0919d59 Update 'karel_asset.py' 1 ngày trước cách đây

README.md

karel_asset

A package to draw Karel in graphics projects. For use by students who want to make art or games with Karel as a character.

Getting started

  1. In CIP6 click on "Code / You own", or on CIP self-guided clock on "Code / You own"
  2. Create a new or open an existing graphics project
  3. Go to the Project Files view by clicking the "Files" button in the ribbon on the left
  4. Add the karel_asset.py file by:
    • Either clicking the CIP icon of a file with a plus sign (+) in it to add a new file and paste the content of karel_asset.py
    • Or by downloading/cloning this project and uploading the karel_asset.py file with the upload button on the CIP IDE

Using karel_asset.py when it is added to a CIP project

In your main.py or any other project file on CIP, add: from karel_asset import *

Drawing Karel

To simply draw a Karel in the top left corner use: draw_karel(canvas) But surely this will not suffice for any project so there are optional arguments to pass:

  • centre_x
  • centre_y
  • size
  • orientation
  • colour
  • background
  • transparent

Coordinates

To draw a Karel in the middle of X / Y coordinates 100 / 100, use the optional arguments centre_x, centre_y:

draw_karel(canvas, 100, 100)

Size

To draw a Karel of size 200, use the optional argument size:

draw_karel(canvas, size=200)

Orientation

To draw a Karel facing north, use the optional argument orientation:

draw_karel(canvas, orientation="north")

Orientation options:

  • "east"
  • "east-flipped"
  • "north"
  • "north-flipped"
  • "west"
  • "west-flipped"
  • "south"
  • "south-flipped" Flipped makes Karel appear upside down.

Colour

To draw a Karel in any colour use the optional argument colour:

draw_karel(canvas, colour="red", background="#FF8833")

Colour names and hex codes are accepted, just like normal for any CIP graphical object.

Transparancy

To draw a transparant Karel, which only has outlines and no fill, use the optional argument transparent:

draw_karel(canvas, transparent=True)

Examples

Draw a Karel at 85x and 35y upside down facing east with a red outline and blue filling:

karel_east_mirrored = draw_karel(canvas, 85, 35, 100, "east-flipped", "red", "blue")

Draw a Karel at 135X and 35y, facing west with a red background:

karel_west = draw_karel(canvas, centre_x=135, centre_y=35, orientation="west", background="red")

Changing colour

To change the colour of any created Karel, use recolour_karel(karel, colour, background). For example changing a red/blue Karel to a green/yellow Karel:

my_karel = draw_karel(canvas, colour="red", background="blue")
my_karel = recolour_karel(my_karel, colour="green", background="yellow) 

Changing position

To change the position of a Karel on the canvas, use move_karel(karel, dx, dy). Where dx is the amout of pixels shifted horizontally, and dy is the amount of pixels shifted vertically. To move a Karel up 10 pixes:

my_karel = draw_karel(canvas, colour="red", background="blue")
my_karel = move_karel(my_karel, dy=-10,)

To move a Karel down 10 and left 10 pixels:

my_karel = draw_karel(canvas, colour="red", background="blue")
my_karel = move_karel(my_karel, 10, -10)

Erasing a Karel

To remove a Karel from the canvas, use erase_karel(karel):

my_karel = draw_karel(canvas, colour="red", background="blue")
my_karel = erase_karel(my_karel)

Example

from graphics import Canvas
from karel_asset import *
from time import sleep

# Constants    
CANVAS_WIDTH = 120
CANVAS_HEIGHT = 70

def main():
    canvas = Canvas(CANVAS_WIDTH, CANVAS_HEIGHT)
    
    while True:    # Keep repeating the following code forever
    
        # Draw four Karels
        karel_east = draw_karel(canvas, 35, 35)
        karel_east_mirrored = draw_karel(canvas, 85, 35, orientation="east-flipped", colour="red")
        karel_west = draw_karel(canvas, 135, 35, orientation="west", background="red")
        karel_west_mirrored = draw_karel(canvas, 185, 35, orientation="west-flipped", colour="red", background="red")
        
        # Wait five seconds
        sleep(5)
        
        # Change the colour of one Karel to random colours
        karel_east = recolour_karel(big_karel_east, "random", "random")
        
        # Move one Karel
        karel_east_mirrored = move_karel(karel_east_mirrored, 10, 10)
        
        # Wait five seconds
        sleep(5)
        
        # Erase four Karels
        erase_karel(karel_east)
        erase_karel(karel_east_mirrored)
        erase_karel(karel_west)
        erase_karel(karel_west_mirrored)