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

1396
¿A qué te refieres con pantallas? ¿Te refieres a habitaciones/rooms? Pregunto porque en el manual y el argot GMLesco no hay referencias a pantalla1, pantalla2, pantalla3, etc, sino a habitaciones. Las vistas también están numeradas, pero no veo que tenga relación con lo que quieres hacer.

Según entiendo, en tu juego el marcador en cada room es independiente, es decir, cada room tiene su propio juego y/o sistema de puntaje. Suponiendo que esto es lo que quieres hacer, el ini debería tener una estructura como esta (al principio, antes de jugar una partida):
[NIVEL]
1=0
2=0
3=0
4=0
5=0

Una sección NIVEL en donde 1 es la clave correspondiente al primer nivel, y a la derecha del signo igual está el puntaje máximo. Si estás usando la variable predefinida score, entonces score debería limpiarse (ponerse en cero) al iniciar cada habitación, porque el marcador de la habitación anterior no tiene relación con el de la nueva. Eso suponiendo que entendí bien, si no, pues habría que ver. También necesitarías una variable que lleve la cuenta del nivel en donde se está, y usar esa variable para leer y escribir la llave correcta del INI.
1397
 :o Por los dioses del GML, por favor explícame qué significa la expresión

"si global.coin=0 es mayor o igual a tres"

Pusiste eso dos veces, así que todavía tengo más dudas de qué significa esa condición. Y también lo siguiente. Mencionas que a partir del nivel 6 (es decir, 6, 7, 8,...) quieres agregar otra condición, pero por qué luego tienes if (room = level_3)? Eso sólo se cumpliría cuando el nivel es 3, no 6, 7, 8, etc.
1398
http://docs.yoyogames.com/source/dadiospice/002_reference/game%20assets/sprites/sprite_add.html

El archivo de imagen sólo puede tener formato png y antes de poder usar la función, debe ser agregado dentro de la lista de Included Files
http://docs.yoyogames.com/source/dadiospice/001_advanced%20use/002_including%20files.html
1399
Enfoca el problema de otra manera

Esa el evento DRAW para dibujar (crear) el fondo mediante un IF que se adecue a las condiciones que quieras

Cuando esas condiciones no se cumplen, el fondo no se dibuja (se "borra", por decirlo de algún modo). Para efectos prácticos, un fondo que no se dibuja es como si no existiera. O en su defecto, usa background_visible[]
1400
Preguntas y respuestas / Re:Ayuda a novato
Julio 17, 2014, 09:07:10 PM
Comparto mi punto de vista, porque no pocas veces he visto que se ha preguntado la misma cosa o relacionada.

No es raro ver que muchos cuando inician y vienen preguntando por el tutorial completo, único y milagroso que les muestre todos los "misterios" del GML/GM. No hay un tutoriales así. Si hay cientos o miles de tutoriales en la red, es porque hay decenas y quizás cientos de aspectos del GML/GM que no se pueden tratar si no es separadamente (siendo GM uno de los entornos más fáciles  o menos complejos que hay). El tutorial único, personalizado, hecho a la medida, que enseñe todo lo que no se sabe, no existe.

Perdón. De hecho sí existe, pero toma decenas y cientos de horas seguirlo, y pasarán días, semanas y meses para que lo completes, y una vez un fragmento del tutorial lo encontrarás en un lado y otras veces en otros lugares distintos y otras veces sólo se podrá completar tras fallar y experimentar no poco.

Mi consejo:

En lo que menos tiempo hay que invertir es en conocer la interfaz de GML, eso se aprende naturalmente al comenzar a desarrollar la cosa más simple, y si algo no se encuentra, se puede buscar en el manual. Después de la interfaz, en lo que menos hay que invertir tiempo (es mi opinión y habrá quien opine muy distinto) es en las acciones D&D.

¿Tienes una duda sobre un evento o función? Lee el manual. ¿No tienes ninguna duda? Lee el manual. ¿No das con la solución a un problema? Lee el manual.  ¿Quieres hacer buenos juegos? Lee el manual. ¿Quieres la paz mundial? Lee el manual. ¿Te dejó la novia? Lee el manual.  XD Es una simple sugerencia basándome en lo poco que he visto: la gente mejor informada en asuntos GMLescos tiene por costumbre consultar el manual.

Como ya te han sugerido, el manual contiene una introducción a GML, donde se explican las variables, los scripts, los IF, los FOR, etc etc. Si sabes inglés intenta hacer los tutoriales incluídos con GM:S. Si hay una cosa de la interfaz de GM:S que sí te animaría a entender cómo usar es el depurador. A la larga es muy útil y te puede ahorrar no pocos problemas y tiempo.

