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 - TheJaj

1
Hola, estoy haciendo un juego con cierto grado de complejidad por parte de los controles. Y por ello quiero que el usuario sea capaz de elegir si así lo desea, actualmente el cambiar los controles funciona perfectamente pero quiero que se mantengan los cambios al reiniciar el juego.

Llevo un rato largo intentado con las funciones de:
file_text_write_real
file_text_write_string

Pero no me funcionan. ayuda :c
2
Al final he dejado que el "mp_potential" y he eliminado las variables que establecían el punto en que se detenían, y he cambiado las funciones de contacto con las de proximidad por lo cual cuando va a los edificios especiales queda corriendo al redor del edificio lo cual me hace gracia y por ellos se queda así por ahora. xDD
3
Cita de: Clamud en Marzo 10, 2018, 06:35:42 AM
Podrías usar estados, y en cada estado usar diferentes objetos como obstáculos.
Además, si el escenario está hecho sobre una rejilla, puedes utilizar las funciones mp_grid_* que requieren menos procesamiento que las funciones mp_potential_*, pero son más difíciles de configurar.

Llevo varias horas contemplando tu respuesta y estaría bien si no fuera porque al usar el mp_potential solo se dedica a esquivar un objeto a la vez, por lo cual tendría que usar parets y cada objeto puede ser "hijo" de un solo objeto lo cual no me sirve y con el grid si bien lo estoy usando, el problema es que tendría que crear un grid por cada "peón".

De todas formas creo que voy a usar el grid hasta que encuentre una solución que me convalezca mas.
4
Cita de: 3dgeminis en Marzo 08, 2018, 06:43:11 PM
Lo mejor es agrupar todos los objetos que son solidos bajo un mismo objeto parent y hacer referencia a este cuando uses mp_potential_step_object

xD

El hacer eso no sirve ya que las tienen que entrar en contacto con los edificios para producir recursos y los edificios son parte de esos obstaculos, por lo cual "evita" el edificio o simplemente no se mueve hacia el ya que es un ruta imposible.
5
Si bien funciona, tengo el problema de que tengo edificios interactuables que tienen la "colisión" para evitarlos. Y lo que quiero es que eviten estos edificios si su objetivo es ir a por madera en lugar de ir a un altar.

Tienes algún otro consejo? xD
6
Bueno, estoy haciendo un juego que tiene un mínimo de estrategia a la hora de recolectar recursos y por ende he programado la IA para ir de un punto "A" a un punto "B", pero es incapaz de rodear objetos que obstruyan su camino.

¿Algún consejo?

P.D: El utilizar path no me ha servido ya que los recursos los considero objetos que obstruyen el camino y por ello, los "peones" no se mueven hasta estos.
7
En general si no usas un "randomize()" vas a tener siempre los mismos valores.
ya que el sistema de las computadoras tiende a dar los mismos resultados, siempre y cuando hagas las mismas acciones una y otra vez.

Pero en la versión corta si quieres que nada se repita en la segunda partida, tienes que poner un "randomize()"
8
Tenes la funcion "irandom_range(x1,x2)" para obtener un valor aleatorio entre esos numeros siempre te da un valor entero y tambien tenes "random_range(x1,x2)" y este te da valores que pueden tener un coma tipo 0,5.
9
Ahora funciona como debería, pero ¿por que se elimina la surface al agrandar la pantalla?
10
Hola, cuando cambian de pantalla minimizada a maximizada me salta este error.

############################################################################################
ERROR in
action number 1
of Draw Event
for object obj_Omniciente:

Trying to use non-existing surface.
at gml_Object_obj_Omniciente_DrawEvent_1 (line 3) - draw_surface(Oscuridad,view_xview,view_yview)
#####################################################################

Entiendo que dice que la "Surface" no existe pero realmente esta declarada de forma global en todos los objetos...
11
Pues eso, quiero hacer un texto y que quede tipo:

"Hola, este es
un juego dedicado
a ser el mejor
juego bla bla
bla bla bla"

y no quede todo seguido

"Hola, este es un juego dedicado a ser el mejor juego bla bla bla bla bla"

Se que es un comando que se pone en la variable, pero no luego encontrar cual es. :/
12
Sep, esa sería la estructura.

En el objeto linterna_invisible dale una profunidad de -999 así Está por encima de todo.
13
Creo que entiendo lo que dices, y eso ya es cuestión tuya, mas bien de como organices los "sistemas" de juego.

En mi caso, siempre uso un objeto "omniciente" el cual tiene permanencia entre rooms y ahí es donde he puesto la generación del rectángulo negro, los círculos de luz los he puesto en los personajes/torres. Pero como digo es mi caso, ya que estoy haciendo un tower defense.

Pero supongo que si quieres tener cierto grado de orden podrias hacer un objeto llamado "obj_filtro_oscuridad" y otro "obj_linterna_filtro" pero para el segundo tendrías que programar con unas funciones para que no se note. Eso o en el objeto "filtro_oscuridad" pones un step end y usas un "with()" y te ahorras de crear un segundo objeto que hace el efecto de la "linterna".
14
Tienes razón, los 3 primeros trozos de código corresponden a uno, y el ultimo al objeto que crea la luz.

El problema es que el primer "Step end" es un simple "Step" disculpa que soy retrasado. :_ xD
15
Ahhh espera. xD

He visto tu codigo y no te voy a mentir no entiendo un huevo, pero yo he logrado lo que buscas con tan solo 12-20 lineas de codigo.

En el objeto que crea la luz/oscuridad

Create

globalvar Oscuridad;
Oscuridad = surface_create(view_wview,view_hview)


Step end

surface_set_target(Oscuridad)
draw_set_color(c_white)
draw_rectangle(0,0,view_wview,view_hview,false)
surface_reset_target()


Draw

draw_set_blend_mode(bm_subtract);
draw_surface(Oscuridad,view_xview,view_yview)
draw_set_blend_mode(bm_normal);



Y en el objeto que crea la luz

Step end

size = 128;
draw_set_blend_mode(bm_subtract);
surface_set_target(Oscuridad);
draw_ellipse_color((x-size)-view_xview,(y-size)-view_yview,(x+size)-view_xview,(y+size)-view_yview,c_white,c_black,false)//,c_orange,c_white,false);
surface_reset_target();
draw_set_blend_mode(bm_normal);