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

2
Buenos días, yo tuve mas o menos el mismo problema en GMS2, descubrí que se puede "remapear" el control, te resumiré lo que hice:
El código que usé:
[gml]
if (mapping == noone && gamepad_is_connected(4) && gamepad_get_mapping(4) == "no mapping"){
   mapping = gamepad_get_guid(4) + "," + gamepad_get_description(4);
   mapping = mapping +
      ",a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1"+
      ",platform:windows";
   gamepad_test_mapping(4, mapping);
}
[/gml]
Explicación:
mapping es la variable donde guardo el "mapeo" del control
Es decir, primero verifico si no hay mapeo y si el control está conectado (entrada 4)
Si lo anterior es cierto, se guarda en mapping el guid con la descripción del gamepad
Luego, concateno la variable mapping (que ya tiene el guid y la descripción) con el string generado por el programa y la plataforma a usar (windows o mac); y llamo la función gamepad_test_mapping para que el control use ese mapeo.

Este problema me había surgido a mí porque no tengo a la mano un control de xbox o playstation (ver imagen xbox.png), sino que mi control es un psp con un programa homebrew para que funcione como un gamepad (fuSa gamepad)  :-[ (ver imagen psp.jpg)

No soy un experto en esto de mapping, pero quedo atento si tienes dudas
Espero esto te sirva!
3
Preguntas y respuestas / Re:dibujar movimiento
Octubre 17, 2018, 12:56:29 AM
Bueno.

Objeto que va a flotar.

Create


float = false;
sumando = false;
restando = false;
temporizador = 0;
contador = 0;


Step


if (float){
        temporizador++;
        if (temporizador>5){
            temporizador=0;
        }
        //Contador de float
        //Sumando
        if (contadorEstados =0){
            sumando = true;
            restando = false;
        }
        //Restando
        if (contadorEstados =3){
            sumando = false;
            restando = true;
        }
        if (temporizador=5){
            if (sumando){
                contadorEstados++;
                //Flotando
                y--;
            }
            if (restando){
                contadorEstados--;
                //Flotando
                y++;
            }
        }
    }else{
        if (y != ystart){
            y = ystart;
        }
    }


Cuando Float sea verdadero entonces temporizador se empezará a incrementar, cuando sea mayor a 5 volverá a cero y así se repite, cuando el Contador sea cero sumando será verdadero, y cuando sea 3 (que es el límite de altura de 0 a 3 que puse) restando será verdadero.

Si sumando es true, restando es false, y viceversa. Menor es el número de temporizador, mayor será la frecuencia de suma y resta de contador, si es mayor, más lento.

Si temporizador es 5, dependiendo de sumando ó restando, contador cambia, y la coordenada Y también.

Ya cuando no está flotando, si la Y es diferente de donde inició el objeto, entonces que se re posicione.



4
Preguntas y respuestas / Re:dibujar movimiento
Octubre 15, 2018, 07:05:23 PM
Hola, yo hice que el personaje de mi proyecto flote sólo modificando su posición en y.
Queda así como en la imagen.
Te paso el código?
5
Gracias!! lo apliqué y funciona perfecto.
6
Wow! si por favor, pásame el código.
7
Hola de nuevo compañeros!

Esta vez me he dedicado a replicar un juego llamado Final Fantasy 6 de la super nintendo, donde por medio de un menú se seleccionan las acciones a hacer sobre los enemigos en pantalla (por el momento solo enemigos).

He dejado el .exe de lo hecho hasta ahora para que vean como funciona, Z es aceptar, X es cancelar, y S es seleccionar todos los enemigos. Con el comando Item se reinicia la aplicación.

Llegando al grano, tengo un objeto menú que lista todas las opciones en pantalla y me permite seleccionar al enemigo que yo quiera atacar, ya sea a espadazos o con magia. Cuando selecciono un ataque mágico o el comando Fight, el menú dibuja un cursor que me permite seleccionar al enemigo deseado, cuando pasa eso el objeto menú tiene dos arrays de una sola dimensión, uno para la X del enemigo y otra para la Y; sé hacer arrays de dos dimensiones pero así me pareció más fácil. Donde por orden de creación de instancias del objeto enemigo se llenan los arrays con las repectivas coordenadas.

Lo que pasa es que cuando hago el ataque y destruyo al enemigo, trato de vaciar los arrays pero no pasa nada.

Ya traté con ds_list_clear(), pero me di cuenta que no es una ds_list, y me tira error.
También que por medio de un ciclo for dejar todas las casillas de las listas en 0 o en noone, pero sigue igual.

Para saber de cómo es la estructura del menú, seguí el tutorial de menú básico del youtuber Shaun Spalding.

Espero me puedan ayudar con este problemita. Dejo adjuntas unas imágenes de lo que pasa.

Gracias!!!.
8
Listo! funciona a la perfección  :D
Solo que sin el script, no se movía pero bueno, gracias por la idea, sirve para proyectos nuevos.  :)
Lo que hice fue agregar una variable llamada expulsado, si esta se cumple mario se mueve según su image_xscale y se desactiva su colisión horizontal con el suelo.
Código:
PD: obj_wall es la pared, y a la condición que aportó Goganpis le agregué !place_empty(x,y-sprite_height/2)

