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

1
Cita de: penumbra en Agosto 23, 2014, 01:00:47 AM
Madre mía.... Tienes un montón de objetos que se podrían juntar en uno solo  @_@

El error al usar el if o el switch se debe a que, en el objeto control (me costó encontrarlo, porque se llama "obras") estás declarando el arreglo seleccion en CREATE así:
[gml]var i,seleccion;[/gml]

Eso en GM se conoce como una declaración de variable local. Esa variable local sólo "dura con vida" en el evento donde se crea. Al finalizar create, la variable no existe más, por lo que es imposible acceder a ella, ni siquiera el mismo objeto obras puede hacerlo después de CREATE.

La solución es muy obvia así que no tiene caso decirla  8)

jaja  :o

voy a montarte un templo, me declaro religión penumbra.
gracias amigo!!
2
Listo! el proyecto esta en una fase muy primaria pero esta tomando forma, muchas gracias por todo! voy a tener que ponerlos en los créditos jaja

PD: los sprites son temporales para probar el codigo
3
Hola a todos! muchas gracias por sus ideas ;D

la opción que presenta xizotono podría ser pero me parece mas ordenado utilizarlo con las id de las instancias, si no hay de otra ni modo, pero todavía no entiendo porque no me funciona.

probe lo que dice penumbra, tanto con if como con el ciclo switch y me tira error y no entiendo porque, he intentado eso cambiando la variable como, obj_obras.seleccion[0], obj_pestanas.seleccion[0], seleccion[0], id=seleccion[0], id_instance=seleccion[0] y nada!

me esta troleando la gente de yoyo games!
con el if sale como que no reconoce la variable y con el switch me dice que la variable debe ser constante, que me quieren decir?

PD:si le asigno una mask, pero es que en lo que hago click me tira un error y se me cierra el juego. >:(
4
Cita de: masterkiu en Agosto 20, 2014, 04:28:34 AM
hola amigo
bueno no es que sea un genio del codigo pero..
en este caso para lo que tu quieres puedes hacer lo siguiente
crea un script que haga lo que quieres dependiendo del sprite que usas ejemplo

if sprite_index="nombre sprite 1"
{que quieres que pase}
if sprite_index="nombre sprite  2"
{lo que quieres que pase}

luego llamas el script desde el evento leftclick o rightclick del objeto

otra cosa en el codigo donde creas los objetos, hay un vector en el que guardas la id del objeto creado pero si te fijas es un vector local osea si lo quieres llamar desde el objeto que creaste tendrias que poner objeto_control.seleccion[0] y ya con eso se arreglaria tu codigo aunque me parece un poco complicado hacerlo de ese modo
espero te sirva de ayuda
hasta pronto amigo

muchas gracias amigo! por lo genio, ya somos dos jaja, he probado las dos opciones que me das y no he logrado nada, intenté varias cosas parecidas y nada.

la razón de ser tan complicado ademas de que lo disfruto jaja, es que los objetos están dibujados en el gui por que son botones del hud que van apareciendo si seleccionas otros botones, estoy haciendo un juego de estrategia política y los menús son lo mas importante del juego.
entonces no tienen image_index, ya que no les asigno sprite, los dibujo a través del evento draw gui por varias razones que ya están solucionadas.

probé llamar a las instancias como me dices con obj_control.seleccion[0] y nada.
como hago para decirle al programa que si hago click en la instancia seleccion[0] pase algo? y asi para cada sub indice del array

5
Cita de: ivn_eze en Agosto 20, 2014, 02:16:29 AM
lo que yo haria seria aprovechar el codigo que hiciste para cambiar de sprite y que en el mismo prosceso le de una variable (algo así como objeto_id ) que al hacer click se haga una cosa o la otra segun el valor de esa variable.

o si no un if seleccion x , y lo que le quieras agregar, aunque dudo que funcione

PD: tu juego tiene que ver con ciencias sociales??


si jaja se nota mucho? es como un trópico pero a mi estilo. ser presidente y esas parafernalias.

a este ritmo de preguntas, voy a tener que ponerlos a todos ustedes en los creditos jaja.
en cuanto a tu respuesta, no entendí bien lo que me quisiste decir, tengo los id de las instancias almacenadas en el array,
seleccion[0]=id de la primera instancia
seleccion[1]=id de la segunda instancia
... y así.

lo que necesito es que al hacer click sobre la instancia 1, pase algo y cuando se haga click sobre la instancia 2 pase otra cosa y así(aunque son todas instancias del mismo objeto).

como dije tengo los id de cada instancia, lo que no se es como llamarlas en un if para que cuando se clickeen suceda lo que yo quiero. 8)





















