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

1561
yo usaria algo como

Al presionar 'o'
ataque = true; quieto = false;

en [STEP]
if (atacar == true)
     sprite_index = spr_ataque

if (quieto ==  true)
     sprite_index = spr_quieto         

en [ANIMATION END]
if sprite_index == spr_ataque
{
    quieto = 1                 //Regresar al estado "quieto" después de llegar a la última subimagen del sprite
    atacar = 0                // Finalizar ataque
}

Obviamente, las variables quieto y atacar las tienes que definir antes en CREATE. También debes definir la velocidad de animación adecuada para que el ataque no se vea ni muy rápido ni muy lento

Aunque se puede entender que image_index se usa para cambiar sprites, en realidad se usa para cambiar subimágenes de un mismo sprite. Para cambiar entre distintos sprites se usa sprite_index

Los valores de image_index pueden mostrar decimales dependiendo de la velocidad de animación (image_speed), pero GM siempre redondea, ya que entre la subimagen 0 y la 1 no hay ni puede haber realmente una subimagen 0.5, o muestra la 0 o la 1.


1562
Yo no manejo Android, pero creo que no era necesario que lo reportaras. Me parece que a partir de la versión 1.3, la manera en que se maneja la publicidad en GM:S es distinta, ahora se manejan paquetes de extensión. YoYo avisa de esto acá, incluso el GM:S trae un demo que te indica las funciones básicas del nuevo sistema de publicidad:

http://www.yoyogames.com/tech_blog/63
1563
Es sencillo usando surfaces. "Mosaiqueas" todo en una superficie y luego dibujas la superficie con draw_surface_ext, que te permite ajustar el alfa.
1564
Qué bien, pero deberías indicar qué fue lo que cambiaste o cómo lo solucionaste, ya que sería útil para otros usuarios.
1565
Yo uso esto, una "célula", el tamaño real es de 1X7, aquí la reescalé para que se viera


Dibujo esa célula en una surface tantas veces como sea necesario (horizontalmente, en un ciclo), y así se forma un gráfico que semeja una barra de vida. (La parte vacía no la dibujo en la superficie, es una imagen de fondo que está ahí siempre)


El número de veces que se dibuja la célula depende del porcentaje de salud que tengas:
(salud_actual/salud_total) * 100
1566
Son demasiadas preguntas. Se supone que se debe preguntar sólo una duda por hilo/tema...
1567
No entiendo qué quieres hacer ni por qué estás usando así el evento animation end. Tampoco entiendo por qué tu sprite tiene 112 imágenes ni por qué lo reproduces al revés.

Si lo que quieres es que de la imagen 0 no se pase a la 112 (suponiendo que se reproduce en sentido inverso):

if (image_index == 0)
{
     image_speed = 0         //Detener la animación (evitar que salte a 112)
     image_index = 111       //Indicar donde comenzar la animación
     image_index -= 0.05    //Volver a correr (hacia atrás) la animación (no estoy seguro, pero creo que sería lo mismo si haces image_speed = -0.05
}
1568
Pero cuánto estrés... Tan sólo hay que consultar en donde se debe:
http://help.yoyogames.com/entries/23363366-Preparing-GameMaker-Studio-for-Android

Yo no tengo el módulo android en mi PC, pero hace poco se lo instalé a un conocido, sólo seguí los pasos de la guía y no hubo problema en su laptop

You will be asked to install the Android SDK to the path "C:\Program Files (x86)\Android\android-sdk". We strongly recommend that you choose an alternative path (for example : "C:\Android\android-sdk") as the default path can cause problems with GameMaker:Studio as well as the actual Android updater program itself.
1570
get_string es una función que sólo debe usarse para cuestiones de depuración (dubugging), no en un juego lanzado al público. La función "normal" para aceptar  entrada por teclado es get_string_async(), es una función asíncrona, por lo que debes usar un evento asíncrono de diálogo para manejar la entrada del usuario, el problema es que el cuadro de diálogo que aparece no es personalizable.