///Create
hsp = 0;
movespeed = 0; //Esta aumenta según la tecla presionada
expulsado =0;


///Step
//Colisión horizontal
if (place_meeting(x + hsp, y, obj_wall)) {
        while (!place_meeting(x + sign(hsp), y, obj_wall)) {
            x += sign(hsp);
        }
if (!expulsado){
hsp = 0;
movespeed = 0;
}
}
    x += hsp;

//Salir de las paredes si está atorado
if place_meeting(x,y+1,obj_wall) && collision_line(x,y-sprite_height/2,obj_wall.x,obj_wall.y,obj_wall,true,false) && !place_empty(x,y-sprite_height/2) && bbox_bottom-bbox_top > 16
{
expulsado = true;
}else{
expulsado = false;
}

if (expulsado) {
if (image_xscale=1){
hsp += 2;
}else
if (image_xscale=-1){
hsp -= 2;
}
}


Gracias a todos por ayudarme  8)
9
Bien, probaré a hacer el script de pathfinding, cuando tenga algo reporto aquí.
10
Te recomiendo estos dos youtubers (aunque dan sus tutos en ingles):
HeartBeast
Shaun Spalding
Sin embargo hay muchos en español.
De nada  :)
11
Seguro, por experiencia te lo digo, si faltan funciones, pues google  :-[
12
Si, comunidadGM, yo también lo he usado.
13
Hola compañeros!  :D
Hace mucho que no tocaba GameMaker, esta vez estoy probando a hacer un mario con sus propiedades, velocidad, salto, etc.
Como dice el título del tema, no se me ocurre cómo hacer que mario al estar trabado entre los bloques (gracias al cambio de mask) se desplaze automáticamente a la dirección inversa a la que está mirando (adjunto primer GIF); así que acudo a ustedes para que por favor me den ideas.
Lo que he logrado gracias a varios tutoriales está en el segundo GIF
Adjunto las masks, de mario (spr_player) y Super Mario (spr_player1).
Gracias.

Primera imagen GIF tomada de: https://www.ionlitio.com/secretos-y-bugs-de-super-mario-bros/

Edito: Mario siempre tiene la colisión con la pared (nombre obj_wall, no es sólida), para la colisión seguí el tutorial de plataformas del youtuber Shaun Spalding.
14
No ,espera, no entiendo esto:
15
Hola colegas de comunidad GM  :)

Mirando las normas del foro he buscado preguntas similares a la mía pero no es lo que esperaba, por ej. mire en este enlace :http://www.comunidadgm.org/preguntas-y-respuestas/(solucionado)-voltear-barra-de-vida-en-un-juego-de-peleas2/msg91908/#msg91908
pero es muy diferente.  :-X 
así que ¿cómo voltear la barra de vida de mi enemigo? :-[
entro en detalles:
Estoy haciendo un fan Game de DBZ, hasta ahora todo va bien,combos de pelea , salto, un básico juego de plataformas, he hecho la barra de vida de mi jugador con un objeto barra y el control de la vida,aqui les dejo las imágenes :


Perdón por la mala presentación en la 1ra imagenpero es que necesito que entiendan como lo estoy haciendo.
Como verán en la 2da imagen están el jugador(Goku) y el enemigo(Super_Boo) son los mismos objetos para Super_Boo pero lo q cambia es obviamente el nombre ( object_vida y object_control_vida)
Pero en la 3ra imagen pueden ver cómo se le quita la vida al enemigo pero quiero que se vea como la 4ta imagen
Ayúdenme por favor.
Gracias