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

2086
Preguntas y respuestas / Re:control
Septiembre 08, 2013, 02:21:10 AM
En el espacio pones 1 ó 2 dependiendo a qué control te refieras. SI te fijas, en manual vienen los números 1 y 2 para indicar la ID. Por ejemplo, para hacer algo cuando muevas la cruzeta del mando a la derecha

if joystick_direction(1) == 102
{
     acciones a realizar cuando se mueve hacia la derecha
}


en el debugger puedes revisar qué código corresponde a cada dirección del joystick
2087
hasta hace poco no había usado las estrucutras de datos, pero rápidamente les he tomado cariño, últimamente las voy prefiriendo a los arreglos. Son más rápidas y ya traen implementadas funciones de ordenamiento, reemplazo, búsqueda, etc. Y claro, se pueden borrar cuando ya no se usan.

2088
Preguntas y respuestas / Re:Sonidos y variables
Septiembre 04, 2013, 09:16:46 PM
En CREATE de la nave pones
v_actual = vspeed                 (o la velocidad que uses para avanzar/retroceder)
ac_actual = 0                       //variable que indica el signo de la aceleración

en STEP
if (v_actual != vspeed)              //Existe aceleración (cambio de velocidad)
{
    v_actual = vspeed                // //Actualizar el valor de v_actual

    if (v_actual < vspeed)           //Aceleración positiva
    {
         ac_actual = 1                   // 1 significa que la velocidad aumenta
    }
    if (v_actual > vspeed)           //Aceleración negativa
    {
         ac_actual = -1                  // -1 significa que la velocidad disminuye
    }
}
else                              // No hay cambio de velocidad (cuando la nave va a su velocidad máxima)
    ac_actual = 0

if (ac_actual > 0)
{
    //Cosas a realizar cuando la aceleración es positiva
}
else
{
    //cosas a realizar cuando la aceleración es negativa
}

if (ac_actual == 0)
{
    //Cosas a realizar cuando la nave viaja a velocidad constante
}
2089
Preguntas y respuestas / Re:Sonidos y variables
Septiembre 03, 2013, 10:59:37 AM
¿Y qué pasa cuando la velocidad está entre 2 y 8?

¿Cómo se consigue acelerar y desacelerar la nave?
2090
Cita de: Jangse en Septiembre 01, 2013, 09:16:44 PM
Tampoco entiendo que tanto el Sr. Mark Overmars (Creador de GM) y el Sr. Guido van Rossum (Creador del lenguaje Python) al ser  holandeses los dos, podrían haber fusionado ambos. Y el nacimiento del GM y Python coincide en el tiempo. Últimamente se aplica el Python para enseñar los fundamentos de la programación en las escuelas. Debido a que es mas fácil para coger conceptos de programación que el C o el C++. Por ese motivo, creo, debería a ver sido escogido para aplicarlo al Game Maker. Y no tantas mezclas y tantos líos. Digo yo...

Eso no tiene nada qué ver. Sería como pedir que C++ se fusionara con java o cualquier otro lenguaje que haya sido creado en estados unidos. Si GM y Python coinciden en nacimiento, como dices, eso quiere decir que pasaría un tiempo para que ambos lenguajes fueran populares y su uso se comenzara a extender, razón por la que es probable que ni mark ni guido supieran de la existencia del otro hasta después de que ambos lenguajes hubieran sido desarrollados y lanzados al público.

Una cosa son los conceptos abstractos y otra la sintaxis. Conocer la sintaxis de un lenguaje no es sinónimo de saber programar en ese lenguaje. GML basa su sintáxis en C++, pero nada más, las características de C++ y su filosofía como lenguaje es otro mundo en comparación con GM. }

Con todo y todo, GM sigue siendo de lo más sencillo para programar juegos, aun sin importar su sintaxis o lo mal estructurado que está el manual (más que nada por la falta de un índice o un apéndice). Seguro que hay muchísimos más principantes creando juegos en GM que principiantes creando juegos en C++ o Python, por algo sera.
2091
Cita de: matiascarpello en Agosto 31, 2013, 10:14:50 PMEntonces lo que necesito sería un código que al elejir el personaje Nº 2 cambie el sprite del personaje 1 por el resto del juego.

