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

2011
De lo que he leído y alcanzé a entender (espero que bien), las variables declaradas en un script (mediante var) no están disponibles fuera de él, ni para la instancia que lo llamó, ni para nada más. En cuanto se termina de ejecutar el script, son eliminadas.

Creo que necesitarás usar la instrucción return para que el script devuelva el valor que te interesa, si es más de un valor,  puedes usar una lista para guardar varios valores y usar return para devolver esa lista.

Si no quieres usar return, la variable o variables que te interesen leer tras terminar el script, debes sacarlas del mismo y declararlas en algun objeto o incluso declararlas globales.
2012
A mi no me parece buena idea, pero seguramente voy a ser el único o de los pocos que piensen así.

Pocas cosas resultan más didácticas que equivocarse. Equivocarse al programar/diseñar tiene un gran valor. Un engine no te permite equivocarte, o hace que te equivoques lo menos posible. 

Game Maker es un software exitoso, ¿por qué? ¿Dónde está lo grandioso de GM? ¿Usar un engine pre-elaborado para hacer un juego o tener la libertad de hacer tu PROPIO juego tal como tú quieras e imagines (dentro de las limitaciones propias del software)?

Sé que hay cosas valiosas que se pueden reusar para crear juegos, pero un engine se me hace demasiado. Es sólo mi humilde opinión, no pretendo detener la iniciativa ni atacar a los que están a favor. Sólo quería exponer mi punto de vista. Considero muy importantes la creatividad, la libertad y la diversidad, y para mi, éstas cualidades quedas comprometidas al usar un engine.

Saludos.  ;D
2013
Preguntas y respuestas / Re:Solido vs No solido
Diciembre 31, 2013, 02:42:07 AM
Concuerdo con romon_28. Yo veo que un gran número de makeros usan solid, e incluso los tutoriales de YoYo "enseñan" usando solid

Antes de atreverme a hacer algo en Game Maker, estuve leyendo información en la red, y me encontré este artículo promoviendo el NO uso de Solid: http://soulred12.wordpress.com/2008/07/04/game-maker-solid/

Como hasta ese momento nunca había usado GM, símplemente comencé sin usar solid, y hasta la fecha no lo he usado nunca. A mi se me hace más atractivo implementar mi propio sistema de colisiones.
2014
Cita de: carras en Diciembre 31, 2013, 01:38:33 AM
Este es el codigo que tengo para la plataforma
if place_meeting(x,y+1,obj_ninja) {
vspeed=15
}

Ese es el código para el objeto plataforma. Me parece que si se cumple la condición, el código se ejecuta para TODAS las instancias del objeto plataforma que existan en la habitación. Tienes que cambiar el enfoque de tus colisiones: no puedes trabajar globalmente por objetos, tiene que ser por instancias. Por eso me gusta usar las funciones de colisión como collision_rectangle o collision_line, etc. porque ellas devuelven la ID de la INSTANCIA con la que se hace contacto.

Otra manera es usar un objeto padre, para detectar colisiones. Al objeto plataforma lo haces "hijo" del objeto padre. Dentro del objeto plataforma usas cualqueir variable para capturar la id de la instancia, por ejemplo mi_id = id. El objeto que tiene que controlar las colisiones con el ninja en este caso debe ser el padre, no el objeto plataforma (el objeto plataforma no debe contener código para detectar colisiones, ni evento de colision, etc... nada de colisiones).

En el evento de colisión del objeto padre con el ninja, para que sólo la plataforma "pisada" se caiga, pones mi_id.vspeed = 15.
2015
Cita de: esbxp en Diciembre 27, 2013, 11:08:05 PM
Hola:
Yo te hago la traducción como en 20 días ... estos algunos de mis trabajos ...
lo demás es pura boca, y cosas de noobs ,,, recuerdan ,,, jaja !!!
a estas alturas ya tengo un diccionario y traductor, adaptado, a los términos léxicos de programación !!!

