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

31
Buenas,

tengo un player que se mueve por la pantalla, y conforme avanza va dejando un rastro de objetos cuadrados. C?digo de step:

[gml]if place_snapped(global.grid, global.grid) {
   if keyboard_check(vk_left) {
       motion_set(180, player_speed);
    } else if keyboard_check(vk_right) {
       motion_set(0, player_speed);
   } else if keyboard_check(vk_up) {
         motion_set(90, player_speed);
   } else if keyboard_check(vk_down) {
       motion_set(270, player_speed);
   } else {
       motion_set (0, 0)
   }
   if (place_meeting(x, y, rastro) == false)  {
       show_debug_message("libre")
       id_obj = instance_create(x, y, rastro)
   }  
}[/gml]

El problema es que no me lo hace bien. ?Como creo un rastro alineado a la cadricula de global.grid (32x32). Supongo que al hacer el movimiento, como igualmente lo incrementa la x o la y uno a uno, el place_meeting no me lo detecta bien. Asi que he hecho este cambio:
[gml]    if ((x mod global.grid) = 0 && (y mod global.grid) = 0) {
       if (place_meeting(x, y, foreground) == false)  {
           show_debug_message(x mod global.grid)
           id_obj = instance_create(x, y, foreground)
       }  
   }[/gml]

Se supone que de est? manera, hasta que el x e y no est? alineado no deberia de entrar, pero lo hace. Como lo hariais vosotros?
32
Creo que lo podria hacer de otra manera... puedo crear un objeto en el punto que marco, y que elija una subimagen de un sprite cargado. La otra cuesti?n seria: como cargo por codigo un fichero en un sprite como el que muestro abajo? Lo digo porque se puede hacer mediante la opci?n add from strip, pero no veo esa opcion por codigo...
33
Me serviria, pero como le digo que es el background que no est? en la room?

Adjunto ejemplo. Al principio el objeto cambia el background por el de un fichero, pero luego quiero ir a?adiendo lo que he comentado.
34
Buenas, os cuento el tema...

tengo dos backgrounds en el programa, uno cargado en una room. Me gustaria que cuando hiciese click en la room se a?adiese un trozo del segundo background, jugando con el x, y, w, h, pero no se a que funcion deberia de llamar en el global left. Alguna sugerencia?

David
35
Bueno, creo que por fin lo he logrado. Envio demo de lo que estoy haciendo por si a alguien le interesa.

Merci a todos!
36
He buscado un poco y veo que existe la funci?n room_tile_add(ind,back,left,top,width,height,x,y,depth), que me deber?a de servir (aunque tambi?n existe un tile_add, no se la diferencia), pero no se ve nada  :-[. En que evento lo deberia de a?adir? O me faltar?a alguna funci?n m?s para redondear?
37
Para a?adir, yo programo en visual basic y la referencia tambi?n es la esquina superior izquierda. La "gracia" es que el eje y es positivo, es decir, cuanto mayor sea el n?mero, m?s abajo se colocan los objetos.

A nivel de programaci?n visualmente se colocan los objetos siempre con esa referencia, otra cosa es que Game Maker utilice valores negativos porque se da a entender que es el cuarto cuadrante, tal y como se ve en el gr?fico de m?s arriba.
38
Me gustaria tener dos backgrounds, uno encima de otro, y que se borrase cuando pasase un objeto. Una manera seria creando objetos y con un evento collision lo fuera eliminando, pero lo veo un poco heavy. Otra manera seria crear un tile de toda la pantalla y que se fuera eliminando conforme para el objeto, eso lo consigo con tile_layer_delete_at.

La cuesti?n es a?adir el background de un fichero, eso ya lo he conseguido gracias a ti, me faltar?a poder a?adir otro fichero como tile, o buscar una manera para borrar esa imagen.

Merci por la atenci?n!!
39
Merci por responder. No creo que me sirva, no llega a ser un tile, ya que no veo el depth que se le asigna (por defecto 1000000). La cuesti?n es que quiero crear un background y luego otra imagen que se vaya borrando por zonas cuando haces click, sin tener que crear objetos por toda la pantalla.

M?s sugerencias?
40
Lo he conseguido!!

Siempre me olvido que cuando se hace un draw_background, hay que hacerlo en el evento draw.

Ahora una ?ltima cuesti?n: si el background es un tile, como lo hago para dibujarlo justo en el x, y determinado? Me interesa para luego hacer esto:

[gml]tile_layer_delete_at(1000000,mouse_x,mouse_y)[/gml]

Lo quiero hacer para no a?adir los archivos al archivo GM, que pueda cambiarlo externamente.

Muchas gracias!
41
Buenas, tengo un objeto que en su metodo create deberia de crear una background y ponerselo a su room. el c?digo es el siguiente:

[gml]// draw background
index_back = 0
mybackground = background_add("background.png",false,false)
draw_background(mybackground,0,0)
background_assign(index_back,mybackground)[/gml]

Pero no me genera nada. ?Como deberia de ser?
42
Entonces, para que continue indefinidamente, debo controlar, supongo que en el step, que cuando est? en la ?ltima posici?n del timeline reanude el timeline con el playing?
43
Buenas,
desde un evento, puedo arrastrar un timeline donde elijo que timeline, la posici?n, si impieza inmediatamente y si tiene loop.

Como se a?ade todos estas opciones por lenguaje GML? Me interesa sobretodo el loop.

Merci!

David
44
Buenas, el for era para recorrer todos los backgrounds que he cargado para ver que me mostraba.

Al final lo resolv? como indicab?is, con background_index[0..7] devuelve -1 si no est? cargado (si solo cargo 3 de los 8) as? que de esta manera puedo cambiar de background con botones anterior y siguiente. Muchas gracias!!
45
Buenas,

me gustaria crear una pantalla que al hacer click a un objeto vaya cambiando el background. Veo que una room puede almacenar hasta 8 backgrounds, asi que los pongo todos y marco el primero como visible.

?Como hago para al hacer click me muestre el siguiente background de los que he almacenado (con un maximo de 5)? he visto que existe la funci?n background_visible[0..7] pero haciendo esto...
[gml]for (i=0; i<8; i+=1) {
show_debug_message(    background_visible)
}[/gml]
me devuelve 8 unos, cuando solo he cargado tres fondos y el primero ?s el unico marcado con visible when room start

Merci!

David