¿Qué crees que necesitaría GM para saber qué personaje mostrar? ¿En qué crees que se fijaría para comprobar si quieres a uno u otro personaje?
2092
Cita de: Jangse en Agosto 30, 2013, 08:37:38 PM
¿Que pasaria si los creadores de Game Maker fueran chinos y lo vendieran en esa lengua? No me refiero la interface. Si no, mas bien, sus tutoriales y documentación mas extensa.

No serían tan tontos para lanzarlo sólamente en chino. Lo lanzarían en inglés sí o sí. Ejemplo: El autor de GM es holandés y no lanzó el programa en holandés. Es suficiente lanzarlo en inglés para que llegue a cualquier parte.

Cita de: pikamaker en Agosto 30, 2013, 08:14:27 PM
los argumentos son cosas que varían en dentro de su código, a partir de las llamadas que se les hacen

Bueno, tampoco creo que esa "definición" venga en algún manual de GM, comenzando porque eso no encaja con la definición de argumento

Los argumentos son información que le pasas a un script para que el script la procese de detrminada forma.

Por ejemplo,  una multiplicación de dos números. Los argumentos que le pasarías al script son los dos factores de la multiplicación:

El código con el que llamas al script se vería así (en el evento step, por ejemplo)
script_multiplicacion(4, 9)

Ahí tenemos un script al que le estás pasando dos argumentos, el cuatro es el argument0 y el 9 es el argument1. A un script le puedes pasar hasta 16 argumentos. Las palabras clave argument0, argument1, etc se usan DENTRO del script, nunca al llamar al script.

Internamente, el código del script se vería así:

var resultado                                           //declaras una variable local al script
resultado = (argument0 * argument1)   // procesas los argumentos
return resultado;                                     // esto es opcional, pero muy útil a veces


Esas tres líneas son tu script, como ves, puedes pasarle cualquier número como argumento y el script hará la multiplicación. Una vez que el script termina de procesar la información, algo que no hace es automaticamente devolver ese resultado. Por eso usé una variable local que guarda el resultado. Usando la instrucción return, el script devuelve el valor de la variable resultado

por ejemplo, suponiendo que tienes dos variables v1 y v2 que cambian sus valores periódicamente

if (script_multiplicacion(v1, v2) == 32 )
{
     //código a ejecutar cuando el resultado de la multiplicación es igual a 32
}

NOTA: Dentro del script, sólo puedes usar una vez la instrucción return. Si la usas más veces, sólo la primera vez es ejecutada. Esto es así porque la instrucción return provoca la finalización del script
2093
Todo está en el manual

collision_circle(xc,yc,radius,obj,prec,notme) para definir la zona donde se ocurre la posible colisión. Todas las funciones de colisión devuelven la id del objeto con el que se colisiona

with() se usa para acceder al determinada instancia/objeto

si no quieres usar with puedes usar directamente id.variable para modificar las variables locales de determinada instancia
2094
No necesitas cambiar de sprite. Puedes armar un sprite con varias subimágenes, la primera subimagen sería la de la pistola, la segunda la de la ametralladora, etc, etc. Cuando quieras cambiar de arma, cambias de subimagen ya sea

image_index = número de subimagen ó
image_index += 1
image_index -= 1

OJO que si usas cualquiera de las dos últimas en STEP, tienes que asegurarte que sólo se ejecuten una sola vez, de lo contrario se estará cambiando de imagen constantemente

No entendí bien tu explicación de pasar por un botón. Pero si quieres que algo no suceda, usa una variable boleana (que sea cero o uno) para saber cuándo se puede cambiar el arma y cuando no
2095
Lo de evitar que los bonos  se sumen continuamente en STEP es muy sencillo. Declaras una variable calcular_bonus = 0. En STEP

