Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema al graficar texto

Iniciado por NaSH, 10 de Julio de 2011, 01:19:20 AM

« anterior - próximo »

NaSH

Bueno hace un tiempo posteé que había iniciado un proyecto de Zombies. He creado lo básico (tiles, jugador, zombies), y logré contestarme mi duda de la cantidad de zombies que puede soportar, al rededor de 650 antes de que comiencen a descender los FPS (por ahora los zombies solo persiguen al personaje, cuando les agregue más funciones talvez descienda la cantidad). Sin irme más por las ramas, estoy avanzando bastante despacio debido a la falta de tiempo... pero el proyecto ahí está ahí está  ::). En estos momentos estoy trabajando en la opción multijugador, y armaré un chat para la comunicación entre los jugadores. El problema es que cuando intento dibujar la cadena de texto (mediante DRAW_Text) en pantalla obtengo el error 9; o creo que era el 9 no me puedo fijar porque me encuentro en otra PC pero realizo el post para ver si es algo normal, en caso contrario puedo ofrecerles más datos cuando regrese a la PC de escritorio (aviso que hice el paso previo de cargar la fuente, así que el error ese no es). Algo raro es que con el Matamarcianos la función anda correctamente, no causa problemas y dibuja la cadena "Score " & puntos.

Aprovecho el post para preguntar otra cosa, abriendo las Referencias, en la lista, debajo de "dx_lib32 2.2.0 - Librería para desarrollo de juegos en..." encontré "dx_lib32 2.2.1 - Librería para desarrollo de juegos en...". Tengo la librería 2.2.1 en system32 pero no sé cómo llegó ahí. Revisando el foro me he descargado el Matamarcianos, el juego de Hechelión y ejemplos como los de colisión, puede que haya venido con alguna de esas descargas?. Tiene alguna diferencia/mejora o es sólo el nombre?

Saludos, gracias por la lectura

[EX3]

Wenas, NaSH.

Pues en principio si puedes facilitarme exactamente el error seria un paso. El erro 9 que yo recuerde (demasiado tiempo sin tocar Visual Basic 6.0 ya ::)) era indice fuera de intervalo, lo cual no tendria sentido que fuera dentro de la llamada de dibujo DRAW_Text() ya que esta no manipula ningún array. Si es este el error seguramente sea algun elemento de algun array que estes manejando (quizas la lista de lineas de texto del chat) y no tengas controlado correctamente los limites.

Sobre esto:
Cita de: NaSH en 10 de Julio de 2011, 01:19:20 AM
Aprovecho el post para preguntar otra cosa, abriendo las Referencias, en la lista, debajo de "dx_lib32 2.2.0 - Librería para desarrollo de juegos en..." encontré "dx_lib32 2.2.1 - Librería para desarrollo de juegos en...". Tengo la librería 2.2.1 en system32 pero no sé cómo llegó ahí. Revisando el foro me he descargado el Matamarcianos, el juego de Hechelión y ejemplos como los de colisión, puede que haya venido con alguna de esas descargas?. Tiene alguna diferencia/mejora o es sólo el nombre?
La 2.2.1 es una version discontinuada de la libreria que en teoria deberia arreglar unos pocos bugs (como los conocidos con las funciones HIT de dx_Input y algun error menor en un par de funciones de control de musica) y que Hechelion la estuvo probando en parte para ayudarme a encontrar bugs que se me pasaran por alto. Al no estar terminada ni corregida la documentacion no la subi a la web. Luego por otra parte esta version no deberia haber salido por ningun lado, pero bueno, si la tienes y la quieres usar adelante, en principio la documentacion de la 2.2.0 te deberia servir casi al 100% lo unico que si hay fallos en esta version no puedo dar mucho soporte :-/

Sobre si acabara saliendo la version oficial de la 2.2.1, me temo que la respuesta es no. Antes tenia poco tiempo para dedicarle a la libreria y actualmente ese tiempo es menor por diversas razones. La principal es que hace tiempo que abandone definitivamente Visual Basic 6.0 como plataforma de desarrollo, actualmente trabajo en .NET con XNA y que futuros proyectos me van a restar mas tiempo aun, por lo que me va a ser imposible. De todas formas, la 2.2.0 es totalmente estable para desarrollos y errores importantes como el de las funciones HIT de dx_input los podeis solucionar con el codigo que publique en este subforo, por lo que tampoco es un problema critico el sacar o no la version 2.2.1 de cara a que podais trabajar con ella.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

