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

1891
Juegos en desarrollo / Re:Mintruder 2D: classic shooter
Febrero 22, 2014, 11:13:20 AM
Apenas lo voy a descargar, pero me recuerda un poco a "Cyberlip" de NEO GEO
1892
Claro que la puedes volver a usar si reinstalas, el límnite son tres equipos a la vez. Si ya tienes instalada la licencia en tres computadoras distintas, ya no puedes ponerla en una cuarta.
1893
Yo más bien dudo que sea falsa (la posibilidad existe). ¿Por qué? Dejar "huellas" en archivos es algo que se hace desde hace décadas. Se puede probar de manera simple usando un editor hexadecimal, con él puedes abrir lo que se te ocurra (ejecutables, roms de juegos, imágenes, archivos de texto, etc) Ahí se puede ver mucha información "oculta".

Obviamente que hay información que no va a ser legible, sino que está encriptada y,obviamente el creador sabe cómo desencriptarla. ¿Suena como una amenaza? Creo que lo es. Incluso en los foros donde crackean el Studio mencionan que sí es posible que YoYo sepa si el juego está hecho con una versión crackeada. Obviamente la posiblilidad de que te detecten es proporcinal a la popularidad de tu juego. Si una foto puede contener datos sobre el fabricante de la cámara y demás cosas (hasta el domicilio del dueño, como el caso de la persona detenida gracias que su foto tomada con el ipod contenía esa información), veo difícil que un juego hecho en GMS no tenga información cifrada sobre la licencia.

Otra muestra: EL mismo GM:S se conecta regularmente para verificar tu licencia contra una base de datos. Ya me ha salido varias veces un anuncio donde al principio no encuentra la licencia, le meto la licencia estándar y me la verifica. Tambien hacen eso porque seguro tiene que ver con que el límite de equipos por licencia es tres.
1894
Sí, la configuración si se va a tocar, los menus de preferencias, etc.

Lo que nos parece redundante sería por ejemplo, explicar el botón para agregar un sprite o un objeto, o que haciendo click en tal  botón se crea un nuevo proyecto, o que game maker es el mejor programa para hacer juegos (introducción de YoYo)  :D

Te mando por mensaje un capitulo. Gracias

1895
Bueno, envié una solicitud de contacto a Mega G.

Cita de: Iros en Febrero 15, 2014, 03:53:58 PM
Hemm...no se si ya se habló, pero existe un programa realmente potente que se ejecuta por consola que convierte los *.chm (creo que así es la extensión de los help) en HTML y hasta conserva el buscador.

Si necesitan ayuda en algo, puedo darles una mano.

Sí, usé algo parecido para pasar del chtm a HTML. Pues lo que necesitamos son traductores. Si puedes ayudarnos con eso, estaría muy bien. Avísame para mandarte capítulos.

Estamos traduciendo la parte referente a lo básico de GML. Lo hablé con Daz y no nos pareció que vaya a servir de mucho traducir la parte que explica la interfaz y el D&D.
1896
Preguntas y respuestas / Re:No se por que no Funka!!!1
Febrero 20, 2014, 06:44:00 AM
trata de usar el nuevo engine de audio


audio_is_playing   para revisar si se está reproduciendo el sonido 
audio_play_sound   para reproducir el sonido

Global Game Settings > General > Use new audio engine
1897
http://gmc.yoyogames.com/index.php?showtopic=554001

El post #10 da unas instrucciones de cómo logró hacerlo. No sé si esto funcione en tu caso. Hasta donde leí (por encima), no hablan de ningún emulador.
1898
"We'd love to be able to remove the protection completely, but we know that vast numbers would simply copy it if it was that easy. There are many levels to the current protection system, and while many are visible like this, there are also many hidden so that we can always tell when a final game was created with a crack."

