Appearance#

Elternklasse von Background und Costume.

In der Regel hast arbeitest du nicht direkt mit Objekten dieser Klasse, allerdings sind Backrounds und Costumes auch Appearances, d.h. Objekte beider Klassen verfügen über die Attribute und Methoden, die in dieser Klasse definiert sind.

Appearance#

class miniworlds.appearances.appearance.Appearance(*args, **kwargs)[source]#

Base class of actor costumes and world backgrounds

The class contains all methods and attributes to display and animate images of the objects, render text on the images or display overlays.

Public Data Attributes:

counter

RELOAD_ACTUAL_IMAGE

LOAD_NEW_IMAGE

font_size

texture_size

animation_speed

is_textured

If True, the image is tiled over the background.

is_rotatable

If True, costume will be rotated with token direction

is_centered

is_filled

is_flipped

Flips the costume or background.

is_upscaled

If True, the image will be upscaled remaining aspect-ratio.

is_scaled_to_width

is_scaled_to_height

fill_color

is_scaled

Scales the token to parent-size without remaining aspect-ratio.

orientation

If True, the image will be rotated by parent orientation before it is rotated.

coloring

Defines a colored layer.

transparency

Defines a transparency.

alpha

transparent, 255: visible If value < 1, it will be multiplied with 255.

is_animated

If True, the costume will be animated.

color

->See fill color

stroke_color

see border color

border_color

border color of actor

border

The border-size of actor.

images

image

Performs all actions in image pipeline

dirty

world

Implemented in subclasses Costume and Background

image_manager

Public Methods:

__init__()

set_image(source)

Sets the displayed image of costume/background to selected index

after_init()

set_mode(**kwargs)

get_modes()

set_animated(value)

flip(value)

remove_last_image()

add_image(source)

Adds an image to the appearance

add_images(sources)

Adds multiple images to background/costume.

animate([loop])

Animates the costume

after_animation()

the method is overwritten in subclasses costume and appearance

to_colors_array()

Create an array from costume or background.

from_array(arr)

Create a background or costume from array.

fill(value)

Set default fill color for borders and lines

set_filled(value)

get_color(position)

get_rect()

draw(source, position, width, height)

draw_on_image(path, position, width, height)

draw_color_on_image(color, position, width, ...)

__str__()

Return str(self).

get_image()

If dirty, the image will be reloaded.

update()

Loads the next image, called 1/frame

register(method)

Register method for decorator.

draw_shape_append(shape, arguments)

draw_shape_set(shape, arguments)

draw_image_append(surface, rect)

draw_image_set(surface, rect)

set_dirty([value, status])

Private Data Attributes:

_abc_impl

Private Methods:

_set_defaults(rotatable, is_animated, ...)

_set_font(font, font_size)

_set_animation_speed(value)

_set_textured(value)

bool: If True, the image is tiled over the background.

_set_rotatable(value)

If set to True, costume will be rotated with actor direction

_set_centered(value)

_set_flipped(value)

Flips the costume or background.

_set_filled(value)

Flips the costume or background.

_set_scaled(value)

Sets the actor to parenz-size without remaining aspect-ratio.

_set_upscaled(value)

If set to True, the image will be upscaled remaining aspect-ratio.

_set_scaled_to_width(value)

_set_scaled_to_height(value)

_set_image(source)

Sets the displayed image of costume/background to selected index

_before_transformation_pipeline()

