Noticias

¡Ayuda a la Comunidad GM, haz una donación!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Jucarave

Páginas: 1 2 3 ... 20
1
Interesante, por acá investigando un poco mas del tema, al parecer GM usa ciertas posiciones desactivadas por control... fíjate en esta tabla para armar tu sprite:

https://docs.yoyogames.com/source/dadiospice/002_reference/game%20assets/fonts/font_tables.html

2
font_add_sprite(spr,first,prop,sep)

Debería funcionar también en GM8.1, lo único es que los sprites deben estar en el mismo orden ASCII (http://www.asciitable.com/), puedes hacer uso del parametro first que indica cual carácter ASCII es el primero en el sprite, por ejemplo, si tu primer carácter es espacio " " entonces puedes colocar 32, si es el número 0 entonces colocas 48, si es la A mayuscula coloca 65, etc... revisa http://www.asciitable.com/

así que podrías usarlo así:

font_add_sprite(sprFuente, 32, true, 2)

Aunque debes ajustarlo basado en tu sprite y tamaño de fuente

Saludos


3
Preguntas y respuestas / Re:escalar láser
« en: Mayo 11, 2020, 06:10:49 pm »
será que tal vez tienes el punto de rotación del sprite del láser centrado?

4
Guerra de IAs (GIA) / Re:¡GIA_01+ ha comenzado!
« en: Enero 04, 2020, 05:28:08 pm »
Al fin! hora de comenzar :D

Mucha suerte a todos

5
Control xbox one:

A: 1
B: 2
X: 3
Y: 4
LB: 5
RB: 6
LT: Nope
RT: Nope
Select: 7
Pause: 8
L3: 9
R3: 10

Control PS4 Usando DS4Windows:

Cuadro: 1
X: 2
O: 3
Triangulo: 4
L1: 5
R1: 6
L2: 7
R2: 8
Select: 9
Start: 10
L3: 11
R3: 12

PD: No se como lo estarás haciendo o si será cosa de GMS1 pero en mi proyecto con GMS2 me reconoce estos 2 gamepads como iguales

6
Preguntas y respuestas / Re:Cambio de controles
« en: Diciembre 31, 2019, 01:32:58 am »
Hola jhgv

Podrías lograr algo similar si usas la función "script_execute"

// por ejemplo si fueras a hacer 
keyboard_check(ord("W"));

// podrías hacerlo con script_execute así:
script_execute(keyboard_check, ord("W"));

Saludos

7
En que orden estas dibujando las cosas? debes primero dibujar todas las cosas opacas y luego todas las transparentes en orden de la mas lejana a la cámara a la mas cercana.

8
Noticias / Re:GIA 01 La carrera de los droides
« en: Diciembre 19, 2019, 03:39:03 am »
No pudé participar en la original por problemas de internet en esa época pero espero poder entrar full a esta :D

9
Preguntas y respuestas / Re:¡MODELOS 3D MUY PESADOS!
« en: Septiembre 24, 2019, 08:12:13 pm »
Anim8tor? .d3d? ¿Qué año es este xD?

Fuera de broma, no vale la pena que uses .d3d el formato es muy malo, es mejor que lo exportes a .obj y crees un script para importar .obj que no son muy complejos de entender

10
Noticias / Re:¡Discord test!
« en: Septiembre 03, 2019, 06:16:08 pm »
A mi me ha salido bastante útil para tener la notificación de cuando responde a un tema que me interesa.

11
Preguntas y respuestas / Re:Optimización del dibujado en 3D
« en: Septiembre 03, 2019, 05:55:51 pm »
Me refiero al orden de dibujo, como te decía lo mas costoso es enviar cosas a la GPU, por eso debes minimizar ese número de llamados lo más que puedas... En general hablando de GMS no hay mucho que puedas hacer en ese sentido pero igual debes tratar de agrupar los objetos antes de dibujarlo de la siguiente forma:

Para todos los objetos opacos:

* textura -> modelo -> otras propiedades

Luego de dibujar todos los objetos opacos dibujas los objetos semitransparentes agrupándolos así:

* profundidad -> textura -> modelo -> otras propiedades

Eso quiere decir, que si tienes la siguiente lista de objetos:

Código: [Seleccionar]
1. ModeloA -> TexturaA
2. ModeloB -> TexturaA
3. ModeloB -> TexturaB
4. ModeloA -> TexturaA
5. ModeloA -> TexturaA
6. ModeloA -> TexturaA
7. ModeloA -> TexturaB
8. ModeloC -> TexturaA

En vez de dibujarlos en el orden en el que los creaste, deberías agruparlos y ordenarlos para que al momento de dibujarlos queden así:

Código: [Seleccionar]
1. ModeloA -> TexturaA
4. ModeloA -> TexturaA
5. ModeloA -> TexturaA
6. ModeloA -> TexturaA
2. ModeloB -> TexturaA
8. ModeloC -> TexturaA
7. ModeloA -> TexturaB
3. ModeloB -> TexturaB

Como puedes ver ahí: primero dibujamos todos los modelosA que tengan texturaA luego dibujamos todos los modelosB con texturaA y los modelosC con texturaA... luego pasamos a la texturaB y dibujamos todos los modelosA con texturaB luegos los modelosB, etc...

Con esto lo que logramos es: mandar a la GPU la texturaA, luego mandar a la GPU el modeloA, cuando ya no necesitemos el modeloA pero si la texturaA entonces enviamos el modeloB pero conservamos la texturaA hasta que ya no necesitemos el modeloB y luego hasta que no necesitemos la texturaA en ese caso enviamos la texturaB y de ese modo solo enviamos cosas a la GPU cuando necesitemos hacerlo.

No se si me expliqué bien.

Saludos

12
Preguntas y respuestas / Re:Optimización del dibujado en 3D
« en: Septiembre 03, 2019, 04:57:05 pm »
Hay varias razones por las cuales te estan bajando los FPS.

Cuando usas d3d_draw_block, en cada frame estas creando un modelo para cada cubo y luego dibujándolo, eso toma mucho tiempo no solo en crearlo sino en enviarlo a la GPU (Que es un proceso bastante lento), lo que tienes que hacer es crear en el evento create el modelo de los cubos (o de un solo cubo si es que lo estas dibujando muchas veces) y luego dibujarlo con d3d_model_draw

Ahora, no es solo eso, en general cada vez que haces un cambio de alguna información a la GPU es un proceso que se toma bastante tiempo, por ejemplo si tienes 100 cubos diferentes con 100 texturas diferentes entonces por cada cubo que trates de dibujar tienes que enviar nueva información a la GPU no solo para el modelo (vertices, coordenadas de texturas, normales, etc) sino también para la textura de cada uno de esos objetos.

Para trabajar con esto puedes hacer:

* Usar un atlas de texturas: En vez de tener una imagen por cada edifico por ejemplo, ten una imagen que contenga todas las texturas de todos los edificios, así estos pueden compartir esa textura y no necesitas reenviar esa data a la GPU (esto lo debes hacer manualmente igualmente) pero para que esto funcione todos los edificios tienen que dibujarse continuamente, es decir: si tienes 2 edificios y una esfera entonces es mas optimo dibujarlos así: edificio->edificio->esfera, ya que si los dibujas así: edificio->esfera->edificio entonces entras en el mismo problema de volver a mandar la data de las texturas multiples veces.

Por otro lado, es mucho más optimo tener todos los edificios en un solo modelo y enviarlo así sea que se dibujen todos en cada frame, que tener cada edificio individualmente.. por la misma razón, cuando los tienes todos en un solo modelo, solo necesitas enviar esa data a la GPU una vez por frame, incluso si estas dibujando 100 edificios.

Por ejemplo, en este pequeño ejemplo que hice, todo el nivel se dibuja en un solo objeto, a pesar de que el suelo y los muros tienen texturas diferentes:

[youtube]https://www.youtube.com/watch?v=3z46zZvp9BM[/youtube]

Ahí te copié unos pensamientos de modo desordenado, la verdad es que esto es un tema bastante complejo y deberías dedicarle un tiempo a aprender como funciona el rendering pipeline en openGL para que entiendas cuales son los mejores procedimientos.

Saludos

13
Esto es un error conocido, en GM8 no sabría decirte bien como solucionarlo ya que no lo tengo.. Pero una forma que podrías hacerlo es:

Dibujar el texto en un surface con los colores y todas las propiedades que quieras y luego dibujas ese surface después del d3d_set_projection_ortho...

De nuevo, como es GM8 no se que tan conflictivo sea con las funciones d3d_start y eso, pero dale una prueba

14
Preguntas y respuestas / Re:Berkshire Swash
« en: Junio 17, 2019, 04:35:53 pm »
Tienes que instalarla en tu carpeta de fuentes, por lo general lo que puedes hacer es bajarte la fuente, abrirla y te debe aparecer una ventana con una visualización de la fuente y un botón que dice "Instalar".

O de forma manual, debes verificar que la fuente este en la carpeta: "C:\Windows\Fonts" (Ahí puedes encontrar Arial y el resto)

Luego que de la coloques ahí reinicia GM y la próxima vez que lo abras te debe aparecer en la lista de fuentes

Saludos

15
Preguntas y respuestas / Re:variable global
« en: Marzo 15, 2019, 08:47:10 pm »
Puedes utilizar las funciones variable_global_exists(nombre) para saber si existe, variable_global_get(nombre) para obtener su valor y variable_global_set(nombre, valor) para colocarle un valor.

Saludos

Páginas: 1 2 3 ... 20