"Nos encantaría remover la protección por completo, pero sabemos que la gran mayoría lo copiaría si fuera sí de fácil. Hay muchos niveles en el sistema de protección actual, y mientras muchos son visibles, hay muchos otros ocultos que nos permiten saber siempre si un juego final fue creado con un crack"

-Mike Dailly
1899
Preguntas y respuestas / Re:No se por que no Funka!!!1
Febrero 20, 2014, 02:53:39 AM
Si el sonido se escucha más de una vez, puede que sea debido a que la colisión jugador - moneda ocurre más de una vez, o sea, durante varios STEPS el jugador y la moneda no dejan de tocarse, por lo que se reproduce el sonido mientras haya colision.

El sonido sólo se debe reproducir cuando una variable de control indique que no se ha reproducido antes (valor de cero, por ejemplo). Justo después de reproducir el sonido, la variable de control se pone en uno, y la alarma se usaría para que después de cierta cantidad de pasos, la variable volviera a cero, lo que permitiría que el sonido se reprodujera de nuevo, al contactar con una nueva moneda

1900


El tutorial 03 y 05 te introducen al uso de código y scripts.

Estas son las funciones y variables que más comunmente se usan, sea plataforma o vista cenital, etc.

http://www.comunidadgm.org/manual_GM/Usando_expresiones_y_variables.htm
http://www.comunidadgm.org/manual_GM/Funciones_de_valores_reales.htm
http://www.comunidadgm.org/manual_GM/Moviendose.htm
http://www.comunidadgm.org/manual_GM/El_teclado.htm



1901
Preguntas y respuestas / Re:Música de fondo
Febrero 19, 2014, 09:13:32 PM
Esta pregunta tiene casi un año de haberse hecho... probablemente ya haya dado con la solución  XD
1902
Preguntas y respuestas / Re:COMPRA DE ARMAS
Febrero 19, 2014, 09:08:14 PM
Cita de: gudy en Febrero 19, 2014, 04:36:59 PM
ya que trabajo un switch para cambiar de arma, por ejemplo tengo que si global.cambioarma=0 se cambie al sprite que no tiene armas, y cuando sea global.cambioarma=1

El switch se usaría parecido, sólo que el caso cero no se revisaría en el switch.

if (global.mi_arma == 0)
     Cambiar sprite al de imagen vacía
else
{
     switch (global.mi_arma)
     {
           El SWITCH que usas, excluyendo el caso "0" (cero)
     }
}

Cita de: gudy en Febrero 19, 2014, 04:36:59 PM
coloco en el step del jugador el codigo para la tecla "D" if keyboard_check_pressed(ord('D')){global.cambioarma+=1}

Yo usaría en lugar de eso, el evento Key Press ('D') y ahí pondría el código del EVENTO para la tecla D que escribí en el primer mensaje.
1903
No entiendo muy bien. Qué tiene qué ver la vista con que se cree determinado número de balas. ¿De qué propiedad  "bondary view" hablas?

Ayudaría que especificaras qué código usas para disparar las balas y en qué evento lo estás usando
1904
Nunca he usado grids, pero me parece que es En el primer código, hasta el final:

//Shuffle the pieces on the board
for(yy=0; yy<size; yy+=1)
     for(xx=0; xx<size; xx+=1)
          if ds_grid_get(board,xx,yy)
               tile_set_position(ds_grid_get(board,xx,yy), tile * xx, tile * yy);


