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

1
Guerra de IAs (GIA) / Re: GIA_03 Tetris Finalizado
Julio 05, 2021, 08:05:09 AM
Saludos Makeros!!!   XD

Cuánto deseaba poder decir eso otra vez... Ya estoy en casa!!!  XD XD

Hace unos años, en su momento, diseñé un banner animado para los participantes de la  GIA 3 Tetris. Me inspiré en el banner animado de la GIA 2 Spaceships War y me pareció justo que este fuera animado también.

Pongo a disposición de los administradores el link de dicho banner, por si desean hacerlo público, para que los participantes lo puedan ostentan en sus firmas. El mismo está hosteado en un servicio público.

[img]https://i.postimg.cc/rFQjBp9n/gia38.gif[/img]

gracias...
   
2
   Saludos makera Black_Cat:

Muy interesante la información acerca de los diferentes géneros de videojuegos existentes.  :)

En uno de los tantos grupos de amigos en los que participo nos dedicábamos a clasificar los videojuegos, prácticamente como hobby. Allí llegamos a la conclusión de que no todos los juegos actuales son clasificables en tales géneros, por lo tanto faltan géneros por clasificar aún.  8)

En dicha lista faltan los subgéneros de juegos casuales como los "Objetos Ocultos" (Hidden Objects) y los "Combina Tres" (Match Three) por citar un par.  8)

Particularmente soy partidario de clasificar por separado "la mecánica" del juego de "la perspectiva" desde la que el jugador observa el juego. De esa manera los puedo clasificar mucho más cómodo de manera taxonómica, para un mejor estudio y posterior diseño de los mismos.  8)

Pudiera colocar ejemplos pero no tengo tiempo ahora...Disculpa.  :-[

Gracias por el "post" y la atención prestada...  ;D
3
Cita de: Killer en Abril 23, 2016, 01:22:16 AM
No sé si es a lo que te refieres, pero en mi caso al principio los sprites se crean como deberían, pero al reiniciar con R es posible que aparezcan errores, a veces reiniciara correctamente, y otras veces agrega zonas incorrectas al sprite.

Esto se debe a que solo estas eliminando y recreando las surfaces, no las estas limpiando, entonces es posible que quede data de surfaces anteriores en ellas, usa un draw_clear_alpha(0,0) justo después de cada surface_set_target para limpiar la surface de cualquier data anterior.

Prueba a ver si eso ayuda también con el problema del comportamiento irregular en distintas maquinas.

   Saludos Makero Killer:

  ¡¡¡Le doy un millón de gracias!!!  :love: XD :love: XD :love: XD :love: XD

  Justo eso arregló completamente mis proyectos.Le daré 10 puntos a Ud en algún tema suyo a modo de agradecimiento.  :love:

Espero que a alguien le sirva esta experiencia.   8)

Hasta la próxima Killer...!  ;D
 
4
Cita de: Clamud en Abril 22, 2016, 06:50:39 PM
Probé el gmk y todo se dibujó como debería. Tal vez es un bug de GM o un problema de compatibilidad con Windows.

   Saludos Makero "Clamud":


Muchas gracias por intentarlo...   XD

¿Cuál windows usas? Yo lo probé en W8.1 y W7. Aún así se comportó diferente en dos computadoras con la misma edición de windows.  ???

Necesito esta funcionalidad para un proyecto, pero temo que se comporte de manera diferente en diferentes usuarios lo cual no es ni remotamente aceptable.  :-\

¿Qué está mal? ¿Qué puedo hacer para que un código de GML funcione igual en todas las PC?  :'(

¡AUXILIO!  ¡ALGUIEN QUE ME AYUDE!  :'(   :'(   :'(   :'( 
5
     Saludos Makeros:

Sí, como pueden intuir por el título del tema tengo un problema y esta vez es uno grande...   :'(

Realizando pruebas de dibujado sobre superficies me topé con cierto error que quisiera me aclararan.   ???

Tengo tres "sprites" distintos (el mismo "sprite" pero rotado en 90 grados cada vez). Sus nombres son sp_1, sp_2 y sp_3 respectivamente.  :)

Utilizando un "script" nombrado "sc_2" trabajo dichos "sprites" para modificarlos y crear nuevos "sprites" a partir de ellos. A dicho "script" lo llamo desde el evento "Create".   :)

