Nederlandse Game Maker Community

Werken met Game Maker => Tutorials en Uitbreidingen => Topic gestart door: Blijbol op 20 Augustus 2006, 20:15:22



Titel: [Scr] Regelmatige veelhoeken tekenen
Bericht door: Blijbol op 20 Augustus 2006, 20:15:22
Regelmatige veelhoeken tekenen
GM versie:
:gm6:.x
Niveau: gevorderden
Registratie vereist: ja

Dit script kan worden gebruikt om regelmatige veelhoeken te tekenen. Deze veelhoeken kunnen bestaan uit een willekeurig aantal hoeken en kunnen een zelf gekozen grootte hebben. Ook kan de vorm op veel verschillende manieren worden ingekleurd, en met een variabel aantal graden om zijn middelpunt worden gedraaid. Om te experimenteren wat alle parameters doen, is er ook een example beschikbaar, welke je kunt downloaden door hier te klikken (9 kB) (http://download.blijbol.nl/download.php?file=draw_polygon%28%29.gm6).

(http://images.blijbol.nl/draw_polygon.png)

Syntax

draw_polygon ( x, y, corners, radius, kind [, closed [, rotation]] )

Tekent een regelmatige veelhoek.
x: x-coördinaat van het midden
y: y-coördinaat van het midden
corners: aantal hoeken, minimaal 3
radius: straal in pixels
kind: één van de volgende waarden:
pr_pointlist: tekent stippen op de hoeken
pr_linelist: tekent van elke twee zijden de eerste wel en de tweede niet
pr_linestrip: tekent de volledige omtrek
pr_trianglelist: tekent losstaande driehoeken tegen de binnenkanten van de zijden
pr_trianglestrip: tekent overlappende driehoeken tegen de binnenkanten van de zijden
pr_trianglefan: tekent de volledige oppervlakte
closed: of de veelhoek gesloten is (true) of één zijde open is (false, standaardwaarde)
rotation: rotatie in graden om het midden, tegen de klok in (standaard geen rotatie)

Broncode

GML:
var xpos, ypos, rot, dir, side;
xpos = argument0 - lengthdir_y(argument3, argument6);
ypos = argument1 + lengthdir_x(argument3, argument6);
rot = 360 / argument2;
dir = argument6 + rot / 2;
side = sqrt(32) * argument3 / argument2;
draw_primitive_begin(argument4);
repeat(argument2)
{
  draw_vertex(xpos, ypos);
  xpos += lengthdir_x(side, dir);
  ypos += lengthdir_y(side, dir);
  dir += rot;
}
if(argument5) draw_vertex(xpos, ypos);
draw_primitive_end();

Ik weet dat er al een script van Dlaor (http://www.game-maker.nl/forums/viewtopic.php?t=4731) en een script van Ice Sparks (http://www.game-maker.nl/forums/viewtopic.php?t=7193) zijn om veelhoeken te tekenen, maar dit script bevat meer functionaliteit.


www.game-maker.nl © 2003, 2007 Nederlandse Game Maker Community