Prueba con la acción Transform the sprite en el grupo de acciones Main 1, cambiando el valor de mirror
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.
226
Preguntas y respuestas / Re:Como hacer un flip de sprite con Drag'n Drop
Agosto 22, 2015, 01:30:17 AM227
Preguntas y respuestas / Re:Hora real en el juego
Agosto 21, 2015, 06:18:20 AMCita de: jodidox en Agosto 20, 2015, 02:26:43 PM
Gracias Guacusio, aunque en el evento draw te hizo falta algo,
Evento draw:Código [Seleccionar]
draw_text(x,y,string(myhour) +" :"+ string(myminute) + " :"+ string(mysecond));
Así es que debe de ir el codigo, :D
XD
¡Pero si ya se pasaron a tipo string en el evento step! ... :P
228
Preguntas y respuestas / Re:Hora real en el juego
Agosto 20, 2015, 02:07:26 PM
Lo que hizo jodidox es una forma de hacerlo pero no me parece que sea lo mejor confiar en el room speed para medir el tiempo ya que esa variable no tiene estabilidad asegurada. En vez de eso yo usaría las mismas funciones que puso en el evento create directamente.
El formato de la hora no lo da la configuración del PC, tú mismo se la puedes dar. Por ejemplo, para colocar un cero antes del dígito de hora, minuto o segundo si éste es menor a 10:
Evento step:
Evento draw:
Se puede optimizar más este código para hacer el cálculo de los minutos y horas nuevos sólo cuando cambie el valor de los segundos respecto a su valor en el step anterior, pero respondiendo a tu pregunta de cómo darle formato a la hora, esa es una amnera.
El formato de la hora no lo da la configuración del PC, tú mismo se la puedes dar. Por ejemplo, para colocar un cero antes del dígito de hora, minuto o segundo si éste es menor a 10:
Evento step:
Código [Seleccionar]
myhour = date_get_hour(date_current_datetime());
myminute = date_get_minute(date_current_datetime());
mysecond = date_get_second(date_current_datetime());
if mysecond<10
mysecond="0"+string(mysecond);
else
mysecond=string(mysecond);
if myminute<10
myminute="0"+string(myminute);
else
myminute=string(myminute);
if myhour<10
myhour="0"+string(myhour);
else
myhour=string(myhour);
Evento draw:
Código [Seleccionar]
draw_text(x,y,myhour+":"+myminute+":"+mysecond);
Se puede optimizar más este código para hacer el cálculo de los minutos y horas nuevos sólo cuando cambie el valor de los segundos respecto a su valor en el step anterior, pero respondiendo a tu pregunta de cómo darle formato a la hora, esa es una amnera.
229
Juegos en desarrollo / Re:Ilíada Espacial
Agosto 20, 2015, 01:59:18 AM
Probé el juego otra vez y ahora lee el joystick genérico sin palancas perfectamente.
230
Preguntas y respuestas / Re:Colorear parte de un objeto.
Agosto 20, 2015, 01:46:04 AMCita de: venus en Agosto 19, 2015, 07:55:15 PM
Mejor así, gracias. Porque yo uso GMS.
¿Pero no consume esto mucha capacidad? Dicen que el evento draw es muy pesado. Y tengo que colocar el objeto como 20 o 30 veces en el mapa.
El método de Clamud crea, en el evento que tu quieras y por una sola vez, una surface con el gráfico circular para luego de ahí en adelante en el evento draw dibujar esa superficie. No veo por qué debiera ser más costoso dibujar esa superficie en vez de un sprite.
231
Preguntas y respuestas / Re:mensaje gms
Agosto 20, 2015, 01:36:48 AM
Dibuja la variable keyboard_string en un evento draw.
232
Preguntas y respuestas / Re:Colorear parte de un objeto.
Agosto 19, 2015, 01:16:03 AM
Asumo que si comparas el coloreo de un sprite mediante image_blend con lo que tú quieres hacer, entonces lo que tienes es un sprite fijo de un gráfico circular con separaciones dadas y quieres hacer un image_blend de parte del sprite en vez de todo. No se me ocurre una forma de colorear parte de un sprite, pero si lo que necesitas hacer es dibujar un gráfico circular, en vez de eso puedes dibujar cada sector circular del color que quieras, con una primitiva tipo pr_trianglefan. Por ejemplo (esto sacado del ejemplo de draw_primitive_begin del manual de GMS):
Eso dibuja un sector circular rojo entre los ángulos 0º y 120º, centrado en 50,50 con radio 30 y un arco circular compuesto de 21 puntos.
Código [Seleccionar]
var i, steps, xx, yy, radius;
steps=20;
xx=50;
yy=50;
radius=30;
draw_set_color(c_red);
draw_primitive_begin(pr_trianglefan);
draw_vertex(xx, yy);
for(i = 0; i <= steps; i += 1)
{
draw_vertex(xx + lengthdir_x(radius, 120 * i / steps), yy + lengthdir_y(radius, 120 * i / steps));
}
draw_primitive_end();
Eso dibuja un sector circular rojo entre los ángulos 0º y 120º, centrado en 50,50 con radio 30 y un arco circular compuesto de 21 puntos.
233
Preguntas y respuestas / Re:Problema con las Views
Agosto 19, 2015, 12:39:24 AMCita de: serviciosadistancia en Agosto 18, 2015, 08:53:17 PM
Gracias por responder... Cambié los valores y lo único que logro es mover la view cuando el player pasa el centro de la room pero no logro hacer lo que quiero, sigo intentando, si alguien tiene alguna idea por favor que me la diga... saludos amigos
Colocar Hbor en 200 para una view de 800 de ancho hará que la view se mueva horizontalmente cuando el personaje se encuentre a 200 pixeles del borde del view y no antes. ¿No te funciona eso?
234
Preguntas y respuestas / Re:Añadir un evento que suceda al aparecer un determinado número de objetos
Agosto 18, 2015, 07:47:18 PMCita de: alvitofr en Agosto 18, 2015, 07:40:37 PMCita de: Guacusio en Agosto 18, 2015, 01:43:47 PMCita de: alvitofr en Agosto 18, 2015, 01:35:14 PM
Muchas gracias ;)
Y si esos enemigos son diferentes objetos, no uno solo, ¿qué tendría que poner?.
¿Qué tendría que poner para que al perder se mostrase el highscore y sonase un sonido?
Muchas gracias de antemano, espero que alguien pro pueda solucionarlo jaja.
En ese caso lo más conveniente sería agrupar todos los tipos de enemigo bajo un mismo objeto parent y contar el número de instancias de ese objeto con la misma función instance_number dentro de su evento create.
¿Podrías decirme cuál sería el código exacto para que al salir 5 enemigos diferentes, me llevase a otra habitación?
Muchas gracias de antemano, espero que no suponga mucha molestia, esque soy un noob en esto :-[
En el evento create del objeto parent de los enemigos (o_enemigos, por ponerle un nombre):
Código [Seleccionar]
if instance_number(o_enemigos)=5
room_goto(room_deseado);
235
Preguntas y respuestas / Re:Añadir un evento que suceda al aparecer un determinado número de objetos
Agosto 18, 2015, 01:43:47 PMCita de: alvitofr en Agosto 18, 2015, 01:35:14 PM
Muchas gracias ;)
Y si esos enemigos son diferentes objetos, no uno solo, ¿qué tendría que poner?.
¿Qué tendría que poner para que al perder se mostrase el highscore y sonase un sonido?
Muchas gracias de antemano, espero que alguien pro pueda solucionarlo jaja.
En ese caso lo más conveniente sería agrupar todos los tipos de enemigo bajo un mismo objeto parent y contar el número de instancias de ese objeto con la misma función instance_number dentro de su evento create.
236
Preguntas y respuestas / Re:Lio con los mandos.
Agosto 18, 2015, 01:38:55 PM
Aún con ese error puedes usar las funciones joystick_xpos y joystick_ypos, pero en vez de revisar si entregan valores mayores o menores que cero, tendrías que revisar si entregan 1 o -1 respectivamente. Lo otro es recurrir a la función joystick_direction.
237
Preguntas y respuestas / Re:Añadir un evento que suceda al aparecer un determinado número de objetos
Agosto 18, 2015, 01:34:56 PMCita de: Marth en Agosto 18, 2015, 11:58:25 AM
En el step pon:
if(instance_number(enemigo)>4){
show_message("¡Perdiste!")
game_restart()
}
Yo haría eso, pero en el evento create del enemigo en vez de en el step.
238
Preguntas y respuestas / Re:Consulta sobre barra de vida
Agosto 18, 2015, 01:33:52 PMCita de: Marth en Agosto 18, 2015, 11:56:27 AM
for(u=0 u<vida_total u++) draw_sprite(spritevida,0,5,5+u*sprite_height)
for(u=vida_total u<vida_maxima u++) draw_sprite(sprite_herida,0,5,5+u*sprite_height)
Esto te puede servir para hacer un sistema de vitalidad estilo Megaman.
¿Qué serían las variables vida_total y vida_maxima y entre qué rangos de valores deberían moverse?
239
Preguntas y respuestas / Re:Saber que se ha colisionado
Agosto 18, 2015, 12:59:27 AMCita de: penumbra en Agosto 17, 2015, 07:57:23 PM
No es muy común que un objeto verifique una colisión "ajena". Se puede hacer, pero se requiere más código y para lo que quieres hacer, no es neecsario. La gran mayoria de las veces es más fácil y conveniente usar una variable
Suponiendo que cada colisión con un objeto punto sólo cuenta una vez (la primera vez que se hace colisión con cada uno de ellos)
CREATE obj_contador
[gml]
puntos = 0[/gml]
CREATE obj_punto
[gml]activo = true[/gml]
EVENTO COLISION obj_punto vs obj_player
[gml]
if (activo)
{
obj_contador.puntos += 1
activo = false
}
[/gml]
ROOM_START() del obj_contador
[gml]
puntos = 0
[/gml]
En lugar de una variable activo se podría optar por destruír la instancia del objeto puntos después de haber actualizado el contador, pero no sé si esto se pueda hacer en tu juego o quieras conservar las instancias del objeto puntos
Tengo una duda de tu código, penumbra: ¿por qué inicializas la variable puntos en el evento create y también en el evento room start del objeto obj_contador?
240
Preguntas y respuestas / Re:¿Como eliminar una variable?
Agosto 16, 2015, 04:15:58 PM
A lo que dijo Clamud sólo agregaría que la única forma de destruir una variable perteneciente a una instancia es destruir la instancia que la contiene (obviamente si no es una variable global).