El algoritmo es sencillo:  ;)
1.   Dibujo el "sprite" "sp_1" en una superficie llamada "surf".
2.   Luego, en dicha superficie, le dibujo encima el "sprite" "sp_2", pero en modo subtracción, o sea "draw_set_blend_mode(bm_subtract) ", para recortar la figura del "sprite" "sp_2" del cuerpo del "sprite" "sp_1".
3.   Por último, en la misma superficie, dibujo encima el "sp_3" en modo substracción también para recortarle su figura de lo que haya quedado.
4.   Lo que quede lo convierto en un "sprite" y lo guardo en la variable "sprite_1".
Debo obtener solo el área del "sp_1" que no coincida con las áreas de los "sprites" "sp_2" y "sp_3".  8)

El algoritmo no se detiene ahí:   ;)
1.   Dibujo el "sprite" "sp_2" en una superficie llamada "bar". Nótese que no es la misma superficie que la anterior.
2.   Luego, en dicha superficie, le dibujo encima el sprite sp_3, pero en modo subtracción, o sea "draw_set_blend_mode(bm_subtract) ", para recortar la figura del "sprite" "sp_3" del cuerpo del "sprite" "sp_2".
3.   Lo que quede lo convierto en un "sprite" y lo guardo en la variable "sprite_2".

En el evento "Draw" dibujo ambos nuevos "sprites", o sea "sprite_1" y "sprite_2" en áreas separadas para comprobar que quedaron como debe ser...  :)

...pero mi sorpresa es tremenda al darme cuenta que no quedan como debieran. Dicho código no funciona en todas las computadoras de igual manera, los errores varían.   :o

Utilizando el botón de la letra "R" se puede reiniciar el juego y comprobar como varía el dibujado.  ???

Lo peor es que llega a mostrar partes de un "sprite" que nunca se le ordenó ser dibujado en dicha superficie como muestra la imagen. :-\

Por favor, ¿alguien podría decirme por qué el código no funciona bien?  ???
¿Alguien tiene alguna solución para este problema?   :'(

adjunto envío el editable en GM8.0 y una imagen con un error imposible ya que las superficies donde se dibujan son distintas... ???

Desde ya les doy las gracias por prestarme atención...   ;D
6
     Saludos Makero "pasqualefz":

Le puedo sugerir que no coloque esos objetos en pantalla utilizando número estáticos en las coordenadas X y Y. Mejor use posiciones relativas al ancho y alto de la pantalla. Algo así como proporcionales.

Por ejemplo 1: (imagen 1 de los adjuntos)
Si coloca un texto en la posición draw_text(50,50, 'blah') siempre estará en esa posición aunque la pantalla tenga 800x600 o 1024x768. 

Ejemplo 2: (imagen 2 de los adjuntos)
Si colocas un texto a la mitad (1/2) de distancia del borde derecho-superior siempre estará a al centro aunque la pantalla cambie su resolución. Draw_text(view_wview[0] / 2, view_hview[0] / 2, 'blah' ).

Estos cálculos los puede hacer para colocar los textos al décimo de distancia (1/10) o al (1,20). Todo depende de la distancia escogida.

Espero le sirva de algo.

Un abrazo de Ferhand....
7
      Saludos Makeros:

Muchas gracias a los makeros "Clamud", "VisualGames" y "correojon". Ya resolví el problema por el momento.  :love:

Lo que hice fue dejar de crear el "sprite" final donde se dibujaban todas las superficies y se dibujaba finalmente en pantalla.
Al parecer el código de crear y destruir un "sprite" unas 30 veces por segundo es muy ineficiente.  :-[

Un abrazo de Ferhand.... ;D
8
     Saludos Makero "scrubuch":

Para empezar las superficies son un área donde dibujas cualquier imagen, como si de un lienzo para pintar se tratase. Luego mandas a dibujar la superficie en la pantalla y entonces puedes ver lo dibujado en ella.
Por supuesto, si solo dibujamos una vez en la superficie y luego esta la dibujamos en la pantalla solo veremos eso, pero si dibujamos consecutivamente en la superficie y esta la dibujamos en pantalla consecutivamente también entonces podremos hacer algo parecido a como se hacían los dibujos animados en el pasado: se dibujaban los personajes una y otra vez en diferentes lienzos en diferentes posiciones y luego se mostraban en pantalla una imagen tras otra....

Solución 1: (primera imagen de los adjuntos)
Tal vez lo estoy diciendo un poco enredado pero mi propuesta es clara: dibuja en la superficie varias veces a medida que la sangre va desapareciendo. O sea, los pasos serían los siguientes:

1-   dibujas en la superficie la sangre y la muestras en la pantalla
2-   más tarde borras la superficie, la creas de nuevo y vuelves a dibujar la sangre en la superficie, pero algo más transparente y la pones en pantalla.
3-   Luego borras la superficie, la creas de nuevo y vuelves a dibujar la sangre en la superficie, pero mucho más transparente y la pones en pantalla.
4-   Y así consecutivamente hasta que la sangre no se vea.


Solución 2: (segunda imagen de los adjuntos)
La otra solución que le doy es crear una superficie donde dibujara solo la sangre con fondo transparente por lo que solo se verá la sangre. Y aplicar los pasos que le dije anteriormente solo a esa superficie que sería de pequeño tamaño....

Atención:
Ojo, mi explicación tiene como premisa que Usted dibuja todo el escenario (todos los objetos, el fondo, todo) en la superficie y luego manda a dibujar en pantalla. Por eso en la segunda solución propongo una superficie pequeña que no tenga el tamaño del "room". Lo que pasa es que Usted no explica los procesos de dibujado de su problema.

Disculpe si me enredo un poco para explicar.
Da la casualidad que estoy trabajando con superficies en estos momentos y tuve un problema parecido que ya resolví.
Espero resuelva... :)

