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

136
Preguntas y respuestas / Problema con la cámara
Agosto 03, 2014, 01:14:37 PM
Quería saber si había alguna forma de hacer que la cámara siguiese al personaje principal desde una zona izquierda, sin tener que ser siempre el centro de la pantalla, y sin perjudicar el centro de las coordenadas del personaje.

Por mucho que  le ponga un Hbor de 700 no se me queda en la zona izquierda de la pantalla, imaginando que la pantalla es de 800 pixeles horizontales y 600 verticales.
137
Le he estado dando mil vueltas a todo esto y al final era más problema de la mascara de colisión que del código... al final hasta la cosa más tonta te puede hacer perder la noción de lo que esta mal o bien..

Bueno en cualquier caso ya esta resuelto, gracias a todos por las contestaciones.
138
Cita de: penumbra en Agosto 01, 2014, 10:16:55 PM
Entre mis funciones favoritas están las de colisión. Para detectar una colisión a la izquierda del jugador, suponiendo que el origen del sprite está centrado y el sprite tiene dimensiones de 32x32 pixeles y suponiendo que se quiere que el jugador detecte colisiones sólo contra instancias enemigas:

[STEP] del jugador
colision_izquierda = collision_rectangle(x-20, y -16, x-16, y + 16, obj_enemigo, true, true)  //llamar a la función para revisar colisiones
if (colision_izquierda > 1000)
{
    //eventos que ocurren cuando hay colisión
}

El código anterior crea un rectángulo de colisión de 4 pixeles de ancho por 32 de alto a la izquierda del sprite del jugador. Es sólo un ejemplo, probablemente 4 pixeles de ancho sea una zona muy delgada para por ejemplo, detectar una bala, pero eso depende del juego. collision_rectangle permite especificar las dimensiones de la zona de colisión, haciéndola muy útil por ejemplo para juegos donde el daño varía según la zona donde ocurra un impacto

Sí, muchísimo mejor, sólo he de amueblarlo a lo que yo necesito, 128 de alto y 128 de ancho, aunque el Sprite no necesariamente utiliza las medidas completas, así que voy a ver que puedo hacer. Es necesario poner todas las medidas a mano o hay alguna forma mediante un calculo de sprite_index conseguirlo? Ya que no todos los sprites son iguales.
139
Cita de: Maximo en Agosto 01, 2014, 08:40:20 PM
pon en el evento step:

if(place_meeting(x+1,y,objeto)){pon aquí lo que pasa} //esto es para la colisión desde la derecha
if(place_meeting(x-1,y,objeto)){pon aquí lo que pasa} //esto es para la colisión desde la izquierda
if(place_meeting(x,y+1,objeto)){pon aquí lo que pasa} //esto es para la colisión desde abajo
if(place_meeting(x,y-1,objeto)){pon aquí lo que pasa} //esto es para la colisión desde arriba

sustituye objeto por el objeto con el que va a colisionar.
Este código mira si el objeto está colisionando con otro objeto en los distintos lados del sprite

Me da como parones cuando camina. La colisión la realiza bien cuando toca con la zona izquierda pero a la hora de caminar se traba.

x += 6;
if (place_meeting(x+1,y,obj_colparent)){
         x-=6;
    }


He pensado en la posibilidad de que el problema fuera culpa de usar X pero lo he descartado ya que antes ya lo había probado con variables.
140
Cómo se le puede indicar a Game maker la colisión en un solo lado del sprite? O por ejemplo que identifique cuando colisiona con uno de los lados de un objeto sin necesidad que sean todos sus lados, sólo uno, por ejemplo su lado izquierdo en un cuadrado.

Sé que Bbox sirve para indicarle uno de los lados del sprite, pero cómo se da cuenta game maker o cual es la función para que se de cuenta de que el personaje o otro sprite ha hecho colisión con ese lado.
141
Cita de: Maximo en Agosto 01, 2014, 11:13:51 AM
si se puede, para ello utiliza la variable depth
por ejemplo, si lo que quieres es que la profundidad de un objeto sea respecto a lo lejano que esté de los otros objetos puedes poner
depth = -y