if (!calcular_bonus)
{
    //realizar el cálculo de bonificaciones
    calcular_bonus = 1
}

Es decir, las fórmulas sólo se calcularán la primera vez que se ejecute STEP, O cuando tu manualmente pongas la variable en cero


2096
Gracias, romon_28

antes de postear esta pregunta, probé con execute_string, a lo mejor lo hice mal, el caso es que no me funcionó. No me daba errores el GM, pero en la ejecución, el sprite no cambiaba al que yo supuestamente indicaba.

Al final resolvi esto de otra manera, con un mapa donde guardo los sprites de los items, y desde ahí los llamo cuando el usuario navega por el inventario.
2097
Hola gente, yo de nuevo con una pregunta similar a mi duda anterior. Esta vez quiero saber si es posible usar un valor de cadena (string) para llamar a un recurso en GM (sprite). Dicho valor de cadena me interesa que sea alfanumérico, no sólo numérico o real (si no es posible, al final tendré que usar reales  :'( )

Me explico. Tengo un INI, en ese INI hay llaves que me indican el nombre del sprite que le corresponde a cada item (el sprite ya está agregado a los recursos de GM). Por ejemplo, en el INI se vería algo como esto
sprite=espada_10

así que leo esa llave y la asigno a una variable, que al final se ve así
recurso = "espada_10"

Y justamente uno de los sprites que tengo en GM se llama "espada_10"

Lo que quiero hacer es usar la variable recurso para cambiar el sprite de un objeto, por ejemplo, dentro de un objeto menú

sprite_index = recurso

Bueno, intenté los pasos anteriores en GM, pero no me funcionó.  XD. La variable recurso adquiere correctamente el valor string "espada_10" pero , en el debugger el sprite_index toma valor de 0 y no aparece ningun sprite en pantalla  ???. Quisiera saber si se puede hacer algo como lo que propongo, o de plano tengo que olvidarme de usar cadenas en el INI.

Gracias
2098
Preguntas y respuestas / Re:Real vs String
Agosto 15, 2013, 09:52:17 PM
Gracias por sus respuestas!
Cita de: Zela en Agosto 15, 2013, 06:45:15 AM
Mi Duda, Quieres Usar Caracteres De Números (Strings) Como Números (Reales)?.

No de números, de texto  :-[. Lo que pasa es que tengo un INI donde guardo los atributos de todos los items recolectables. Los valores de ciertas llaves en ese INI no los tengo como números, sino como palabras, porque son muchos items y muchos atributos, y usar palabras es más intuitivo que usar números y se me facilita editar atributos de esta manera. Al final, en GM, esas palabras tengo que traducirlas a su valor numérico. Sé que en GM es más fácil y directo usar números.

Gracias romon, ahora estoy mas orientado con tu respuesta. Había pensado algo similar a tu segundo método. Si en todas las palabras que tengo no se repite la primera letra, creo que usaré ese.

De nuevo, gracias.   ;D


2099
Preguntas y respuestas / Real vs String
Agosto 14, 2013, 11:08:27 PM
De antemano sé que estoy complicando las cosas y que hay maneras más sencillas de lograrlo, aun así me atrevo a preguntar lo siguiente a los que saben más de GML

Imaginen que leo un valor del tipo cadena desde un ini y lo almaceno en una variable, digamos que al final, la variable se ve así

valor_ini = "pistola"             //variable almacenando una cadena leída desde un archivo ini

Ahora imaginen que tengo en CREATE una variable:

pistola = 5

¿Hay alguna manera de hacer que Game Maker interprete la variable valor_ini como si me estuviera refiriendo a la variable pistola? O dicho de otra manera, hacer que la cadena "pistola" la interprete como variable pistola

A lo mejor estoy preguntando aberraciones, pero es una duda que tengo, agradezco que me digan si se puede o no. Gracias
2100
Preguntas y respuestas / Re:Aleatorio
Agosto 13, 2013, 10:48:43 PM
¿A qué le llamas objeto aleatorio?