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

196
sigo con el problema de antes, de que necesito comprobar si una id existe, el problema es ese, si no existe el programa me tira error.
ya intente con variable_local_exist y con object_exist.
pero cada que se ingresa una id de un objeto que no existe me tira un error asi:

ERROR in
action number 1
of Mouse Event for Left Released
for object obj_escritor:

Error in code at line 11:
   if variable_local_exists(objeto_test_id.object_index)
                                           ^
at position 42: Unknown variable object_index


de verdad no se como solucionar este problema. aqui tienen el codiogo de lo que trato de hacer, a ver si alguien me puede dar una solucion o orientarme a como comprobar si algo existe.

archivo = file_text_open_write(working_directory+"/test/archivo.txt")
for (i = 0 ; i < 21 ; i +=1)
{
objeto_test_id = i+100000
if variable_local_exists(objeto_test_id.object_index)
{
objeto = object_get_name(objeto_test_id.object_index)
if objeto = "obj_test"
{
  file_text_write_string(archivo,string(objeto)+","+string(objeto_test_id.x)+","+string(objeto_test_id.y))
}
file_text_writeln(archivo)
}
contador +=1
}
file_text_close(archivo)


como les digo, este código funciona hasta que se encuentra una id que no posee objeto.
penumbra, gracias por la idea, pero no me funcionaria debido a que tengo mas de un mismo objeto.

edito:

ya solucione el problema, si a alguien le sirve el código que hice aquí lo doy sin el error que tenia antes.

archivo = file_text_open_write(working_directory+"/test/archivo.txt")
/*
file_text_write_string(archivo,"hola mundo,15,2")
file_text_writeln(archivo)
file_text_write_string(archivo,"hola mundo2")
file_text_close(archivo)
*/
for (i = 0 ; i < 21 ; i +=1)
{
objeto_test_id = i+100000
if instance_exists(objeto_test_id)
{
objeto = object_get_name(objeto_test_id.object_index)
if objeto = "obj_test"
{
  file_text_write_string(archivo,string(objeto)+","+string(objeto_test_id.x)+","+string(objeto_test_id.y))
}
file_text_writeln(archivo)
}
contador +=1
}
file_text_close(archivo)

básicamente este código permite analizar todos los objetos id por id ver que objeto es y por medio de eso hacer la acción que se quiera con ese objeto.

todavía necesito descubrir como encontrar la id mas alta en una room.
si alguien tiene ideas estoy abierto a ellas.
197
gracias por tu respuesta, sin embargo la funcion no funciona sola, estube investigando un poco y asi es como se hace funcionar la funcion, para todos los que tengan el mismo problema que yo:

Create Event:
execute code:

objeto_test_id = 0

Mouse Event for Glob Left Pressed:
execute code:

objeto_test_id=get_integer("numero de id","")
//esta es la parte que hace el trabajo
with (other)
{
aa=other.objeto_test_id
objeto = object_get_name(aa.object_index)
}

Draw Event:
execute code:

draw_text(x,y-50,"aga click para introducir la id")
if objeto_test_id != 0
{
draw_text(x,y-25,objeto)
if objeto = "objeto_test"
{
draw_text(x,y,"funciona")
}
else
if objeto_test_id = 1
draw_text(x,y,"introduzca una id valida")
}



ahora lo unico que todavia no logro descubrir es como hacer cuando se encuentre con una id que no exista, por ejemplo que sea una id de un objeto destruido. si alguien tiene una idea de como arreglar esto seria de gran ayuda.

edito:

la funcion trabaja asi: object_get_name(instance_id.object_index)
198
explico mi problema, necesito obtener el objeto de una id, no la id de un objeto.

obtener la id de un objeto es relativamente facil, pero no e logrado hacer lo contrario, que yo, dando una id, me arroje que objeto es. escribí este codigo:

create:
objeto_test_id = 0
global_mouse_pressed:
objeto_test_id =get_integer("codigo","")
draw:
if objeto_test_id != 0
if objeto_test_id = objeto_test //este es el objeto a testear
draw_text(x,y,"funciono")
else
draw_text(x,y,"id no valida")


este codigo no funciono, asi que probe este

create:
objeto_test_id = 0
global_mouse_pressed:
objeto_test_id =get_integer("codigo","")
draw:
if objeto_test_id != 0
if objeto_test_id = objeto_test.id //este es el objeto a testear
draw_text(x,y,"funciono")
else
draw_text(x,y,"id no valida")


al principio funciono, pero solo funciona con la id del primer objeto creado, es decir no funciona si hay mas de un mismo objeto.

entonces la pregunta es esa, obtener objeto de una id dada para poder usarla para comparar con un if para que el código haga una acción especifica dependiendo del objeto que tenga esa id.

esto solo es una prueba de concepto ya que el uso real que le daría seria dentro de un for para testear todos los objetos dentro de una room y dependiendo de que objeto sea cada uno hacer una acción dada( es un sistema de guardado propio que necesito, no, no me sirve el que trae por defecto el gamemaker.)
199
la pregunta es clara, pero tengo que explicar otra cosa, estoy desarrollando un juego desde hace tiempo, y e llegado al punto de crear un sistema de sombras que le quedan perfecto al juego, el problema es el siguiente, para este sistema de sombras necesito crear una instancia cada tantos pixeles en toda la room, entonces, tengo alrededor de 1300 instancias sacando calculos, por lo que el rendimiento es pésimo.

el problema es que necesito desactivar las instancias que están fuera de la vista, para lo cual yo se que se puede usar la funcion instance_deactivate_area e instance_activate_area, el detalle esta en que solo quiero desactivar las instancias del objeto de la sombra, pero esta función desactiva TODAS las instancias fuera del área. en esto radica el problema, alguien puede decirme una solución o función que desactive solo las instancias de un objeto y no todas las instancias
200
ok, muchas gracias, me sirvio perfectamente, y me acabas de dar una nueva visión, las vistas también son objetos, por ende se pueden hacer muchas otras cosas con ellas, muchas gracias.

una cosa ultima cosa, ¿habrá una manera de "suavizar" esa vista?
201
creo que la pregunta es clara, pero para que me entiendan, en el juego que desarrollo tengo 2 vistas de un mismo lugar todo el tiempo, entonces mi problema es que yo quiero que un objeto que tiene un sprite se dibuje en una sola de las vistas y no en las 2, la razón de que hallan dos vistas es que uno es un "minimapa" cuyo rango de visión es mayor al del cuadro de juego, pero con una resolución inferior.

en la imagen adjunta pueden observar que en el hud del jugador hay un minimapa, que no es mas que una vista mas grande pero con menor resolución, ahora el problema esta en que no quiero que se vea el hud, solo el personaje y las demas cosas, si se fijan se puede ver el hud en el minimapa y es lo que no quiero.

espero me puedan ayudar.
202
podrias usar el "mp_potential_step" este lo que te va a pedir es a donde quieres que vaya el objeto, la velocidad de este y si quieres que evite objetos solidos o todos, yo personalmente uso este, devido a que estoy programando en perspectiva isometrica y no me sirve muy bien el mp_grid, ahora el mp_grid es mejor debido a que busca el camino mas cercano, mientras que el mp_potential_step busca ir directamente al objetivo, y si se encuentra un obstaculo lo rodea.
203
me refiero a este manual
http://www.comunidadgm.org/manual_GM/Index.php
hay alguna manera de bajarlo?
lo necesito por las funciones y porque esta en español
si me pueden ayudar lo agradecería mucho
204
 Mi pregunta esta clara, neceisto el manual que se encuentra en esta web, la razon es que mi coneccion no es muy estable y no se cuando puedo revisar el manual online, asi que nececiro saber si es posible descargarlo y de donde