Noticias

¡Ayuda a la Comunidad GM, haz una donación!

* Sponsor

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Duda sobre scripts,argumentos y with()  (Leído 393 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado VietnamNeko

  • Visitante
  • *
  • Puntos: 21
  • Mensajes: 9
  • solo 2 entidades entienden mi codigo, Dios y yo
    • Ver Perfil
en: Diciembre 21, 2019, 01:27:23 am
si dentro de un script, uso algo como esto:
with(argument0){
    if other.argument1 != undefined{
        with(instance_create(x,y,sprite_effect)){
            sprite_index = other.argument1
           
        }
    }
    instance_destroy()
}
tendria que usar other. para conseguir el argumento?

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado dixon

Respuesta #1 en: Diciembre 21, 2019, 03:55:50 am
Para (la instancia indicada)
{

si la otra instancia indicado está definido

{
 para (una nueva instancia creada)
      {
      su sprite será una instancia indicada
       }

}

Destruir la instancia
}

Esto es lo que hará el objeto que se indique en el argumento cero del presente script, preguntará si el otro objeto que ha colisionado con el tiene un arguneto1 bien definido y de ser así creará una instancia cuyo sprite será el ya definido.

Nunca he creado una instancia dentro de un with.

Voy denuevo... haber de que se trata.

Suponiendo que lo que se quiere es crear una instancia con un sprite igual al objeto con el cual se ha colisionado.

Suponiendo que un objeto A viaja en línea recta y colisiona con un objeto B y el A crea un objeto C con sprite igual al del B.

Código: [Seleccionar]
with (argument0)
{
nnn=instance_create(x,y,0)
nnn.sprite_index=other.sprite_index
}

Suponiendo ahora que el objeto other debe definirse para indicar que el Objeto A debe crear el objeto C solo cuando colisione con objetos de tipo B

Código: [Seleccionar]
with (argument0)
{
idx=argument1.id
nnn=instance_create(x,y,0)
nnn.sprite_index=idx.sprite_index
instance_destroy()
}

Ok estoy tratando de entender.

Vuelvo a comenzar de cero.

Un fotón con polarización A viaja a través de un acelerador de articulas y colisiona con un fotón de polarización B y produce otra partícula C (boson de higgs) de polarización B destruyendo por completo solo a la partícula de polarización A.

¿porqué crear otra particula?, ¿no será mejor transformar el sprite de la particula A en el sprite de la particula B?
Código: [Seleccionar]
with(argument0)
{
sprite_index=argument1.sprite_index
}

o quizas

Código: [Seleccionar]
with(argument0)
{
idx=argument1.id
sprite_index=idx.sprite_index
}

Nosé realmente lo que se intenta hacer, tampoco sé si el código está bueno solo sé que veo dos particulas colisionar o algo así. Es como la colision de particulas en harry pother y las del colisionador de particulas.

harry potter vs voldemort




Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.
 


Desconectado VietnamNeko

  • Visitante
  • *
  • Puntos: 21
  • Mensajes: 9
  • solo 2 entidades entienden mi codigo, Dios y yo
    • Ver Perfil
Respuesta #2 en: Diciembre 21, 2019, 04:40:54 am
Disculpá por no explicar la funcion: del script; simplemente lo uso para destruir uno/unos objetos y crear un objeto que obtiene el sprite que le coloco como un argumento desde donde lo llame, que desaparece al terminar su animacion. aunque creo que malentendiste un poco la pregunta, yo solo queria saber que, si queria conseguir el valor de un argumento del script desde dentro del with tenia que usar other. , nada mas.
« Última modificación: Diciembre 21, 2019, 04:44:40 am por VietnamNeko »

 


Desconectado dixon

Respuesta #3 en: Diciembre 21, 2019, 05:32:58 am
 :-[  Disculpa las molestias

Si el argumento está definido,  solo tienes que utilizarlo. No va el other. Quedaría así.

Código: [Seleccionar]
with(argument0){
    if other.argument1 != undefined{
        with(instance_create(x,y,sprite_effect)){
            sprite_index =argument1
           
        }
    }
    instance_destroy()
}

Lo que intentaba explicar es que no necesitas usar dos with porque el ultimo puede ser reemplazado por "nnn=" así

nnn=instance_create(x,y,sprite_effects)
nnn.sprite_index=argument1

Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.
 
Los siguientes usuarios dieron las gracias a este tema: VietnamNeko