Het ontwerpen van spellen met Game Maker
Tiles
In een room kan je tiles toevoegen, maar dat wist je al. Een tile is een deel van een background. Tiles zijn zichtbare afbeeldingen, ze reageren niet op events en generen geen aanrakingen. Daardoor werken ze veel sneller als objecten. Voor iets dat geen events of aanrakingen nodig heeft, kan je best tiles gebruiken. Soms kan het handig zijn om een tile te gebruiken als mooie afbeelding, en een simpel object om de aanrakingen te genereren.Je hebt echter meer controle over tiles dan je zou denken. Je kan ze toevoegen tijdens het ontwerpen van de room, maar ook tijdens het spelen van het spel. Je kan niet alleen hun positie aanpassen, maar ook de schaal veranderen en ze zelf gedeeltelijk transparant maken. Een tile heeft de volgende eigenschappen:
- background. De achtergrond waar de tile van genomen is.
- left, top, width, height. Het deel van de achtergrond dat gebruikt is.
- x, y. De positie vanuit de bovenlinkerhoek van de room.
- depth. De diepte van de tile. Je kan kiezen welke diepte je gebruikt, zodat tiles bijvoorbeeld tussen objecten verschijnen.
- visible. Bepaald of de tile zichtbaar is.
- xscale, yscale. Elke tile kan met een schaal getekend worden (standaard is 1).
- blend. Een mengkleur, gebruikt om de tile te tekenen.
- alpha. Een alpha waarde wordt gebruikt om de transparantheid van een tile aan te geven. 1 = niet transparant, 0 = volledig transparant.
Voor tiles bestaan er de volgende functies:
tile_add(background, left, top, width, height, x, y, depth) Voegt een nieuwe tile toe in de room met de aangegeven warden (zie hierboven voor hun betekenis). Deze functie geeft het id van de tile terug, om later nog te gebruiken.
tile_delete(id) Verwijdert de tile met de gegeven id.
tile_exists(id) Geeft terug of er een tile bestaat met de gegeven id.
tile_get_x(id) Geeft de x-positie van de tile met de gegeven id terug.
tile_get_y(id) Geeft de y-positie van de tile met de gegeven id terug.
tile_get_left(id) Geeft de linker waarde van de tile met de gegeven id terug.
tile_get_top(id) Geeft de bovenste waarde van de tile met de gegeven id terug.
tile_get_width(id) Geeft de breedte van de tile met de gegeven id terug.
tile_get_height(id) Geeft de hoogte van de tile met de gegeven id terug.
tile_get_depth(id) Geeft de diepte van de tile met de gegeven id terug.
tile_get_visible(id) Geeft terug of de tile met de gegeven id zichtbaar is.
tile_get_xscale(id) Geeft de x-schaal van de tile met de gegeven id terug.
tile_get_yscale(id) Geeft de y-schaal van de tile met de gegeven id terug.
tile_get_background(id) Geeft de achtergrond van de tile met de gegeven id terug.
tile_get_blend(id) Geeft de mengkleur van de tile met de gegeven id terug.
tile_get_alpha(id) Geeft de alpha waarde van de tile met de gegeven id terug.
tile_set_position(id, x, y) Plaatst de tile met de gegeven id op de gegeven plaats.
tile_set_region(id, left, right, width, height) Stelt de regio van de tile met de gegeven id in op zijn achtergrond.
tile_set_background(id, background) Stelt de achtergrond voor de tile met de gegeven id in.
tile_set_visible(id, visible) Stelt in of de tile met de gegeven id zichtbaar is.
tile_set_depth(id, depth) Stelt de diepte van de tile met de gegeven id in.
tile_set_scale(id, xscale, yscale) Stelt de schaal van de tile met de gegeven id in.
tile_set_blend(id, color) Stelt de mengkleur in van de tile met de gegeven id in. Alleen mogelijk met de geregistreerde versie van Game Maker!
tile_set_alpha(id, alpha) Stelt de alpha waarde van de tile met de gegeven id in.
De volgende functies hebben te maken met lagen van tiles, dat zijn verzamelingen van tiles op dezelfde diepte.
tile_layer_hide(depth) Verbergt alle tiles op de gegeven depth.
tile_layer_show(depth) Laat alle tiles op de gegeven depth zien.
tile_layer_delete(depth) Verwijdert alle tiles op de gegeven depth.
tile_layer_shift(depth, x, y) Verplaatst alle tiles op de gegeven diepte lag met de vector x,y. Dit kan gebruikt worden om scrollende lagen van tiles te maken.
tile_layer_find(depth, x, y) Geeft de id terug van de tile op de gegeven depth op de positie x,y. Wanneer er daar geen tile bestaat wordt 1 terug gegeven. Wanneer er verschillende tiles zijn wordt het id van de eerste terug gegeven.
tile_layer_delete_at(depth, x, y) Verwijdert de tile op de gegeven depth op de positie x,y. Wanneer er daar meerdere tiles zijn worden ze allemaal verwijderd.
tile_layer_depth(depth, newdepth) Verandert de diepte van alle tiles op de gegeven depth naar een nieuwe diepte. Met deze functie kan je hele lagen van tiles naar een nieuwe diepte verplaatsen.