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.

Mensajes - Killer

151
Preguntas y respuestas / Re: seleccion de numeros
Julio 11, 2011, 11:02:07 PM
Hay varias formas de hacerlo, en este momento se me ocurre que podrias crear una lista con los n?meros:

[gml]lista = ds_list_create();
for (i=1;i<=9;i+=1)
repeat(2) ds_list_add(lista,i);
ds_list_suffle(lista);[/gml]

Luego, cuando estas creando las cartas le asignas el primer valor de la lista y luego lo eliminas:

[gml]for (i=0;i<18;i+=1){
  a = instance_create(Obj,x,y);
  a.valor = ds_list_find_value(lista,0);
  ds_list_delete(lista,0);
}[/gml]

Asi cada carta termina con un valor al azar de 1 a 9, repitiendo solamente una vez cada valor.
152
Con draw_set_blend_mode_ext(0,6) puedes borrar en las superficies al dibujar sobre ellas. Por ejemplo, con:

[gml]draw_set_blend_mode_ext(0,6)
draw_sprite(sprite,0,x,y)[/gml]

Haces un agujero en la surface con la forma del sprite en las coordenadas dadas, y con:

[gml]draw_set_blend_mode_ext(0,6)
draw_rectangle(x1,y1,x2,y2,0)[/gml]

Haces un agujero rectangular.
153
De hecho el el m?todo de brunoxzx funciona, pero si estas usando las constantes no le sumes 1 a c_white.

Tambi?n podr?as simplemente usar el valor decimal o el hexadecimal que brunoxzx tubo la cortes?a de ponerte.
154
Si no me equivoco puedes adquirir el negativo de cada color restando el valor de sus componentes al m?ximo valor posible:

Morado:
R:188
G:2
B:218

Verde (negativo de morado):
R:67
G:253
B:37

Morado a verde:
R:255 - 188 = 67
G:255 - 2 = 253
B:255 - 218 = 37

Verde a morado:
R:255 - 67 = 188
G:255 - 253 = 2
B:255 - 37 = 218
155
La funci?n instance_nearest retorna la id de la instancia m?s cercana, no el indice de su objeto. Puedes cambiar el c?digo para adquirir el indice del objeto de la instancia retornada por instance_nearest con la variable object_index:

[gml]var obj;
obj=instance_nearest(x,y,obj_parent_deposits)

if distance_to_object(obj_parent_deposits)<250
{
if obj.object_index=obj_belkar_deposit {instance_create(x,y,obj_belkar_claim)}
else
if obj.object_index=obj_lysterium_deposit {instance_create(x,y,obj_lysterium_claim)}
}[/gml]
156
Preguntas y respuestas / Re: Mask ??
Junio 19, 2011, 12:31:58 AM
Las mask son el ?rea de colisi?n de un objeto, y est?n determinadas por los sprites. En las propiedades de cada sprite, en el apartado de Collision Checking estan las opciones para modificar la mask de un sprite

Todo objeto con un sprite asignado tiene autom?ticamente la mask de ese sprite asignado. Puedes asignarle a un objeto la mask de otro sprite manualmente en sus propiedades, justo debajo del parent.

Asignarle una mask distinta a la propia a un objeto no mejora m?gicamente las colisiones en un juego, esta opci?n es utilizada para alterar el ?rea de colisi?n de un objeto de acuerdo a determinadas circunstancias, o bien, para asignar un ?rea de colisi?n poco com?n a un objeto.
158
El GM no puede hacerlo por si mismo, pero eso no quiere decir que sea imposible.

Puedes usar execute_shell para pasar instrucciones a la consola, por ejemplo:

[gml]execute_shell(environment_get_variable("comspec"), '/c attrib +h "'+File+'"');[/gml]

Hace que el archivo en la variable File se vuelva oculto.

+ le da a un archivo el atributo
- le quita a un archivo el atributo

h es para oculto
r es para solo lectura
s es para archivo de sistema
a es para archivado
159
Preguntas y respuestas / Re: ?Virus en mi juego?
Junio 05, 2011, 06:10:29 PM
Hay ciertos virus que hacen una copia de los archivos a los que afectan, y encriptan dicha copia en un ejecutable con el nombre original del archivo que al utilizarse activa el virus y luego ejecuta el archivo original.

De esta manera remplazan los archivos que infectan, pero sigue pareciendo que el archivo funciona.

Asegurate de tener un buen antivirus actualizado al d?a, desactiva los puntos de restauraci?n, y analiza tu maquina en modo a prueba de errores.
160
Puedes probar a usar el actualizador que viene con el GM, aunque creo que lo m?s f?cil seria descargar la nueva versi?n desde yoyogames.
161
Acabo de probar en XP un ejecutable hecho en Vista, y no ha habido problema, no tengo a la mano ninguna PC con 7, asi que no puedo probar ese caso.

De cualquier manera, asegurate de tener la ?ltima versi?n del GM (8.1.91). En el bugtracker se menciona un problema con transiciones con la actualizaci?n del 11 de mayo pasado que ya deberia estar solucionado.
162
No estoy seguro de entender por completo lo que quieres, pero puedes usar la funci?n place_empty(x,y) para verificar si ya hay una instancia en la posici?n especificada.

Por ejemplo, con este c?digo:

[gml]var i;
i=0;

while (!place_empty(X+i,Y){
  i += 1;
  }

x = X + i;
y = Y;[/gml]

Donde X y Y son las coordenadas que tu quieras, el objeto se pone en la primera posici?n libre que encuentra a la derecha de la posici?n especificada.

Te dejo un peque?o ejemplo.
163
Las variables globales no pueden ser destruidas de ninguna manera, una vez creadas permanecen en memoria hasta el final del juego.

Si solamente necesitas usar esa DLL al principio del juego entonces no habr?a problema en hacer las variables locales al objeto que la utiliza y luego destruirlo.
164
La paciencia es una virtud.

Si el efecto es meramente visual es de hecho relativamente simple, solo es cuesti?n de dibujar el sprite por partes, cada parte con distinta altura.

Te dejo un ejemplo, aunque es un tanto b?sico.
165
El c?digo que te dieron crea 4 colores al azar, luego debes usarlos para colorear los bloques.

Tambi?n podr?as simplemente usar este c?digo en el create del objeto:

[gml]image_blend = make_color_rgb(random(255),random(255),random(255));[/gml]

Para que funcione los bloques tendr?an que ser grises, y seria preferible que sea un gris tan cercano al blanco como sea posible.