Gracias :)
142
Se podría conseguir  que la profundidad o Depth, no dependiese del objeto, sino de cada instancia? Es que si pongo un depth a un objeto luego si quiero jugar con el tema de juntar escenarios no puedo poner más objetos visibles dentro de la zona donde le puse un determinado depth ya que me los tapa... Por eso querria saber si existe la posibilidad o alguna forma de hacer que el Depth dependiese de la instancia  y no del objeto en si.
143
Cita de: penumbra en Julio 31, 2014, 11:02:01 PM
Una manera es (En el evento [Animation End]):
if sprite_index == spr_no_ciclar
     image_speed = 0


Otra manera es (en [STEP]):
if (sprite_index == spr_no_ciclar) and (image_index >= image_number - 1)
     image_speed = 0


Gracias penumbra, un placer tenerte por aquí siempre  :)
144
Tenia la duda de como se podría conseguir que un sprite tuviera por ejemplo 5 subimagenes, 4 de esas subimagenes hacen un movimiento pero la quinta es estatica, es decir, quiero que la quinta sea el último sprite y que no cambie y no repita de nuevo el proceso de las otras 4 subimagenes, que permanezca el último sprite.

Dicho de otra forma, se hace la animación de sprites y no quiero que se repita la cadena de sprites, sino que al llegar al último sprite se quede con ese aunque este realizando la misma acción.
145
Cita de: Maximo en Julio 31, 2014, 08:11:41 PM
Lo que podrías hacer es poner una variable que indicara si el objeto ya ha sido tocado, si no ha sido tocado le da 1 punto, si ha sido tocado no le da nada.
Por ejemplo:
en el evento create
var_tocado = false
creamos una variable para saber si el objeto ha sido tocado

en el evento steep

if (place_meeting(x,y,obj_player) and var_tocado = false){
    image_index = 1;
    global.point += 1;
    var_tocado = true
}

esto hará que al tocar el objeto solo te de un punto

Muchas gracias, me estaba comiendo la cabeza con lo fácil que era pensar en 1 variable más para la comprobación XD
146
Tengo un problema con un bucle que se me genera en el contador

Step Event
if (place_meeting(x,y,obj_player)){
    image_index = 1;
    global.point += 1;
}


Como podría solucionarlo de tal forma que cuando toque o colisione con el objeto solo cuente 1, en vez de generarse el bucle que le indico en "global.point + =1;". Hay que tener en cuenta que la instancia no la puedo destruir ya que tengo intenciones de seguir utilizándola.

Edito: Estaba pensando en utilizar surfaces, de tal modo que destruyo la instancia una vez que no la necesito más pero me quedo con el sprite que es lo que me interesa.
147
Propuestas y soporte / Re:Recopilatorio
Julio 31, 2014, 12:16:08 AM
Cita de: knd144 en Julio 31, 2014, 12:03:25 AM
En todo caso hacer una base de datos (tabla o tablas extras) que complementen el buscador del foro, con palabras claves indexadas, temas y prioridad... hacer lo que hace google pero manual  XD

Ya pero no es lo mismo complementar un buscador que poner tu mismo a modo de indice los mejores artículos del foro... Yo ahora me puedo estar perdiendo un articulo por no saber que existe, tampoco me voy a poner a buscar por el nombre de ese articulo si directamente no si si existe, sabiendo que hay mil posibilidades dentro de un buscador, es exagerado.
148
Cita de: dbyarts en Junio 28, 2014, 05:21:34 PM
claro que si campeón
pero cobro $

Podríamos hablar de precios pero como sabrás no pagaría por un producto que aun no he visto. Así que depende de las condiciones, no pagaré al tun tun.
149
Propuestas y soporte / Recopilatorio
Julio 30, 2014, 06:40:05 PM
No creéis que deberíamos poner un tema a modo de indice o recopilatorio de los temas más interesantes del foro? Lo podriamos indizar a modo de diccionario y ahí poner los articulos más sorprendentes para de paso darle más audiencia al currazo que haya podido hacer alguien, este tema estaria en chincheta y todos podriamos ir viendo a modo de libro lo más interesante.
150
Deberías usar mascaras padre, haces un obj_controlparent o obj_controlcolision, a partir de eso creas una colisión hacia el obj_controlparent dentro de los aliados y tu personaje y ahí metes una acción para que suceda lo que quieres.

Hay bastante por Google sobre estas cosas, o en este mismo foro debería de haber algo también sobre este tipo de colisiones, búscalo seguro que lo encuentras, y sino ya te hecho una mano.