game maker
Gebruikersnaam:
Wachtwoord:
Home Info Forums Help
Welkom, Gast. Alsjeblieft inloggen of registreren.
De activerings e-mail gemist?
+  Forums
|-+  Werken met Game Maker
| |-+  Tutorials en Uitbreidingen (Moderator: Maarten Baert)
| | |-+  [Scr] draw_roundrectangle
Pagina's: [1]
« vorige volgende »
Print
Advertenties

mag men
Gebruiker


Offline Offline

Berichten: 137

( o_o)


« Gepost op: 10 Januari 2009, 18:52:42 »

versie: gm5? gm6 en gm7
niveau: beginner
registratie vereist: nee

beschrijving:

dit script doet eigelijk hetzelfde als draw_roundrect
alleen kun je hierbij de hoeken vergroten en verkleinen.

GML:
var x1,y1,x2,y2,hg,i;

x1=min(argument0,argument2)y1=min(argument1,argument3)
x2=max(argument0,argument2)y2=max(argument1,argument3)

if argument4<=0 argument4=0
if ((x2-x1)/2<=argument4 or (y2-y1)/2<=argument4)
{hg=(min((x2-x1)/2,(y2-y1)/2))}else{hg=argument4}

if argument5=true
{
    for (i=0 i<=80 i+=10)
    {
        draw_line(
        x1+hg+lengthdir_x(hg,i+100),
        y1+hg+lengthdir_y(hg,i+100),
        x1+hg+lengthdir_x(hg,i+90),
        y1+hg+lengthdir_y(hg,i+90))

        draw_line(
        x2-hg+lengthdir_x(hg,i-90),
        y2-hg+lengthdir_y(hg,i-90),
        x2-hg+lengthdir_x(hg,i-80),
        y2-hg+lengthdir_y(hg,i-80))

        draw_line(
        x2-hg+lengthdir_x(hg,i),
        y1+hg+lengthdir_y(hg,i),
        x2-hg+lengthdir_x(hg,i+10),
        y1+hg+lengthdir_y(hg,i+10))

        draw_line(
        x1+hg+lengthdir_x(hg,i+190),
        y2-hg+lengthdir_y(hg,i+190),
        x1+hg+lengthdir_x(hg,i+180),
        y2-hg+lengthdir_y(hg,i+180))
    }
    draw_line(x1+hg,y1,x2-hg+1,y1)
    draw_line(x2,y1+hg+1,x2,y2-hg+1)
    draw_line(x1+hg+1,y2,x2-hg,y2)
    draw_line(x1,y1+hg+1,x1,y2-hg+1)
}

if argument5=false
{
    for (i=0 i<=80 i+=10)
    {
        draw_triangle(
        x1+hg+lengthdir_x(hg,i+100),
        y1+hg+lengthdir_y(hg,i+100),
        x1+hg+lengthdir_x(hg,i+90),
        y1+hg+lengthdir_y(hg,i+90),
        x1+hg,y1+hg,0)

        draw_triangle(
        x2-hg+lengthdir_x(hg,i-90),
        y2-hg+lengthdir_y(hg,i-90),
        x2-hg+lengthdir_x(hg,i-80),
        y2-hg+lengthdir_y(hg,i-80),
        x2-hg,y2-hg,0)

        draw_triangle(
        x2-hg+lengthdir_x(hg,i),
        y1+hg+lengthdir_y(hg,i),
        x2-hg+lengthdir_x(hg,i+10),
        y1+hg+lengthdir_y(hg,i+10),
        x2-hg,y1+hg,0)
       
        draw_triangle(
        x1+hg+lengthdir_x(hg,i+190),
        y2-hg+lengthdir_y(hg,i+190),
        x1+hg+lengthdir_x(hg,i+180),
        y2-hg+lengthdir_y(hg,i+180),
        x1+hg,y2-hg,0)
    }
    draw_rectangle(x1+hg,y1,x2-hg,y2,0)
    draw_rectangle(x1,y1+hg,x1+hg,y2-hg,0)
    draw_rectangle(x2-hg,y1+hg,x2,y2-hg,0)
}

draw_roundrectangle (x1,y1,x2,y2, hoek grote ,outline)

« Laatste verandering: 11 Januari 2009, 13:46:52 door mag men »

Godzijdank, ik ben athe´st!  Blij

