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:
If True, the image is tiled over the background.
If True, costume will be rotated with token direction
Flips the costume or background.
If True, the image will be upscaled remaining aspect-ratio.
Scales the token to parent-size without remaining aspect-ratio.
If True, the image will be rotated by parent orientation before it is rotated.
Defines a colored layer.
Defines a transparency.
transparent, 255: visible If value < 1, it will be multiplied with 255.
If True, the costume will be animated.
->See fill color
see border color
border color of actor
The border-size of actor.
Performs all actions in image pipeline
Implemented in subclasses Costume and Background
image_manager
Public Methods:
__init__
()set_image
(source)Sets the displayed image of costume/background to selected index
set_mode
(**kwargs)set_animated
(value)flip
(value)add_image
(source)Adds an image to the appearance
add_images
(sources)Adds multiple images to background/costume.
animate
([loop])Animates the costume
the method is overwritten in subclasses costume and appearance
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).
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:
- 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()
- 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()
- 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#
- property fill_color#
- 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:
- get_image()[source]#
If dirty, the image will be reloaded. The image pipeline will be processed, defined by “set_dirty”
- 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()
- 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()
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()
- Type:
- 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()
- Type:
- set_image(source)[source]#
Sets the displayed image of costume/background to selected index
- Return type:
- 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()
- 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:
- property transparency#
Defines a transparency.
If
transparency``is ``True
, the che transparency value is defined by the attributeappearance.alpha