Si quieres un sistema propio, con cuadros de texto a tu gusto, tienes que consultar
http://docs.yoyogames.com/source/dadiospice/002_reference/mouse,%20keyboard%20and%20other%20controls/keyboard%20input/index.html

Concretamente, lo que quieres hacer se puede implementar usando una o varias de las funciones

keyboard_lastkey
keyboard_lastchar
keyboard_string
Además de las funciones de cadena que son muy necesarias en estos casos.
http://docs.yoyogames.com/source/dadiospice/002_reference/strings/index.html

No es difícil, pero es laborioso, porque con las funciones básicas de GM tienes que hacer algo como un "mini bloc de notas". Es decir, tienes que controlar TODOS los aspectos básicos de un editor de texto:

-capturar lo que el usuario teclea, guardarlo en variable.
-Definir un área específica dónde mostrar la entrada de texto (definir la zona en pantalla donde se muestra el texto que el usuario va introduciendo)
-Si el texto introducido es muy largo y no cabe en el ancho de la pantalla, dividir la cadena en secciones que ocupen el ancho de la ventana (con el obligatorio cálculo de coordenadas)
-Implementar el comportamiento de SHIFT/BLOQ MAYUS para escribir en mayúsculas
-Implementar un objeto cursor que te indique en dónde está colocado el cursor
-Implementar el movimiento del cursor con las flechas o el mouse
-Implementar el borrado de caracteres al presionar SUPR o BACKSPACE

Eso por mencionar sólo lo más básico, otras opciones serían validar la entrada, usar acentos y caracteres especiales, implementar copiar y pegar, etc.
1571
En ese sentido no hay reglas. Eso sí, piénsalo bien. Puede que en un principio te parezca la mejor opción, pero después veas que es más difícil manejar las variables. Un objeto adicional como contenedor de variables va a requerir que todos los otros objetos siempre accedan a sus variables usando su nombre (obj_contenedor.variable). Incluso para las operaciones más simples. Yo preferiría usar variables globales, pero como dije, ya es cuestión del "estilo" de cada programador

Yo tengo bastantes variables globales, incluso tengo un archivo de open_office con una tabla indicando qué hace cada variable  XD. NO digo que esto sea lo mejor, pero así es como me siento cómodo.
1572
A ver, estabas usando el sistema de audio antiguo, y sonaba. Ahora estás usando las nuevas funciones de audio y no se escucha nada. ¿Ya activaste el nuevo sistema de audio en los ajustes globales del juego?

Para ajustar el volumen:
http://docs.yoyogames.com/source/dadiospice/002_reference/game%20assets/sounds/audio_sound_gain.html
1573
Cita de: chute666 en Mayo 22, 2014, 06:25:47 PM
eso que tengo k ponerlo en un evento create o como? y como hago para cada vez que suba d nivel... requiera mas exp? x ejemplo al nivel 2 k nevesite 300 de exp para subir al 3

Lo que yo uso en mi juego es una tabla de experiencia (arreglo), el número de índice es el nivel. Necesitas tres variables, la experiencia actual del jugador (que pueden ser los puntos conseguidos (u otra variable, según tu diseño de juego), el nivel del jugador y la tabla de experiencia

en [CREATE]
puntos_exp = 0          //Experiencia
mi_nivel = 1               //Nivel 
exp[1] = 100             // Tabla de experiencia
exp[2] = 300
exp[3] = 550
exp[4]= 800
.
.
.
exp[100] = ? ? ?

EN [STEP]
if ( puntos_exp > exp[mi_nivel] )
     mi_nivel += 1                                 //Sube de nivel si la experiencia supera a la marca del nivel actual


1574
la función sound_loop pertenece al sistema de audio antiguo, si se usa ésta función, debes usar la función sound_isplaying

audio_is_playing es una función del nuevo sistema de sonido, se usa por ejemplo, junto con audio_play_sound