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

421
Bueno, aquí estoy otra vez.
He exportado mi juego a Android, para ir viendo como va, relación tamaño criaturas/pantalla.
Pero se instala en el móvil y entro a varias room, pero cuando entra a la de juego, me salta un error diciendo que el archivo no esta listo para leer.
""File is not opened for Reading""
El evento que lo llama es Create, de un objeto, y este es el código
ini_open ("Datos\CriaturasPosee.ini")
global.enjuego = ds_list_create()
criaturas2 = file_text_open_read("Datos\CriaturasPosee.txt")

global.Batallon = ds_list_create()

while not(file_text_eof(criaturas2))
{
criatura2= file_text_read_string(criaturas2)
ncriatura2= asset_get_index(criatura2)
cantidad2= ini_read_real('CriaturasBaraja',criatura2,0)

    if cantidad2>0
    {
        repeat (cantidad2)
        {
        ds_list_add(global.Batallon,criatura2)
        }
    }
file_text_readln(criaturas2)       
}


A alguno le ha pasado antes, que diga el móvil que el archivo no se puede leer,? yo creo que es por la ubicación del archivo o algo. En el pc va perfecto, no da fallo alguno.


EDIT:
No se exactamente que pasaba, era algo con los archivos incorporados. Cree de nuevo el proyecto y funciona perfectamente.
Ahh, sabeis que si teneis un móvil enchufado al pc, cuando le das a exportar a Android te lo ejecuta directamente en el móvil. Me he quedado a cuadros. :) :)
422
Ok gracias. Sera otra cosa.

Y que estoy, en collision_line, que id obtiene primero..  Ejemplo.
__A-A-E___
E= enemigo, tiene este código     obs = collision_line(x,y,x-(64*DistAtk),y,objAmigo,false,false)
El enemigo esta mirando hacia la izquierda. Y me detecta el primer A, no el segundo, y lo que quiero es que coja el Segundo A.