Un abrazo de Ferhand.... ;D
9
Preguntas y respuestas / Re:Ayuda con dialogos RPG
Abril 06, 2016, 10:54:03 PM
    Saludos Makero "vigesimo quinto":

Hay muchas posibilidades para implementar lo que necesitas, pero en estos momentos no tengo mucho tiempo, por eso le remito a un "script" del makero Ciberman en el tema: draw_text_c2c (caracter a caracter) .

Revíselo para ver si le resuelve el problema  :-[.

Un abrazo de Ferhand.... ;D
10
Cita de: Clamud en Marzo 29, 2016, 08:37:16 PM
Ya lo pasé a gmk, espero que funcione.

  Muchas gracias makero Clamud. Revisaré el código para compararlo con el mío...  ;D
11
   Saludos Makero VisualGames:

Cita de: VisualGames en Marzo 29, 2016, 06:34:12 PM
En las "local options" (una cosa así se llama) en la cosa de priority de das a hight y e' rendimiento subirá. (Pero los demás programas se pondrán más lentos)

:)

La cosa de local options esta arriba de la cosa de info :)

   ¿Estás refiriéndote a la versión 8.0 de Game Maker?

    Disculpa, pero GM 8.0 es la versión que tengo...
12
    Saludos makero Clamud:


   Muchas gracias por orientarme en buena dirección en cuanto a mi problema. La solución que me muestran parece ser buena, pero no tengo GM 8.1 para poder ver el código de los ejemplos...

  Si alguien me pudiera ayudar....

  Gracias....
13
   Saludos Makeros:


  Muy interesante el tema.
  De hecho tengo pronblemas con una funcionalidad similar que quiero implementar, pero la eficiencia cayó al piso.

  Es una lástima que no pueda ver el código de esos ejemplos por no tener GM 8.1, si alguien pudiera ayudarme...

  Gracias...
14
    Hola Makeros:

Hace rato no pasaba por acá, pero estoy enrolado en un proyecto que requiere tiempo junto a mi trabajo.

Tengo un problema que quizás me ayuden a resolver.

En mi proyecto tengo un "background" y algunos objetos en pantalla. Durante el evento "steps" de un objeto yo creo una "surface" y comienzo a dibujar sobre ella una copia de todo lo que existe en mi juego ("room"). Uno de los elementos que dibujaré lo recorto de la "surface" para dejar un agujero con su forma, utilizando 
draw_set_alpha(1)
draw_set_blend_mode(bm_subtract)

Luego creo un "sprite" del tamaño del "room" para dibujar en él todo lo dibujado en la superficie, incluyendo el agujero. El siguiente paso es dibujar ese sprite sobre todo lo que existe en mi "room". Este proceso se debe realizar en cada "step" como mínimo.

Mi problema es que el rendimiento del juego disminuye drásticamente y quería saber si eso se puede mejorar de alguna forma. Sé que es poco eficiente de esa manera pero pregunto por si alguien pudiera tener algún truco bajo la manga para optimizar...Mi GM es el 8.0

Gracias de antemano a todos y todas... 
15
       Saludos Makeros:

Makero millansoft y makero penumbra, en realidad sí hay una forma de llamar a una variable de manera dinámica.   :-[

En estos momentos no tengo GM aquí en el trabajo, pero existen unas funciones con las cuales se pueden generar variables, "cuasi", en tiempo real. Dichas funciones no solo crean variables sino que las abren para su lectura y escritura.    :-[

Recuerdo que para un proyecto, utilizando GM, las empleé mucho. Mañana, en cuanto lea el manual otra, colocaré sus nombre y algún ejemplo de uso...   :-[

Aun así, la forma que el makero millansoft quiere realizar llamados a dichas variables puede realizarse de otra manera y ahorrar líneas código, que era su intención inicial, creo.   ???

Espero haber servido de algo...   ;D