draw rectangle + angulo

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

draw rectangle + angulo

Mensagem por itallo em Ter 04 Jan 2011, 15:15

como que faz uma draw_rectangle com ângulo?

ja fiz isso:

lx2=lengthdir_x(40,ang)
ly2=lengthdir_y(40,ang)

draw_roundrect(x,y,x+lx2,y+ly2,false)

de cara vi que não ia dar certo.

ja tentei mudar o angulo do objeto e tbm não deu.

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: draw rectangle + angulo

Mensagem por Markituh em Ter 04 Jan 2011, 16:28

Bom, seria algo como draw_roundrect_ext, mas não existe a função. A não ser que você a crie, tomando a background_ext ou a sprite_ext como base.

Que coincidência, achei num site chamado GMLScripts um script draw_roundrect_ext
Código:
/*
**  Usage:
**      draw_roundrect_ext(x1,y1,x2,y2,outline,radius,precision)
**
**  Arguments:
**      x1,y1,x2,y2    coordinates of the corners of the rectangle
**      outline        set to TRUE for outline, FALSE for solid
**      radius          radius of the rounded corners
**      precision      quality of the rounded corners, positive integer
**
**  Returns:
**      nothing
**
**  GMLscripts.com
*/
{
    var x1,y1,x2,y2,out,rad,pre,i,j,x1r,x2r,y1r,y2r;
    x1  = argument0;
    y1  = argument1;
    x2  = argument2;
    y2  = argument3;
    out = argument4;
    rad = min(argument5,abs(x1-x2)/2,abs(y1-y2)/2);
    pre = max(1,argument6);

    i  = 0;
    j  = 90 / pre;
    x1r = x1 + rad;
    x2r = x2 - rad;
    y1r = y1 + rad;
    y2r = y2 - rad;

    if (out) {
        draw_primitive_begin(pr_linestrip);
    }else{
        draw_primitive_begin(pr_trianglefan);
        draw_vertex(mean(x1,x2),mean(y1,y2));
    }
    draw_vertex(x2,y2r);
    draw_vertex(x2,y1r);
    repeat (pre) {
        i += j;
        draw_vertex(x2r+lengthdir_x(rad,i),y1r+lengthdir_y(rad,i));
    }
    draw_vertex(x1r,y1);
    repeat (pre) {
        i += j;
        draw_vertex(x1r+lengthdir_x(rad,i),y1r+lengthdir_y(rad,i));
    }
    draw_vertex(x1,y2r);
    repeat (pre) {
        i += j;
        draw_vertex(x1r+lengthdir_x(rad,i),y2r+lengthdir_y(rad,i));
    }
    draw_vertex(x2r,y2);
    repeat (pre) {
        i += j;
        draw_vertex(x2r+lengthdir_x(rad,i),y2r+lengthdir_y(rad,i));
    }
    draw_vertex(x2,y2r);
    draw_primitive_end();
}
Talvez ele possa ser útil em alguns outros casos, então tá aí o link:
http://www.gmlscripts.com

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum