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

106
Cita de: Clamud en Marzo 22, 2016, 04:48:49 PM
Aquí publicaron un código para eso:
http://gmc.yoyogames.com/index.php?showtopic=541440

En los tutoriales de GMS también hay un ejemplo:

Es un tutorial muy corto, tal vez lo traduzca en unos días.

El tutorial de game maker no le entiendo muy bien.

Probe el codigo que publicaron en el foro de yoyogames;
CitarCreate
initial_w_view = view_wview[0];
view_scale = 1;
initial_x = 0;
initial_y = 0;
initial_zoom = 0;


Global mouse left
var view_ratio;
view_ratio = view_hview[0]/view_wview[0];

if( device_mouse_check_button_pressed( 1, mb_left ) )
{
    initial_x = mean( device_mouse_x( 0 ), device_mouse_x( 1 ) );
    initial_y = mean( device_mouse_y( 0 ), device_mouse_y( 1 ) );
    initial_zoom =
    point_distance
    (
        device_mouse_raw_x( 0 ), device_mouse_raw_y( 0 ),
        device_mouse_raw_x( 1 ), device_mouse_raw_y( 1 )
    )*view_scale;
};

if( device_mouse_check_button( 1, mb_left ) )
{
    view_scale = initial_zoom/
    point_distance
    (
        device_mouse_raw_x( 0 ), device_mouse_raw_y( 0 ),
        device_mouse_raw_x( 1 ), device_mouse_raw_y( 1 )
    );
    view_wview[0] = initial_w_view*view_scale;
    view_hview[0] = view_wview[0]*view_ratio;
    view_xview[0] += initial_x-mean( device_mouse_x( 0 ), device_mouse_x( 1 ) );
    view_yview[0] += initial_y-mean( device_mouse_y( 0 ), device_mouse_y( 1 ) );
};

Si me funciono pero tengo un problema. Cuando le empiezo a hacer zoom, la view se empieza a mover como si se estuviera trabando el juego  :-\
107
Tengo una room de 980x560 y una view de ese mismo tamaño. Pero quiero que se pueda hacer zoom con los dedos, por ejemplo como clash of clans que puedes hacerle zoom a tu aldea con los dedos.
108
Cita de: Clamud en Marzo 21, 2016, 04:13:03 PM
Se me ocurre esto, sólo se usarían los eventos Step de los dos objetos
[gml]
///STEP (humano)

if( atacar == false ) //si no ataca
{
    z = instance_place( x,y, obj_zombie ); //buscar colision
    if( z <> noone ) //si existe colision
    {
        atacar = true; //activar ataque
        sprite_index = spr_atacar;
       
        with( z ) //con el zombie
        {
            atacar = true; //tambien se activa el ataque
            sprite_index = spr_atacar_z;
        }
    }   
    // otras acciones cuando no ataca ...
}

if( atacar = true ) //si ataca
{
    if not place_meeting( x,y, z ) //y ya no hay colision
    {
        atacar = false; //desativar ataque
        with( z ) atacar = false; //en las dos instancias
    }
    // otras acciones cuando ataca ...
}
[/gml]
[gml]
///STEP (zombie)
if atacar == false{
x+=1
}
[/gml]

Exactamente es lo que queria!

Muchas gracias  :D :D :D
109
Cita de: NiuWeb en Marzo 21, 2016, 02:19:25 AM
El código que tienes debería funcionar, peeeero, hay algo que falta.
Al momento de que el humano colisione con el zombie, su variable atacar se activa. Pero, ¿Cuándo se desactiva?
Lo mejor en esos casos sería, en vez de usar un evento collision, usar funciones de colisión en su evento step, algo así:
[gml]
//Reemplazo del evento colision con zombie del humano, evento step
if place_meeting(x, y, zombie)
{
atacar = true;
sprite_index = spr_ataca;
}
else
{
atacar = false;
x += 1;
sprite_index = spr_no_ataca;
}
[/gml]
No lo he comprobado, ni estoy seguro de si funciona.

Tienes mucha razon. pero lastimosamente aun sigue sin hacer lo que yo necesito.

La segunda instancia del zombie sigue atacando al primer humano en vez del segundo. Osea se ve a 2 zombies atacando a 1 humano y deberia ser 2 humanos contra 2 zombies   :-X
110
Tengo 2 instancias de un mismo objeto (humano) y 2 instancias de otro (zombie).

Tengo lo siguiente en el objeto humano:
[Collision con zombie]
atacar = true
sprite_index = spr_atacar


Y con el objeto zombie:
[Collsion con humano]
if other.atacar = true{
atacar = true
sprite_index = spr_atacar_z
}


[Step]
if atacar = false{
x+=1
}


Lo que quiero hacer es que un zombie se ataque con un humano, pero si un humano ya esta atacando que ese otro zombie solo lo ignore y siga avazando
111
Cita de: NiuWeb en Marzo 20, 2016, 10:53:37 PM
La constante other sólo funciona en eventos de colisión y dentro de un with de adentro hacia afuera. Esto quiere decir que funciona dentro de un with así:
[gml]
pepito = "perez"
with (objeto_pepito)
{
show_message("Mi apellido es " + other.pepito);
}
[/gml]
Como puedes apreciar, dentro del with se tomará other.pepito como la variable pepito del objeto que ha "invocado" ese with.

Volviendo al tema, y tomando en cuenta lo dicho anteriormente, la constante other no funciona de la forma en la que la has puesto, ya que no está dentro de un evento de colisión o un with que la invoque, por lo tanto, es inútil.
Para solucionar esto, deberías, en vez de usar un place_meeting(), que sólo devuelve un booleano, usar un collision_rectangle(), que sí devuelve la id del objeto que colisiona.
[gml]
objeto = collision_rectangle(x, y, x+32, y+32, objeto_pepito, false, true);
if objeto != noone
{
atacar = true
with (objeto){
animacion=true
x-=10
}
}
[/gml]

Gracias por la ayuda. Me funciono perfecto  :D :D
112
Si quieres utilizar la primer keystore que usaste entonces debes de ir en donde la guardaste.

Game maker por defecto la guarda en C:\Users\usuario\AppData\Local\gamemaker_studio\

Allí debes de buscar el .keystore
113
Tengo lo siguiente:

if place_meeting(x,y,obj_villano){

atacar = true

with (other) {
animacion=true
x-=10;
}
    }


la idea es modificar la variable animacion y moverlo hacia atras con x-=10.

Pero todo lo que esta adentro del with, no funciona.
114
Cita de: djboro88 en Marzo 20, 2016, 09:54:19 PM
Al cargar la keystore, no me pide contraseña, ¿la escribo y ya está? ¿hay que darle a generate cada vez que se crea una actualizacion?

No, al darle en generate estas creando una nueva jeystore. simplemente deja la que ya estaba desde la primera vez que exportaste el .apk.

Igualmente al intentarla subir a play store, te avisa si estas utilizando una keystore diferente.
115
Cita de: djboro88 en Marzo 20, 2016, 02:33:44 PM
Si has contestado, pero me surge una nueva...

Tengo la keystore guardada de ese juego, en caso que pase un tiempo y quiera sacar una nueva actualizacion, ¿como uso dicha keystore?
¿Se carga en algun sitio?

En cuanto el keystore, si es necesario usar el mismo en cada actualizacion del mismo juego. Si fuera un juego diferente, ya podrias usar una diferente keystore.

Si usaste la misma keystore al subir la actualización, entonces no te preocupes. Play store se tarda aproximadamente entre 3 a 12 horas en subir la actualizacion.
116
Preguntas y respuestas / Re:¿COMO PUEDO PONER ESTO?
Marzo 20, 2016, 09:27:13 PM
Aqui te dejo un ejemplo basico.
117
Cita de: NiuWeb en Marzo 20, 2016, 03:55:08 AM
Podrías declarar en el objeto personaje una variable atacando, activarla cuando el villano esté atacando y desactivarla cuando no. Y cuando un nuevo villano aparece, compruebe si está atacando, y de no ser así, atacar.
[gml]
///Create del personaje
atacando = false;

///Colisión del villano con el personaje, el objeto es el villano
if other.atacando = false
{
    //Lo que haces para "atacar"
    other.atacando = true;
}
[/gml]
Y debes comprobar que cuando no se esté colisionando con ningún villano, se desactive la variable
[gml]
///Evento step del personaje
if !place_meeting(x, y, villano)
atacando = false;
[/gml]

Todo inventado, no lo he comprobado.

Te comento que si funciona en una parte. Los dos se dejan de atacar, pero la segunda instancia sigue colisionando con el personaje y no avanza (se quedan como pegados).

Gracias por la ayuda  :)
118
Tengo 2 objetos (personaje y villano). cuando colisionan se empiezen a atacar. Pero si quiero aparecer otra instancia del mismo objeto "villano", quiero que la segunda instancia ignore al objeto "personaje" ya que ya se esta atacando con la primera instancia de villano.
119
Juegos completos / Never Stop Flying [Android]
Mayo 23, 2015, 10:19:57 PM

Never Stop Flying

Estrategia

GM: Studio



Juega a Never Stop Flying y haz la mejor puntuación.

Ayuda a los dragones a esquivar las balas de cañón y sobrevivir el máximo tiempo posible.

Atrapa las burbujas para desbloquear más dragones.






https://play.google.com/store/apps/details?id=com.airtower.neverstopflying

120
Mi juego ya esta en Play Store, pero últimamente he estado aprendiendo en otro programa, que en mi opinión es mas eficaz que Game Maker.

Pero quiero continuar mi juego desde ese programa, se que no es posible ya que al guardar mi proyecto de Game Maker solo se podrá abrir con Game Maker.

Pero se me ocurrió una idea. Empezar mi juego desde cero en otro programa, pero exportarlo con la mismo keystore y el mismo "com.x.xx"

De esa manera si se podría subir mi juego a play store como actualización sin afectar nada?