mmm la verdad dudo de los traductores por software, sea cual sea. Leí algunas hojas de tus traducciones, pero ahí están los mismos rastros que dejan esos programas y que quiero evitar  :-[

"Non-Terminadores son presentados con itatilcs, palabras reservadas keywords son presentadas con Negresido, y otros símbolos terminales son presentados con la font CourierNew, encerrados entre comillas."

Agradezo sinceramente a todos los makeros que han respondido el tema, creí que no habría interés por la traducción. Diculpen si me pongo quisquilloso con los software traductores. Es que símplemente todo mundo sabe que son malos, sea cual sea el idioma. No niego que en situaciones de emergencia o inmediatez, ayudan. Soy consciente de que una traducción "artesanal" quizás lleve más tiempo que echar mano de traducción por software, pero estoy convencido que el producto final será de mejor calidad y por lo tanto beneficiará a más makeros. Este es el principal motivo por el que no puedo considerar el uso de software de traducción. Tampoco queremos que un sólo usuario traduzca todo el manual, esto debe ser un trabajo comunitario/en equipo. Que haya aporte de todos los miembros.

Es bueno saber que hay gente dispuesta a echar una mano con esto de la traducción. Sumando la experiencia de cada uno en el GM, se presagian buenas cosas. Daz y  sergiop93 sugirieron de inmediato "superar" la versión original del manual del GMS, espero que entre todos logremos hacerlo. Ahora, hay que ponerse de acuerdo en cómo y cuándo empezar. Les envié mensajes a quienes se ofrecieron a participar "artesanalmente", pero el único que me ha respondido es Daz, a quien ya agregue al skype.

Entiendo que son fechas festivas y que probablemente todos los voluntarios tienen proyectos. Sea como sea, necesitamos acordar una fecha para la primera "ciber-reunión" y de ahí partir.  Por favor propongan el medio, fecha y hora. A lo mejor es más fácil usar el chat de la "Consola GM", o Skype, o Yahoo, etc.

Cualquier observación o comentario, aquí déjenlo en el hilo.

Gracias a todos.  ;D
2016
Cita de: Jangse en Diciembre 27, 2013, 08:37:54 PM
¿No debería haberlo hecho todo por código? Osea, eliminar el event collision y hacer todo eso en un step. De no ser así ¿Para que están entonces las funciones collision?

Depende del programador. El Manual no dice que debas usar sólo GML, o sólo D&D. Tampoco he leído algún tutorial donde indiquen que sea ilegal usar una combinación de ambos. Usa lo que tenga mayor lógica o sea más intuitivo para ti. Las funciones colisión sirven para muchas cosas. Si no las has usado, quizá sea porque no las has necesitado, pero el que las haya usado, sabrá que son muy útiles.

Cita de: Jangse en Diciembre 27, 2013, 08:37:54 PM
La gente que habitualmente programa juegos con GML ¿Que eventos utiliza?

Eso es como preguntar, qué color debe ser mi color favorito, basado en los colores favoritos de otros. Mucha gente prefiere usar los eventos de teclado D&D, porque eso libera código del evento STEP, otros prefieren poner el chequeo de teclas en STEP porque desde el mismo bloque controlan todo sin tener que andar cambiando de eventos para cambiar el código. códigos. Otros usan Begin STep, Step y End Step para organizar mejor su código y que sea más fácil de leer. Otros prefieren usar todo en SCRIPTS y no usar EXECUTE CODE. ES al gusto de cada quien. En este caso, hay que tener en cuenta que por ejemplo, los eventos de teclado, alarma y mouse se ejecutan antes que STEP y que los eventos de colisión se ejecutan después que STEP y antes que END  STEP.

A mi se me hace más claro por ejemplo, usar los eventos del ratón individuales en lugar de manejarlos en STEP, para disminuír la cantidad de líneas en STEP. Lo que sí no me gusta es usar acciones D&D en los eventos (cualquiera). Por ejemplo, para dañar enemigos con espadas, uso el evento COLLISION, pero dentro le meto puro GML

2017
Podrías usar

game_restart()

Cuando se termine el juego, hacer alarm[0] = 120

Para usar una alarma tienes que agregar un evento para la alarma en el objeto controlador (o el que se encargue de cambiar habitaciones). El código que pongas en el evento de la alarma es el código que se ejecuta cuando ésta llega a cero, es decir, ahí podrias poner el game restart(), o en su caso, el room_goto().

El IF que revisa si la alarma es 0 no tiene mucho sentido, casi no se usa así, símplemente trasladas lo que dentro de los corchetes al evento de la alarma.





2018
Cita de: Gyga8k en Diciembre 25, 2013, 07:43:44 PM
No puedo ponerme a traducir por mi tiepo y mi ingles no es tan bueno pero puedo pagarle a alguien aqui para que lo haga, asi que por ejemplo podrias preparame un archivo con unas 30 o 50 paginas y yo pago para que la traduszcan y te las paso, pero lo de ornenarla y quisas ponerle enlaces y eso se encargarian ustedes, hablame por skype: gyga800

Gracias por el interés, makero Gyga8k, pero en realidad no me parece adecuada la idea de que alguien haga una traducción por encargo. Desde un principio me plantee que la guía debe ser escrita por makeros que conozcan el GML, porque habrá palabras y oraciones que no se pueden traducir literalmente, sino que se tienen que adaptar al modo en que se dicen las cosa en español y sobre todo, explicándolas desde el punto de vista del GMS, si no se tiene conocimiento del GML, se podrá hacer una traducción técnicamente muy fiel, pero que probablemente no deje en claro conceptos importantes o sea confusa en relación a cómo trabaja Game Maker.

Cita de: softsing en Diciembre 26, 2013, 08:00:58 PM
Me apunto.

Lo primero que hice fue traducirme la ayuda completa de GMS ( con el tio Google)

Mis conocimientos de GMS no son muy grandes, pero he colaborado en la traducción de otros programas y entornos de desarrollo.
En la medida que pueda , cuenta conmigo.

Aqui os dejo el archivo de ayuda en chm traducido a lo bestia. puede ser un punto de partida...

Aprecio que te hayas tomado el tiempo para traducir por google el manual, y disculpa si sueno rudo, makero softsing, pero esa fue una de las cosas que especifiqué que no van con la filosofía de la traducción. Nada de  Google, ni Bing, ni Babylon ni cualquier otro traductor en línea. Quiero que el manual sea traducido sin ayuda de software de traducción, para que sea un manual hecho a conciencia por makeros. Habrá revisiones cada periodo para ver cómo se está haciendo la traducción, mejorar oraciones o párrafos si la idea no es poco clara, etc, pero todo a partir de traducciones "a mano".  En esencia, el traductor del manual debe ser alguien con conocimientos del GMS y el lenguaje, un requisito que no cumplen los traductores en línea (que aparte distorsionan bastante el sentido de las oraciones, por lo que es incluso más rápido escribir una "idea" que tratar de parcharla)


2019
Aquí está la receta para ahorrarse esas molestias... consultar el manual:

http://docs.yoyogames.com/source/dadiospice/002_reference/file%20handling/file%20system%20limits.html

Studio no maneja los archivos de la misma manera que GM8. Studio trabaja basado en sandbox, como muchos otros programas, que quizás hayas visto que instalan datos en la carpeta de datos locales.

La "zona"Dentro de la carpeta de GMS no es un área en la que se permitan operaciones de escritura, sólo lectura. Existe un área reservada a operaciones de escritura, ahí es donde se crea una copia del INI original, y es donde se guradan los cambios

Windows - Windows has all files in the %localappdata%\<Game Name> directory (on Windows 7 this is the /Users/<User Name>/AppData/Local/<Game Name> directory).
2020
lineas un poco más separadas, y yo le bajaría el alpha a un 40% - 50%, pero es tu juego
2021
¡Muy bien! Entonces ya somos tres traductores: Daz, Sergiop93 y un servidor. Lo de pequeños ejemplos en cada tema ayudaría bastante.

Necesitamos ponernos de acuerdo para saber por dónde empezamos. Cualquier sugerencia escríbanla aquí en el tema. Les envío un mensaje para contactarnos y ponernos de acuerdo.

Si alguien más está interesado en colaborar, deje su respuesta en este hilo  :)
2022
Tienes que crear un objeto controlador, que se encargue de mostrar la imagen. El objeto debe ser persistente para que se mantenga al cambiar de habitación.