NaSH

#2
Gracias por ambas contestaciones. Creo que voy a seguir usando la 2.2.0 mientras no tenga ningún problema ("por las dudas").
Ya tengo la desktop en mi poder. Definitivamente el error que obtengo es Run-time error '9': Subscript out of range, aunque no creo estar manipulando ningún arreglo, a mí también me pareció raro cuando obtuve el error.

Hago lo siguiente (entre todo el resto del código):

Código (vb) [Seleccionar]
Option Explicit
Public cGfx As dx_GFX_Class
Public txt_Font As Long
Private Render As Boolean

Private Sub Form_Load()
   Set cGfx = New dx_GFX_Class
   txt_Font = cGfx.FONT_LoadSystemFont("system", 10, False, False, False, False) 'probé poniendo Arial y otros nombres de fuente
   Render = cGfx.Init(Me.hWnd, 640, 480, 32, True)
   Do While Render
       Call cGfx.DRAW_Text(txt_Font,"Texto de prueba", 0, 0, 0, cGfx.ARGB_Set(255, 255, 255, 255), Align_Center)
       Call cGfx.Frame(0, 50)
   Loop
End Sub

Hechelion

#3
Me suena a error con la carga de las fuentes, mete un

MsgBox txt_Font

Despues de la línea donde cargas y comprueba que el valor no sea un negativo, como es la primera fuente que cargas, el valor debería ser 0.
De no ser así, cambia por "Arial". Si estás usando win7 o Vista, has la prueba de correr como la aplicación como administrador, no sea que por algún problema raro de permisos no te de esté dejando cargar las fuentes (no debería, pero para descartar....).


Sobre la 2.2.1, mea culpa, es la librería que utilicé en el alpha de Dhu nun, tal como dice Ex3 me dio acceso a esa librería y yo comencé a usarla en el juego para ver como se comportaba, si presentaba errores, etc. Por desgracia, cambiar de versión de librería me trabó el proyecto (error raro del Visual Studio), así que cuando liberé el alpha lo hice manteniendo la versión 2.2.1. Al ser una alpha limitada (hace mucho que descolgue el juego de la red) no pensé que traería problemas que incluyera esa versión, si es así, pido mis disculpas.

La buena noticias, es que la versión 2.2.1 hasta la fecha ha funcionado tan bien como su predecesora.

[EX3]

Cita de: Hechelion en 11 de Julio de 2011, 09:34:32 AM
Al ser una alpha limitada (hace mucho que descolgue el juego de la red) no pensé que traería problemas que incluyera esa versión, si es así, pido mis disculpas.
Tranquilo, que tampoco es un proyecto militar ultrasecreto ;) Lo unico es el problema de que lo use la gente sin haber documentacion actualizada y cosas asi, pero vamos nada critico :)

Cita de: Hechelion en 11 de Julio de 2011, 09:34:32 AM
La buena noticias, es que la versión 2.2.1 hasta la fecha ha funcionado tan bien como su predecesora.
En eso parece que si, yo al menos hasta el año pasado que todavia desarrollaba con ella en VB6 no me dio problemas alguno :)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

NaSH

#5
Bueno, al hacer la prueba con el msgbox (no sé porque no pensé en hacerlo  antes >.<), obtuve 2147220502 (de ahí el error 9  :-[) y recordé que ya me había pasado antes con un sprite, es que lo estaba iniciando antes que Render

fnt_System = cGfx.FONT_LoadSystemFont("system", 10, False, False, False, False)
Render = cGfx.Init(Me.hWnd, 640, 480, 32, True)


Por lo que invertí las lineas. Es increíble lo despistado que puedo ser  a veces ^_^'

Por cierto, voy a publicar la versión ultrasecreta de la librería  >:D

Saludos, muchas gracias a los dos






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.