6
Hola queridos makeros! :)
He creado un objeto botón, el cual tiene 8 instancias (8 copias del objeto) que se crean en la habitación a través de otro objeto control. he logrado que cada instancia tenga un sprite diferente. todo eso con este codigo:

evento create del objeto control
var i,seleccion;

// botones
for (i = 0; i < 2; i += 1){
    instance_create(x1+i*64,y,obj_pestanas)
}

for (i = 0; i < instance_number(obj_pestanas); i += 1){
    seleccion[i] = instance_find(obj_pestanas, i);
}
seleccion[0].sprite=spr_infraestructura;
seleccion[1].sprite=spr_sector_primario;


ahí se crean solo 2 porque no las he terminado  XD pero deben ser 8!

ahora lo que nos interesa,
necesito que al hacer click en una u otra instancia del botón sucedan cosas diferentes.

probé con el siguiente código, directamente en el obj_pestanas (el objeto botón), pero no me funciono.
evento mouse left pressed
if (seleccion[0])
{sucede algo}
if (seleccion[1])
{sucede otra cosa}


no se como decirle a la computadora que cuando haga click en una instancia u otra del mismo objeto sucedan cosas diferentes!
esa es la pregunta.
7
Cita de: Guacusio en Agosto 10, 2014, 09:57:21 PM
Lo que quieres hacer es complejo. Siendo riguroso, lo que GM permite mostrar en el room es una malla axonométrica con simetría vertical, es decir, las aristas de los rombos pueden tener cualquier dimensión pero siempre son simétricos respecto a un eje vertical (la perspectiva isométrica es un caso especial de perspectiva axonométrica en que además los ejes forman un ángulo de 120º). Por lo tanto, lo que quieres hacer es una perspectiva axonométrica sin simetría (lo que equivale a "rotar" los rombos, como dices) y eso no lo puedes hacer directamente. Sin embargo, se me ocurre algo que puedes intentar: calcula las dimensiones que necesitarían los rombos en GM de modo que si los rotaras coincidan con los rombos no isométricos que quieres usar; utiliza esa malla en el room y coloca tus instancias (se verán desalineados en un principio). Tienes que definir en el room un punto que haga de origen, en torno al cual todos los rombos de GM rotados calcen con tus rombos no isométricos. En el evento create de los objetos, calcula sus coordenadas x,y modificadas aplicando una transformación en función del ángulo de rotación y las coordenadas originales y en el juego aparecerán las instancias en sus ubicaciones correctas.

Muchas gracias! nunca se me hubiera ocurrido jaja, si no hay de otra ni modo, no se si sea posible, pero si generara un fondo en 3d con su reticula en el grado que necesito y sobre eso coloco los objetos 2d se resolveria el problema? es una alternativa que se me ocurre, ni idea si es mas facil o complicada.
8
Preguntas y respuestas / Grid en un angulo diferente
Agosto 10, 2014, 07:17:04 AM
Hola amigos makeros! :)

estoy haciendo un juego isométrico en  :GMS:, pero por razones artísticas me gustaría cambiar el angulo de los cuadros de la retícula.
pongo unos ejemplos:


isometría común y silvestre (30 grados )


aquí en el famoso sim city 4 giraron unos grados la retícula isométrica consiguiendo unos efectos interesantes

podría hacer los esprites en función de esta retícula pero no cuadraría con la retícula real y me gustaría que los objetos se movieran tambien dentro de esta retícula pero hasta donde he visto, solo se puede hacer mas chato el rombo en el room o alargarlo mas no girarlo.

alguna solución?

