Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

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.

Mostrar Mensajes Menu

Mensajes - Pato

#1
Proyecto dx_lib32 / Re: Limitación de FPS
20 de Abril de 2010, 09:19:00 PM
El AO sigue estando en DX7 aun que las intenciones es migrarlo a DX8, pero tener DX7 no es un impedimento para que tenga cosas rescatables como lo que te he mencionado. Lo que sí pasó de DX7 a DX8 es el ORE, que es el engine en el que se basa, que ahí también está implementado lo que te dije ^^. En fin, un saludo y gracias por tu tiempo, me voy a seguir peleando con el DX 8 :P.
#2
Proyecto dx_lib32 / Re: Limitación de FPS
20 de Abril de 2010, 05:03:23 AM
Antes que nada, no te sientas ofendido por ese comentario, pero realmente así lo noté, pido disculpas. Volviendo al tema, no sé si vistes el código del AO de alguna versión anterior a la 12.1(es demasiado probable) o vistes una más reciente, si no vistes apartir de la versión 12.1, te recomiendo que lo mirés ;), hay cosas interesantes sobre los FPS y como mostrar la animación, por ahí puedas sacar algo bueno sobre el asunto :D. Y en el AO sí se controlan los FPS, están limitados a 100, pero tranquilamente si se liberaran la fluidez es la misma, pero sería algo medio absurdo hacerlo, porque sería poner el CPU a 100% de uso y sin ningún fin porque el ojo humano no distinguría entre 100 y 200 FPS. Te agradezo demasiado el link que me pasastes, espero poder sacar algo provechoso de ahí ya que no me llevo bien con DX8(siempre he usado el 7). Saludos y nuevamente pido disculpas por mi comentario, no quería que suene como una ofensa.
#3
Proyecto dx_lib32 / Re: Limitación de FPS
20 de Abril de 2010, 01:19:09 AM
Hola, gracias por tu respuesta. Mirá, el código que utilizo es bastante básico y es obvio que no estoy haciendo nada mal, de hecho por el momento sólo le puse para que renderee el mapa, ni siquiera tiene chars ni objetos. De hecho, acá te dejo el código del RenderScreen y el sub Dibujar para que veas que no tiene nada malo :).

Sub RenderScreen()
Dim X As Integer
Dim Y As Integer
Dim MinX As Integer
Dim MinY As Integer
Dim MaxX As Integer
Dim MaxY As Integer

MinX = MaximoInt(LBound(Mapdata, 1), MiPos.X - 8)
MaxX = MinimoInt(UBound(Mapdata, 1), MiPos.X + 8)
MinY = MaximoInt(LBound(Mapdata, 2), MiPos.Y - 6)
MaxY = MinimoInt(UBound(Mapdata, 2), MiPos.Y + 6)

For X = MinX To MaxX
    For Y = MinY To MaxY
        With Mapdata(X, Y)
            Call Dibujar(.Graficos(1), _
                ((X - MiPos.X + 8) * 32) _
                , ((Y - MiPos.Y + 6) * 32), 32, 32)
               
            If .Graficos(2) <> 0 Then
                Call Dibujar(.Graficos(2), _
                    ((X - MiPos.X + 8) * 32) _
                    , ((Y - MiPos.Y + 6) * 32), 32, 32)
            End If
                   
            If .Graficos(3) <> 0 Then
                Call Dibujar(.Graficos(3), _
                    ((X - MiPos.X + 8) * 32) _
                    , ((Y - MiPos.Y + 6) * 32), 32, 32)
            End If
        End With
    Next Y
Next X
End Sub

Sub Dibujar(ByVal Texture As Long, ByVal X As Long, ByVal Y As Long, Optional ByVal W As Long = 0, Optional ByVal H As Long = 0, Optional ByVal Angle As Single, Optional ByVal Color As Long = -1)
    Call Engine.MAP_SetRegion(TexturesList(Texture).Grafico, TexturesList(Texture).Region)
   
    Call Engine.DRAW_MapEx(TexturesList(Texture).Grafico, X + 16, Y + 16, 0, W, H, Angle, Blendop_Color, Color, Mirror_None, Filter_None, True)
End Sub

Creo que no hay nada malo :P, jaja.

Y con respecto a tu comentario un poco subido de ego

Citarantes de sugerir modificaciones de algo que no comprendes bien

Te recomiendo que analices mejor el código del argentum, por cómo está diseñado hace que en todas las computadoras se tarde el mismo tiempo en llegar de un tile al otro, aun que en uno tenga 100 FPS y en la otra 50 ;). En fin, no sé si tu computadora será muy buena, la mía muy mala o qué, pero como el uso que le iba a dar a la dll era muy básico me decidí a hacer mi propio módulo de DX 8, y ahora (con el mismo RenderScreen posteado aquí) con el juego limitado en 100FPS tengo un consumo mínimo del CPU :), de todos modos nunca había usado DX8 por lo que se me están complicando algunas cosas, pero bueno.. Saludos
#4
Proyecto dx_lib32 / Re: Limitación de FPS
18 de Abril de 2010, 05:36:53 AM
Sí, vi que se limitan los FPS, pero limitarlos no te genera ningún beneficio en cuanto a consumo del CPU, de hecho, yo preferí limitarlos poniendo un sleep de 5 ms en el main loop, y de ese modo logré no saturar el micro, je. Y justamente eso es lo que te propongo que le implementes a la dll, un sistema de limitación de FPS que además de limitarlos no te sature el micro :), fijate si podés echarle un vistazo a lo que te dije, tal vez entiendas un poco mejor ;). Además, si limitar los FPS actualmente hacen que consuma de igual forma el micro, con que fin limitarlos :P? Es preferible dejarlos totalmente liberados xD. Saludos y gracias por contestar :).
#5
Proyecto dx_lib32 / Limitación de FPS
18 de Abril de 2010, 01:22:14 AM
Hola.[EX3], por lo que pude apreciar(No lei mucho) ya no vas a programar más esta DLL, no sé si porque considerás que ya está concluida o porque la vas a abandonar definitivamente, lo cual sería una lástima. En fin, creo este thread para ver si habrá alguna posibilidad de hacer un sistema de limitación de FPS que además de limitar los FPS reduzca el consumo del CPU para tener una buena razón como para limitar los FPS, ya que cuando tengo corriendo el engine éste se pone en 100% de uso. Una buena forma es como está hecho en el Argentum Online(http://sourceforge.net/projects/morgoao/)(Sub ShowNextFrame del módulo TileEngine), fijate si hay alguna posibilidad de eso o si habrá que jorobarse, je. Por otro lado, no tenés pensando ni en chiste liberar los códigos de la dll, no? Saludos y gracias por tu tiempo.





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.