Si tienes dudas, que las tendrás, para eso está el foro, pero por favor, ten en cuenta que si expones tu asunto de manera clara y con el mayor número de detalles posibles, será más probable que te ayuden con una respuesta adecuada y será más fácil para otros usuarios consultar y comprender la solución. No pocos posts incumplen con esto, que se supone es una de las reglas del foro. 
1401
Preguntas y respuestas / Re:Problema de colision
Julio 17, 2014, 02:11:30 AM
¿Pero por qué motivo en ninguno de tus posts especificas el código que usas? Es difícil adivinar dónde está el error sin saber qué haces. No me queda claro que significa que "cuando toque el límite vaya derecho sin quedarse pegado"
1402
¿Y qué código estás usando? ¿Si no resulta, qué es lo que pasa o cual es el error? ¿Los enemigos se crean de manera aleatoria o siempre en el mismo lugar? Es importante que se especifiquen detalles y el post sea claro.
1403
Preguntas y respuestas / Re:Bucle músical
Julio 17, 2014, 12:07:00 AM
Independientemente del tutorial, consultar el manual es rapidísimo, todas las funciones de audio, nuevas y obsoletas vienen ahí. Si hay cambios en algo, aunque un tutorial se quede obsoleto, el manual se mantiene actualizado con cada versión, por eso es tan útil y es la mejor referencia para saber qué y cómo usar una función. Echándole un ojo se puede saber si existe o no la función

http://docs.yoyogames.com/source/dadiospice/002_reference/game%20assets/sounds/index.html
1404
Si colocas el objeto de recursos en todas las habitaciones, cada que entres a una habitación se va a ejecutar el evento CREATE del objeto de recursos, por eso parece que cada room tuviera sus propias puntuaciones. El objeto de recursos sólo se debe colocar en la primera y marcarlo como "persistent"
1406
Para cuando la instancia sale lateralmente, creo que esto debería funcionar (ahora sí  XD):
with (all)
{
     if (x < view_xview[0]) or ( x > (view_xview[0] + view_wview[0]) )
         instance_destroy()
}
1407
Si se usan como debe ser, es imposible que GM se confunda. Cuando se llama o se usa una lista, no se hace meidante un valor numérico directo, sino que se usa el manipulador almacenado en la variable adecuada. En términos simples, usa siempre el nombre de la variable usada en la función que crea la lista.

¿Se puede usar el nombre de la variable conteniendo el id de la lista como una variable más, por ejemplo, en una operación numérica? Claro que se puede, pero sería raro hacer eso (por no decir indebido), ya que se supone que a las variables se les deben dar nombres descriptivos. Sería muy raro intentar hacer algo como suma = mi_ds_list + 5
1408
usa la función random o irandom para darle valor a una alarma. En el evento de alarma creas la instancias y vuelves a echar a andar la alarma con un valor aleatorio
1409
Es difícil saber qué falla si no indicas el código que usas y dónde lo usas.

En primer lugar, el contador sería una variable, por ejemplo, num_muertes
En segundo, la variable debería estar declarada en un objeto controlador independiente del objeto que "muere"

No especificas si es un contador de muertes para el enemigo o para el jugador. Me imagino que es para el enemigo, pero es prácticamente lo mismo. Si el enemigo muere, en algún lugar del código debes tener la función instance_destroy() para destruír su instancia.

Ahí donde aparezca la susodicha función, agregas un simple código de suma +1 a la variable num_muertes

También, se puede sumar +1 a num_muertes en el evento DESTROY de la instancia enemiga. Si son muchos objetos enemigos distintos, conviene hacer un objeto padre para todos ellos, y en su evento DESTROY, hacer  ++num_muertes. Si no usas un objeto padre, tienes que poner en cada evento destroy  de cada objeto enemigo el código que suma +1 a la variable.
1410
Preguntas y respuestas / Re: problema con musica
Julio 14, 2014, 05:59:34 AM
¿Qué funciones usas? Con los datos que das es difícil saber qué pasa. Ya no se debería (se puede) usar las funciones de audio "antiguas" que se usaban en GM8.x. El sistema de audio es nuevo en GM:S y usa funciones nuevas. Aun así GM:S da la opción de usar el sistema de audio viejo, (las viejas funciones), pero para esto debes desactivar el nuevo sistema de audio en la configuración global del juego