Called in get_image, if image is "dirty" (e.g. size, rotation, .

_after_transformation_pipeline()

Called in get_image, if image is "dirty" (e.g. size, rotation, .

_load_image()

Loads the image,

_update_draw_shape()

_inner_shape()

Returns inner shape of costume

_outer_shape()

Returns outer shape of costume

_inner_shape_arguments()

def setGets arguments for inner shape

_outer_shape_arguments()

Gets arguments for outer shape


LOAD_NEW_IMAGE = 2#
RELOAD_ACTUAL_IMAGE = 1#
add_image(source)[source]#

Adds an image to the appearance

Return type:

int

Returns:

Index of the created image.

add_images(sources)[source]#

Adds multiple images to background/costume.

Each source in sources parameter must be a valid parameter for Appearance.cimage

after_animation()[source]#

the method is overwritten in subclasses costume and appearance

Examples

The actor will be removed after the animation - This can be used for explosions.

from miniworlds import *

world = World()
actor = Actor()
costume = actor.add_costume("images/1.png")
costume.add_image("images/2.png")
costume.animate()
@costume.register
def after_animation(self):
    self.parent.remove()

world.run()
after_init()[source]#
property alpha#

transparent, 255: visible If value < 1, it will be multiplied with 255.

Examples

from miniworlds import *

world = World(800,400)

t = Actor((600,250))
t.add_costume("images/alien1.png")
t.costume.alpha = 50
t.width = 40
t.border = 1

world.run()
Textured image
Type:

defines transparency of Actor

Type:

0

animate(loop=False)[source]#

Animates the costume

Parameters:

loop – If loop = True, the animation will be processed as loop. (you can stop this with self.loop)

from miniworlds import *

world = World(80,40)

robo = Actor()
robo.costume.add_images(["images/1.png"])
robo.costume.add_images(["images/2.png","images/3.png","images/4.png"])
robo.costume.animation_speed = 20
robo.costume.is_animated = True
world.run()
property animation_speed#
property border#

The border-size of actor.

The value is 0, if actor has no border

Returns:

int

Return type:

_type_

property border_color#

border color of actor

property color#

->See fill color

property coloring#

Defines a colored layer.

coloring can be True or false. The color is defined by the attribute appearance.color.

counter = 0#
property dirty#
draw(source, position, width, height)[source]#
draw_color_on_image(color, position, width, height)[source]#
draw_image_append(surface, rect)[source]#
draw_image_set(surface, rect)[source]#
draw_on_image(path, position, width, height)[source]#
draw_shape_append(shape, arguments)[source]#
draw_shape_set(shape, arguments)[source]#
fill(value)[source]#

Set default fill color for borders and lines

property fill_color#
flip(value)[source]#
property font_size#
from_array(arr)[source]#

Create a background or costume from array. The array must be a numpy.ndarray, which can be created with ``.to_colors_array

Examples

Convert grey default-background to gradient

from miniworlds import *

world = World()
arr = world.background.to_colors_array()
for x in range(len(arr)):
    for y in range(len(arr[0])):
        arr[x][y][0] = ((x +1 ) / world.width) * 255
        arr[x][y][1] = ((y +1 ) /world.width) * 255
world.background.from_array(arr)
world.run()


world.background.from_array(arr)
world.run()

Output:

converted image
get_color(position)[source]#
get_image()[source]#

If dirty, the image will be reloaded. The image pipeline will be processed, defined by “set_dirty”

get_modes()[source]#
get_rect()[source]#
property image: Surface#

Performs all actions in image pipeline

property images#
property is_animated#

If True, the costume will be animated.

from miniworlds import *

world = World(80,40)

robo = Actor()
robo.costume.add_images(["images/1.png"])
robo.costume.add_images(["images/2.png","images/3.png","images/4.png"])
robo.costume.animation_speed = 20
robo.costume.is_animated = True
world.run()
property is_centered#
property is_filled#
property is_flipped#

Flips the costume or background. The image is mirrored over the y-axis of costume/background.

Examples

Flips actor:

from miniworldmaker import *

board = Board()
token = Token()
token.add_costume("images/alien1.png")
token.height= 400
token.width = 100
token.is_rotatable = False
@token.register
def act(self):
    if self.board.frame % 100 == 0:
        if self.costume.is_flipped:
            self.costume.is_flipped = False
        else:
            self.costume.is_flipped = True
board.run()
Textured image Textured image
property is_rotatable#

If True, costume will be rotated with token direction

property is_scaled#

Scales the token to parent-size without remaining aspect-ratio.

property is_scaled_to_height#
property is_scaled_to_width#
property is_textured#

If True, the image is tiled over the background.

Examples

Texture the board with the given image:

from miniworldmaker import *

board = Board()
background = board.add_background("images/stone.png")
background.is_textured = True
board.run()
Textured image>

Set texture size

from miniworldmaker import *

board = Board()
background = board.add_background("images/stone.png")
background.is_textured = True
background.texture_size = (15,15)
board.run()
Textured image
Type:

bool

property is_upscaled#

If True, the image will be upscaled remaining aspect-ratio.

property orientation#

If True, the image will be rotated by parent orientation before it is rotated.

Examples

Both actors are moving up. The image of t2 is correctly aligned. t1 is looking in the wrong direction.

from miniworlds import *

world = TiledWorld()

t1 = Actor((4,4))
t1.add_costume("images/player.png")
t1.move()

t2 = Actor((4,5))
t2.add_costume("images/player.png")
t2.orientation = - 90
t2.move()

@t1.register
def act(self):
    self.move()

@t2.register
def act(self):
    self.move()

world.run()
Textured image
Type:

bool

register(method)[source]#

Register method for decorator. Registers method to actor or background.

remove_last_image()[source]#
set_animated(value)[source]#
set_dirty(value='all', status=1)[source]#
set_filled(value)[source]#
set_image(source)[source]#

Sets the displayed image of costume/background to selected index

Return type:

bool

Parameters:

source – The image index or an image.

Returns:

True, if image index exists

Examples

Add two images two background and switch to image 2

from miniworldmaker import *

board = Board()
background = board.add_background("images/1.png")
background.add_image("images/2.png")
background.set_image(1)
board.run()
set_mode(**kwargs)[source]#
property stroke_color#

see border color

property texture_size#
to_colors_array()[source]#

Create an array from costume or background. The array can be re-written to appearance with .from_array

Examples: :rtype: ndarray

Convert a background image to grayscale

from miniworlds import *

world = World(600,400)
world.add_background("images/sunflower.jpg")
arr = world.background.to_colors_array()

def brightness(r, g, b):
    return (int(r) + int(g) + int(b)) / 3

for x in range(len(arr)):
    for y in range(len(arr[0])):
        arr[x][y] = brightness(arr[x][y][0], arr[x][y][1], arr[x][y][2])

world.background.from_array(arr)
world.run()

Output:

converted image
property transparency#

Defines a transparency.

If transparency``is ``True, the che transparency value is defined by the attribute appearance.alpha

update()[source]#

Loads the next image, called 1/frame

abstract property world: World#

Implemented in subclasses Costume and Background