Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Temas - Robin28

1
Creador: Yo (Robin28)
Descripcion: Hace que la pantalla se vea borrosa y que los movimientos dejen una especie de rastro (motion blur)
Version de GM:  :GM8: PRO o cualquiera que tenga surfaces
Notas:

  • Son 3 scripts que se ponen en los eventos create, step y draw (respectivamente) del objeto con menor depth (usar un objeto especifico para controlar el blur)
  • Puedes controlar que tan borroso se ve con el efecto cambiando la variable global blur_alpha (entre 0 y 1) o con el cuarto script
  • FUNCIONA CON VIEWS!!!
  • la variable global blur_activated controla si se usara el efecto o no
  • Desactiva el color de fondo en la room...
  • Consume menos recursos de lo que yo creia (me va perfecto a 60 fps)

init_blur(alpha) (alpha va de 0 a 1, recomendado entre 0,05 y 0,25)
[gml]globalvar blur_alpha,blur_activated,blur_surface;
blur_alpha=argument0;
blur_activated=1;
if view_enabled[0] blur_surface=surface_create(view_wview[0],view_hview[0]);
else blur_surface=surface_create(room_width,room_height);[/gml]

blur_step() (creo que es demasiado corto como para un script ??? )
[gml]if blur_activated surface_set_target(blur_surface);[/gml]

blur_draw() (debe ir al final del evento draw del objeto con menor depth)
[gml]if !blur_activated exit
surface_reset_target();
draw_surface_ext(blur_surface,-1,-1,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,1,0,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,-1,1,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,0,-1,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,1,1,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,-1,0,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,1,-1,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,0,1,1,1,0,c_white,blur_alpha);[/gml]

blur_set(activado,alpha) (se puede hacer con las variables que mencione en notas)
[gml]blur_activated=argument0;
if argument1>0 blur_alpha=min(argument1,1);[/gml]

controles del ejemplo:
flechas para mover la pelota
teclas mas y menos para ajustar el alpha
tecla B para (des)activar el blur

PD: no es necesario dar creditos si se usa
2
Desarrollo de Scripts / Dibujar grafico de lineas
Noviembre 07, 2009, 06:39:01 PM
Creador: Robin28
Version:  :GM7: PRO, ya que usa listas.
Descripcion: Dibuja un grafico de lineas de una ds_list.

//draw_graphic_line(x1,y1,x2,y2,ds_list,color)
//x1,y1=esquina superior izquierda
//x2,y2=esquina inferior derecha
//ds_list=indice de la lista
//color=color de las lineas

var x1 ,y1,x2, y2, l, c, w, h, z, m, lpx, lpy;
x1=argument0
y1=argument1
x2=argument2
y2=argument3
l=argument4
c=argument5
w=x2-x1
h=y2-y1
z=ds_list_create()
ds_list_copy(z,l)
ds_list_sort(z,0)
m=ds_list_find_value(z,0)
lpx=x1
lpy=y2
ds_list_destroy(z)

draw_set_color(c)
for (i=0; i<ds_list_size(l); i+=1)
{
draw_line(lpx,lpy,x1+w/(ds_list_size(l)-1)*i,y2-h/m*ds_list_find_value(l,i))
lpx=x1+w/(ds_list_size(l)-1)*i
lpy=y2-h/m*ds_list_find_value(l,i)
}
draw_set_color(0)
draw_line(x1,y1,x1,y2)
draw_line(x1,y2,x2,y2)


adjunto un ejemplo
3
Creador: Robin28
Descripcion: Dibuja un reloj analogico (de puntero) con posicion, tama?o, horas, minutos, segundos y colores definidos.
Version: :GM8:, :GM7:, en las otras deberia funcionar pero no lo he comprobado
//draw_analogic_clock(x,y,r,hora,minuto,segundo,color1,color2)
//x,y=centro del reloj   r=radio del circulo del reloj
//hora,minuto,segundo=hora, minuto y segundo a dibujar, poner -1 para no dibujar (ahora si funciona -1)
//color1=color de fondo del reloj   color2=color de las demas cosas
var xx, yy, r, h, m, s;

xx=argument0
yy=argument1
r=argument2
h=argument3
m=argument4
s=argument5
if m!=-1 m=m+(1/60*s)
if h!=-1 h=h+(1/60*m)

draw_set_circle_precision(64)                     //SI USAS GM LITE QUITAR ESTA FUNCION
draw_set_color(argument6)
draw_circle(xx,yy,r,false)
draw_set_color(argument7)
draw_circle(xx,yy,r,true)
draw_circle(xx,yy,r/24,false)


for (i=0; i<12; i+=1)
draw_circle(xx+lengthdir_x(r/16*15,i*30),yy+lengthdir_y(r/16*15,i*30),r/32,false)

if h!=-1
{
draw_line_width(xx,yy,xx+lengthdir_x(r/2,360-h*30+90),yy+lengthdir_y(r/2,360-h*30+90),r/12)
draw_circle(xx+lengthdir_x(r/2,360-h*30+90),yy+lengthdir_y(r/2,360-h*30+90),r/24,false)
}

if m!=-1
{
draw_line_width(xx,yy,xx+lengthdir_x(r/8*5,360-m*6+90),yy+lengthdir_y(r/8*5,360-m*6+90),r/12)
draw_circle(xx+lengthdir_x(r/8*5,360-m*6+90),yy+lengthdir_y(r/8*5,360-m*6+90),r/24,false)
}

if s!=-1
{
draw_line_width(xx,yy,xx+lengthdir_x(r/8*7,360-s*6+90),yy+lengthdir_y(r/8*7,360-s*6+90),r/32)
draw_circle(xx+lengthdir_x(r/8*7,360-s*6+90),yy+lengthdir_y(r/8*7,360-s*6+90),r/64,false)
}


adjunto el script y un ejemplo
4
Desarrollo de Scripts / Dibujar poligono regular
Noviembre 04, 2009, 02:54:33 PM
Creador: Robin28
Descripcion: Dibuja un poligono regular con posicion, tama?o, lados, giro definidos.
Version:  :GM7:, no lo he probado en otras versiones ...

//draw_regular_polygon(x,y,size,angle,sides,outline)
//x,y=centro del poligono
//size=tama?o en pixeles del poligono
//angle=angulo de giro (en grados)
//sides=cantidad de lados del poligono
//outline=true para dibujar solo el contorno, false para pintar lo de adentro

var xx, yy, t, a, s, z, o,;

xx=argument0
yy=argument1
t =argument2
a =argument3
s =argument4
o =argument5

z=360/s

for (i=0;i<s;i+=1)
{
pointx[i]=xx+lengthdir_x(t/2,z*i+a)
pointy[i]=yy+lengthdir_y(t/2,z*i+a)
}

if o=true
{
for (i=0;i<s;i+=1)
{
if i<s-1
draw_line(pointx[i],pointy[i],pointx[i+1],pointy[i+1])
else
draw_line(pointx[i],pointy[i],pointx[0],pointy[0])
}
}

if o=false
{
for (i=0;i<s;i+=1)
{
if i<s-1
draw_triangle(xx,yy,pointx[i],pointy[i],pointx[i+1],pointy[i+1],false)
else
draw_triangle(xx,yy,pointx[i],pointy[i],pointx[0],pointy[0],false)
}
}


Usar en el evento DRAW...
Dejo adjunto el script para importar