Modificando yy = 192. O eso creo  :-[
   
1905
Preguntas y respuestas / Re:COMPRA DE ARMAS
Febrero 19, 2014, 03:44:22 AM
Antes que nada, quiero aclarar que desde luego que hay maneras más PRO de hacer esto. Simplemente elegí este método porque he notado cierta reticencia por usar estructuras de datos, y casi siempre se propone el uso de variables o arreglos. Esta es una manera de hacerlo usando COLAS (ds_queue). En mi juego uso una lista y un mapa, pero de momento que se con colas. El código no está pulido ni completo, pero sirve para que te des una idea.

1. Declara constantes en GM (Resources > Define Constants). También puedes declararlas en CREATE como variables globales, pero me gusta más como constantes porque el texto queda resaltado en color distinto

resortera = 0.        <----- En otros lugares les dicen tirachinas o tirapiedras
pistola = 1
rifle = 2
escopeta = 3
bazuca = 4
botiquin = 5

EVENTO CREATE del jugador
global.mi arma = 0
global.arma_id[5] = 0

//Esto es como una lista de verificación
existencias[resortera] = 0
existencias[pistola] = 1            //Al comienzo del juego, dices que quieres tener una pistola...
existencias[rifle] = 0
existencias[escopeta] = 0
existencias[bazuca] = 0
existencias[botiquin] = 1         //... y un bootiquín 

//Número de subimagen para los sprites de las armas.
global.arma_id[resortera] = 1
global.arma_id[pistola] = 2
global.arma_id[rifle] = 3
global.arma_id[escopeta] = 4
global.arma_id[bazuca] = 5
global.arma_id[botiquin] = 6

statst[0, resortera] = "Resortera"  //Nombre
stats[1, resortera] = 1       //daño por proyectil
stats[2, resortera] = 10        //municiones
stats[0, pistola] = "Pistola"
stats[1, pistola] = 2
stats[2, pistola] = 6
stats[0, rifle] = "Rifle"
stats[1, rifle] = 3
stats[2, rifle] = 4
stats[0, escopeta] = "Escopeta"
stats[1, escopeta] = 5
stats[2, escopeta] = 5
stats[0, bazuca] = "Bazuca"
stats[1, bazuca] = 10
stats[2, bazuca] = 3
stats[0, botiquin] = "Botiquín"
stats[1, botiquin] = 0
stats[2, botiquin] = 2


Cuando compres algo, por ejemplo, la bazuca, haces
existencias[bazuca] = 1

NOTA: Las colas son una estructura para almacenar datos. Imagina una gente haciendo fila en una tienda (aquí les llamamos colas, "la cola del banco"). Leer un dato de la cola significa SACARLO de la estructura. El primer dato guardado en la cola, es el primero en ser leído (y expulsado).

Hacemos una mochila "virtual" (TAMBIEN en CREATE)
mochila = ds_queue_create() //COLA

STEP del JUGADOR. Para elegir un arma, el arma tiene que estar guardada en la mochila

if (global.mi arma == 0)  // Si el jugador no tiene arma
{
     for (i=0; i < 6; i+=1)
     {
         if (existencias[i] == 1)
              mochila = ds_queue_enqueue(mochila, global.arma_id[i]) //Llenar mochila según lo que tengas comprado/adquirido.
     }

     if ds_queue_size(mochila) > 0                                //Si hay al menos un item en la mochila
     {
          global.mi_arma = ds_queue_dequeue(mochila) // Elegir (sacar) primer item de la mochila
     }
}
if (ds_queue_size(mochila) < 1) {global.mi_arma = 0}


EVENTO de la tecla para cambiar de item (Tecla D, en este caso)
if (ds_queue_size(mochila) > 0)     // Si la mochila no está vacía
{
     global.mi_arma = ds_queue_dequeue(mochila) // Elegir (Sacar) el siguiente item de la mochila
}
else       // Si se vació la mochila
{
     for (i=0; i < 6; i+=1)
     {
         if (existencias[i] == 1)
              mochila = ds_queue_enqueue(mochila, global.arma_id[i]) //Rellenar mochila nuevamente.
     }
      global.mi_arma = ds_queue_dequeue(mochila)        // Mochila llena, Elegir (sacar) primer item de la mochila
}


Si por ejemplo, aparte tienes un objeto bala, ahí puedes usar una variable para controlar el daño
dmg_bala = obj_player1.stats[1, global.mi arma]             //daño provocado por la bala del arma equipada