La idea de la imagen está bien, pero creo que la densidad de líneas es mucha. Igual puedes usarla como está, pero yo probaría separando un pixel más las líneas o haciendo líneas de dos pixeles de alto en lugar de uno. Las líneas las puedes hacer más oscuras, hasta totalmente negras, pues en GM ajustando el alpha de la imagen se puede controlar la intensidad del efecto de scanlines

2023
Cita de: michaelosan en Diciembre 23, 2013, 01:05:15 AM
:-[  la verdad  no hayo una solucion clara en esos 3 ejemplos

Pues no tiene mucha ciencia, ni necesitas unos señores tutoriales: Bloqueado, desbloqueado, bloqueado, desbloqueado. Dos estados nada más.

¿Que quieres saber si se permite usar un poder? : poder = 1 (desbloqueado)
¿Que quieres saber si se permite salta doble? salto_doble = 0 (bloqueado)
¿Que quieres saber si un nivel está bloqueado? nivel_x = 1 (desbloqueado)

Tú decides si 0 significa bloqueado o desbloqueado. Como dijo mgbu, escribes en un archivo ini el estado del nivel. El manejo de archivos es diferente en Studio que en GM8, por lo que ahora debes añadir el archivo ini como archivo incluído
http://docs.yoyogames.com/source/dadiospice/001_advanced%20use/002_including%20files.html

Después de esto ya puedes proceder a leer el archivo en game maker, para controlar los niveles mediante el INI. Necesitarás las funciones
ini_open    para abrir el archivo
ini_close    al terminar el proceso de lectura/escritura hay que cerrar el ini
ini_write_real   para hacer que un nivel con valor 1 sea cero, o viceversa
ini_read_real  para saber si un nivel es 1 o 0
de las cuales vienen ejemplos de cómo se usan en el manual

http://docs.yoyogames.com/source/dadiospice/002_reference/file%20handling/ini%20files/index.html
2024
Preguntas y respuestas / Re:Lograr score animado
Diciembre 22, 2013, 03:14:40 AM
yo lo haría así..
una variable bono, para saber cuánto se gana en puntos
una variable sumar, para que empiece el proceso de suma (lento)

CREATE:
bono = 0
sumar = 0

cuando se tenga que aumentar el score, en algún lado del evento step pongo
sumar = 1

también en step:
if (sumar = true)
{
      global.score_falso = global.score
      alarm[1] = 5
}

En el evento alarm[1]
sumar = 0                                                        //Limpiar,  de lo contrario la suma nunca parará
if (global.score < global.score_falso+bono)
{
     global.score += 1                                       // Sumar de uno en uno mientras score sea menor
     alarm[1] = 5                                                               
}


En DRAW
draw_text(100, 100, string(global.score))

Tendrías que ir probando el valor de la alarma, para ver cual se ajusta a la velocidad con la que quieres que cambie el marcador
2025
Mmm creo que la manera más fácil y eficiente de hacerlo sería usando una imagen en formato PNG, en la que dibujes lineas negras, y el espacio entre ellas no tenga ningun color. El tamaño de la imagen dependería del tamaño de tu vista.

El otro método que se me ocurre es usar las funciones para dibujar formas basicas, como draw_line_color o draw_rectangle_color. Un ciclo FOR o REPEAT que vaya dibujando líneas hasta llenar la pantalla con ellas. Creo que este segundo método es menos eficiente o requiere más procesamiento por usar dibujo de formas. Además, no sé si se pueda especificar un alpha para las líneas, no creo que la función image_alpha se pueda usar en este caso (no he usado hasta ahora funciones para dibujar formas).