Coje de derecha a izquierda o de izquierda a derecha??
Gracias
423
Hola. Cada vez que arreglo un fallo sale otro, buzz, estoy desesperado, y me ha surgido una duda.
Yo tengo en el evento draw  (draw self (), draw tex (texto) y draw sprite (una imagen mucho mas pequeña). Esta imagen o este texto tambien hacen colision?? Es k me estoy volviendo loco. Me detecta colisiones donde yo no veo que haya.
424
Yo tengo algo parecido, pero para mover criaturas, dado que hay muchas combinaciones. No se si será lo mas optimo, pero funciona.

toca   --  Variable = true o false
  if varaible = true
      toca2 --  Variable = true o false
        if variable = true
            toca3 -- Variable = true o false
                if variable = true
                      toca4 --- Variable = true o false
                else
                   enemigo
        else
          enemigo
else
   enemigo




Y así, hasta la cantidad que necesites, se que no es lo optimo, que lo más seguro haga algo mejor, pero para salir de paso y continuar hasta que sepa o sepamos hacerlo mejor, funciona, comprobado por mi. Yo en mi caso en vez de toca era place_free(), para saber si había un objeto hay, y si no crearlo, y así hasta 8 veces.
425
Preguntas y respuestas / Dudas uso alarm
Enero 15, 2015, 08:26:16 AM
Hola otra vez, vamos haber si esta vez me explico bien.
Tengo un botón, que hace un do until, y va sumando a una variable. Luego tengo puesto que que si esa variable es mayor de 10   objenemigo.alarm[0]=20.
En el objenemigo, tengo un evento alarm[0], que ejecuta un código: visible = true.

Pero no lo hace. No se si es que no uso bien las alarmas.
Lo que quiero es cuando yo apreté un botón que ejecuta un código, cuando llegue a un determinado punto, ponga la alarma a contar, y cuando pase ese tiempo(2seg o asi) haga visible un objeto determinado.  y ejecute un código desde el evento alarm[0], o el número que sea.

Gracias
426
Preguntas y respuestas / Re:Dudas con animaciones
Enero 15, 2015, 01:10:06 AM
Hola, por lo que entiendo, tienes que tener 1 sprite mas, o dos, según las posiciones de acabe de salto. Cuando acaba el salto chocara con algún objeto solido, ponle que cuando choque con ese objeto solido cambie a un sprite de "terminarsalto", o algo asi. Y cuando acabe esa animación, le pones la que toque.
No se si es esto algo asi lo que esperas.
427
Gracias. Ya me di cuenta de lo del centro del spriter.
Respecto a lo del parent. Me refiero a un mismo objeto tienr varias instancias, y kiero asignarle a cada una un parent diferente.
428
Preguntas y respuestas / Duda mirror sprite y parent
Enero 14, 2015, 10:02:57 PM
Hola, tengo un objet, que lo mismo puede estar mirando para la derecha, que para la izquierda.
Por defecto mira a la derecha.
He estado viendo opciones, de mirror, xscale, etcc, pero ninguna me llega a valer. Explico, tengo un scrip independiente al que llama cada instancia para dibujar alrededor suyo cifras de vida, daño, etcc. Si uso mirro se me voltea, pero no en el mismo sitio. Haber si me explico

__   __  ___ E ___  esto es el orginal

___  ___ 3___  ____ y eso es si uso mirror, o el xscale -1.

___  ____  ___3____ y esto es lo que quiero, sin tener que tener el spr creado. Dado que si creo el spr y se lo asigno en el evento créate, funciona, pero es un engorro tene todos los spr duplicados por este motivo.

Haber si alguno sabe como hacerlo. Gracias.


OTRO PROBLEMA
He estado leyendo y resulta que no se le puede poner un parent a cada instancia?? Yo pensaba que sí, pero quedo obsoleta la función o algo asi, verdad??
Madre mía, es que si no tendré que crear 2 veces el mismo objeto, uno para un parent, y otro para el otro. AMIGO   /   ENEMIGO
429
Mercado / Compartir licencia Android
Enero 12, 2015, 11:14:22 AM
Hola, tras leer el foro y tal, he leído que se puede compartir una licencia entre 3 ordenadores.
Busco gente que este dispuesta a hacer esto. Nos juntamos los 3, comprar la profesional + android entre los 3.
Así el precio es bastante menor, y es viable, creo. Por lo tanto quien este interesado que avise, y vamos hablando.

Enviar privado para mas seguridad y así estar mejor comunicados.

EDIT:
Acabo de ver los precios y los han subido, vaya m.....
Seria 400 dólares las dos cosas.

Ahh, si alguno ya tiene eso y kiere venderme una copia de la licencia también valdría, si llegamos al acuerdo del precio.
430
A mi me paso una vez que tenia una room con objetos, borre un objeto, pero no lo quite de la room, y esa room se quedo como pillada, y daba error al entrar.
Mira haber si puede ser algo de eso. Haber si as borrado algo, y no se ha quitado de los otros lugares, room, objetos, background, etcccc
431
Sigo desesperado, no hay manera de dar con la tecla. No subo el proyecto aquí porque ya ocupa 11mb.
Haber si me explico y haber si alguien me entiendo y me puede echar una mano.

Tengo un mapa con el de la foto.
Con el botón pasar turno, bajo un turno a cada criatura de la que están abajo, y las alineo si se han puesto alguna arriba.
Arriba al soltar el raton dentro de alguno de esos cuadrados la criatura se alinea al cuadrado.
Todas las criaturas son solidas. Los cuadrados NO
La criatura que esta en medio, la que pone un 10, tiene como pariente objEnemigo, la otra objAmigo, es una prueba
Al darle pasar turno entro otros códigos hace esto

// andar criaturas
global.CriaturaAvan=0
do
{
    inst = instance_place( 768 -(64*global.CriaturaAvan),224, objAmigo)
        if (inst > 0)
        {
        scrMoverse(inst)
        global.CriaturaAvan +=1
        break;
        }
        else
        {global.CriaturaAvan+=1}
}
until (global.CriaturaAvan>10)


Va cuadrado por cuadrado comprobando si hay un objeto amigo, y si es asi llama al scrip scrMoverse

criatura = argument0
i=0
a= criatura.DistAtk

global.obstaculo = instance_place(criatura.x, 224, objEnemigo)
        if (global.obstaculo= -4)
        {
        with (criatura)
        {
        Accion = 1
        mipath = path_add()
        path_add_point(mipath, x, y, 100)
        path_add_point(mipath, (x+64), y,100)
        path_set_closed (mipath, false)
        path_start (mipath, 10,0,true)
        Mov -=1
        }}
        else
        {
        criatura.Accion = 2
        }


Este scrip crea un path temporar de adonde debe ir la criatura. Asi se para sola al llegar. Si la criatura tiene varios "Mov", repite esto, por que en el evento End_Paht tengo esto
Accion = 0
i=1
a = DistAtk
aa=0

if (Mov > 0)
{
    while not (i = a)
    {
        global.obstaculo = instance_place(self.x, 224, objEnemigo)
        if (global.obstaculo >0)
            {
            Accion = 2
            aa=1
            break;
            }
    i+=1
    }
scrMoverse (id)
}
else
{
    while not (i = a)
    {
        global.obstaculo = instance_place(self.x, 224, objEnemigo)
        if (global.obstaculo >0)
            {
            Accion = 2
            aa=1
            break;
            }
    i+=1
    }
Mov = MovO
scrSiguienteCriatura()
}


AHHH, ACCION ES PARA LOS SPRITE
switch (Accion)
{
    case 0:
    sprite_index = sprEspada2Espera
    break
    case 1:
    sprite_index = sprEspada2Mov
    break
    case 2:
    sprite_index = sprEspada2Atk
    scrAtake(id,global.obstaculo)
    break
}


Con el código mejor o peor me lo hace, pero aquí estas el problema
global.obstaculo = instance_place(criatura.x, 224, objEnemigo)
en la acción al moverse, no se porque, estando a 128pixees de distancia, mas o menos, (2 Cuadrados) me detecta que hay un objEnemigo,(padre de la objeto), he probado +32, +64, y nada, me detecta siempre un enemigo a 128pixeles, y no tengo ni idea por que.

Haber si alguien me puede echar una mano
PSEUDOCODIGO.
criatura amigo comprueba si hay alguna criatura delante, si no, anda 64pix, el siguiente cuadrado (esto lo hace bien cuando no hay criaturas objenemigas cerca)
vuelve a comprobar si hay objenemigo cerca. Si es asi ataka, y si no, no hace nada.
Al siguiente turno, repetimos, si no hay objenemigo anda, y si lo hay ataka.

Es asi de simple. Haber si alguien me arroja luz.

Gracias de antemano
432
Cita de: Clamud en Enero 10, 2015, 08:12:59 PM
No se bien lo que quieres hacer, pero entiendo algo así: quieres que el script mueva a la criatura por celdas hasta que encuentre algo que atacar, y que se vayan mostrando las animaciones de todo lo que hace. Eso no se puede hacer en un solo step en GMS, porque el evento Draw tiene que ser ejecutado varias veces. En versiones anteriores si se podía con las funciones sleep y screen_redraw, pero ya son obsoletas.

Como dice 3dgeminis se pueden usar alarmas o ,se me ocurre, que la criatura actúe conforme a un sistema de estados.

Además, en el código hay partes que pueden ocasionar un comportamiento inesperado: el operador <> no marca errores, pero no aparece en la documetación, y no tengo idea de cómo funciona o si es aplicable ahí; la condición if obstaculo = -1 puede que nunca se cumpla, porque la variable obstaculo se asignó con la función collision_point que devuelve el id de una instancia o la constante noone que es igual a -4.

Gracias

El <> para mi significa diferente, y me funciona perfectamente. No tengo problemas con el.
433
Cita de: penumbra en Enero 10, 2015, 11:08:39 PM
Antes de usar las funciones, lo mejor es consultar el manual para entender su funcionamiento.
http://docs.yoyogames.com/source/dadiospice/002_reference/movement%20and%20collisions/collisions/index.html


Cita de: arcangelcaos en Enero 10, 2015, 09:08:43 PM
El problema es que place_free simpre me detecta que hay una criatura, cuando no hay nada, nada de nada.
¿Estás seguro que debes usar place_free? place_free es una función que sólo funciona CON OBJETOS MARCADOS COMO SÓLIDOS. Lo que pienso que pasa es que como las instancias que pruebas no son sólidos, y la condición busca !place_free, entonces eso devuelve true, aunque en ese lugar no haya nada.

Cita de: arcangelcaos en Enero 10, 2015, 09:08:43 PM
Y lo peos es que collision_point siempre me devuelve -4, incluso si hay criatura.

Porque las funciones collision() se basan en dos máscaras de colisión: la del objeto que llama la función y la del objeto usado como argumento en la función. En tu caso, estás moviéndote en múltiplos de 96 pixeles ;MÁS ALLÁ de los límites de la máscara de colisión del objeto que llama la función, por lo que NUNCA habra colisión, a menos que la máscara de esa instancia fuera enorme y cubriera todo el terreno donde buscas objetos. Por eso nunca se detecta colisión.

Gracias, con instance_place lo he solucionado.
Y si, eran todos solidos, lo tengo mas que comprobado. El problema es que place_free no es muy preciso, y por eso me ponía que había una criatura cuando en realidad no. No se si seria eso, pero con el instance_place lo he arrglado, funciona perfectamente.

Ahh, y en encontrado un evento que se llama animation_end, que esto hace que cuando termine la animación sigua, por lo tanto es perfecto para mi.
Alguna vez se le nota un poco de retraso, pero funciona, hace una animación, y continua con el codigo
434
El compilador, la ventana negra abajo, hace algo, te dice algo?? Hay muestra informacion de la compilacion para la ejecución del juego.
435
Da alguna explicacion mas. Si le das directamente a ejecutar sin exportar,  el boton verde de play, funciona??
Ten en cuenta que normalmente inicia con la room que este mas arriba. Lo has comprobado??