9
Preguntas y respuestas / Re:Ayuda con evento Draw_GUI
Agosto 05, 2014, 02:28:57 AM
Hola! yo pase por lo mismo y preguntando e investigando logre resolverlo de esta manera:
http://www.comunidadgm.org/preguntas-y-respuestas/botones-interactivos-en-el-hud/

espero sea de ayuda :)
10
lo he conseguido!

Cita de: 3dgeminis en Agosto 01, 2014, 08:42:52 AM
Supongo que el codigo lo tendras en Step y no en Create. Colocalo en el evento End Step

eso no funciono, he investigado mucho y he recibido mucha ayuda, les agradesco a todos.
para los que necesiten la solución ahí va.

para que un objeto se quede en una posición fija del view al mover la cámara sin movimientos raros ni nada, yo propongo lo siguiente:

en el evento Create:
x1=x;//la posición x del objeto que se necesite(declaramos esta variable para cerciorarnos de que las posiciones que usemos en todos los códigos sean la misma)
y1=y;


en el evento Step:
x=view_xview+x1;
y=view_yview+y1;


en el evento Draw Gui:
draw_sprite(spr_que_necesiten,image_index,x1,y1);

ahora lo mas importante es que no le coloquen un sprite asociado al objeto y determinan el Mask con el sprite que esáan usando, en este caso spr__que_necesiten.

de esta manera el objeto al reubicarce en la pantalla se sigue sacudiendo pero no lo vemos, solo vemos el sprite fijo que se esta dibujando y se podrá hacer click en el objeto aunque no se vea.
11
Cita de: eams1986 en Julio 28, 2014, 08:34:31 AM
haaa entonces creas las virtual keys amigo..


ejemplo
global.Left = virtual_key_add(32, 32, 64, 64, vk_left);
global.right = virtual_key_add(32, 32, 64, 64, vk_right);

asi mas o menos aprieta f1 para mas information en game maker
y escribe virtual_keys

Saludos

estuve leyendo y probando, resulta que el virtual key es para dispositivos tactiles, si existe alguna manera de usarlo con el mouse, la desconosco, estoy haciendo un juego para pc y no me resulta muy util, resolvi mi problema, colocando en el evento create del objeto el codigo
x=view_xview+100;
y=view_yview+100;


de manera que aunque mueva la camara del room(tengo un room mas grande que la pantalla(y lo quiero asi) y tengo una vista que siga al obj_cursor (el mouse), el objeto va a estar siempre en esa posicion y va a ser clickeable, cosa importante para una gui ya que lo que me pasaba antes era que se dibujaba el sprite en esa posicion del view pero el objeto estaba en una cordenada diferente(ya que este tiene una cordenada absoluta y el drawgui es relativa) quedando fuera del view.

por ahi todo perfecto, asunto solucionado, pero ahora tengo otro problema y es que cuando pongo el cursor en uno de los extremos de la pantalla para desplazarme por el room, el objeto hace un ligero movimiento hacia atras mientras esta el view en movimiento y quito el cursor del extremo para dejar la view en esa posicion, el objeto hace el movimiento contrario para quedarse en su puesto, son unos pocos pixeles y no afectan en nada, pero se ve terrible, quiero que el objeto se quede estatico en su posicion sin ningun tipo de movimiento mientras muevo el view.

disculpen por escribir tanto jaja :) gracias!
12
muchas gracias eams1986! lo voy a probar y les digo :)
13
muchas gracias a todos, el asunto es que no hay ningun problema con dibujar las cosas en el view, el asunto esta en que quiero que al hacer click en el sprite pase algo, lo logro cuando el objeto se dibuja normalmente, pero cuando esta dibujado en el evento draw gui o con los codigos view_xview etc. no funciona igual.
14
Hola a todos, llevo unos meses trasteando con el game maker :GMS:, estoy haciendo un hud y necesito que los elementos estén en el view en una posición fija como todos los hud; cuando son simples sprites que muestren algo o texto con el evento draw gui no tengo ningún problema pero necesito colocar botones para abrir unos menús y estos no responden cuando estan dibujados en el draw gui pero funcionan perfectamente cuando se dibujan con el draw normal lo cual no me sirve porque al mover la camara se salen de la pantalla y es necesario que esten siempre en la pantalla. agradesco cualquier ayuda. :)