- Model maker - Block Builder - snake 3d - draw play -
Naar boven Gelogd

Naud1234
Gebruiker


Offline Offline

Berichten: 715


« Antwoord #1 Gepost op: 11 Januari 2009, 18:26:11 »

Handig als ik een vakje wil maken waar text in moet en draw_rectangle te hoekig is. Blij
Moeilijk script. :O


Naar boven Gelogd

Mohammed-f
Gebruiker

Offline Offline

Berichten: 2402


« Antwoord #2 Gepost op: 26 Januari 2009, 14:39:21 »

Deze script ziet er alles behalve CPU vriendelijk uit.

Als ik deze wil gebruiken, gebruik ik hem niet ingame, maar alleen als ik een ronde vierkant wil tekenen en dan opslaan als sprite.


Naar boven Gelogd

joffysloffy
Gebruiker


Offline Offline

Berichten: 647

Game Maker 8.0 Pro.


« Antwoord #3 Gepost op: 26 Januari 2009, 18:14:26 »

Deze script ziet er alles behalve CPU vriendelijk uit.

Als ik deze wil gebruiken, gebruik ik hem niet ingame, maar alleen als ik een ronde vierkant wil tekenen en dan opslaan als sprite.
Misschien dat je dan hier meer aan hebt, dit is alleen voor pro en heb ik niet gemaakt!


Naar boven Gelogd

Erik Leppen
Forumbeheerder


Offline Offline

Berichten: 9655


WWW
« Antwoord #4 Gepost op: 31 Januari 2009, 09:25:34 »

Ook dit op gmlscripts.com is redelijk CPU-intensief volgens mij.


Er is een hele simpele aanpak voor als je ronde rechthoeken wil tekenen met normale blending en alphawaarde 1 (dus echt helemaal effen); dat is vier cirkels en twee rechthoeken tekenen. Dat wordt dan zoiets als

GML:
draw_circle(min(argument0, argument2) + argument4,
             min(argument1, argument3) + argument4, argument4, false)
draw_circle(max(argument0, argument2) - argument4,
             min(argument1, argument3) + argument4, argument4, false)
draw_circle(min(argument0, argument2) + argument4,
             max(argument1, argument3) - argument4, argument4, false)
draw_circle(max(argument0, argument2) - argument4,
             max(argument1, argument3) - argument4

draw_rectangle(min(argument0, argument2),
                min(argument1, argument3) + argument4,
                 max(argument0, argument2),
                  max(argument1, argument3) - argument4, false)
draw_rectangle(min(argument0, argument2) + argument4,
                min(argument1, argument3),
                 max(argument0, argument2) - argument4,
                  max(argument1, argument3), false)
onder de aanname dat argument4 niet groter is dan de helft van de kortste zijde.


Naar boven Gelogd

TrevoriuS
Gebruiker

Offline Offline

Berichten: 1687


« Antwoord #5 Gepost op: 31 Januari 2009, 09:50:22 »

Maar dan heb je niet de outline; de efficientste methode is gewoon een sprite voor de hoeken gebruiken en verder 4 lijnen tekenen en klaar ben je.


Naar boven Gelogd

Ruud Verbeek
Gebruiker


Offline Offline

Berichten: 1728

miauw


WWW
« Antwoord #6 Gepost op: 15 Augustus 2009, 10:18:54 »

Kennen jullie al de functie draw_roundrect(x1,y1,x2,y2,outline) ? Gemoedelijk


A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
A deer blends perfectly into the forest colors.
Software rots if not used.

These are great mysteries.
Naar boven Gelogd

Hedanito
Gebruiker


Offline Offline

Berichten: 758


« Antwoord #7 Gepost op: 15 Augustus 2009, 14:34:51 »

Kennen jullie al de functie draw_roundrect(x1,y1,x2,y2,outline) ? Gemoedelijk
dit script doet eigelijk hetzelfde als draw_roundrect
alleen kun je hierbij de hoeken vergroten en verkleinen.
Verdere uitleg zal niet nodig zijn.


Naar boven Gelogd

Advertenties
« vorige volgende »
Pagina's: [1]
Print


Topic Informatie
0 geregistreerde leden en 1 gast bekijken dit topic.

Ga naar:  

Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines
www.game-maker.nl © 2003-2020 Nederlandse Game Maker Community