Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Hola. necesito ayuda en blitz3d

Iniciado por Shader, 21 de Agosto de 2007, 01:52:57 AM

« anterior - próximo »

Shader

Hola, os explico: Hace poco que me puse en esto de la programación, llevo 2 semanas con blitz3D y con la ayuda del programa no me entiendo bien (esta en ingles, no encuentro lo que busco, no entiendo). Estoy haciendo una aventura "Semiconversacional" y me gustaria poder poner aparte de imagenes sobre el texto animaciones, como gif's. Estube mirando como poner los dichosos gif's pero no tube suerte. He pensado en ir poniendo imagenes usando el comando "Delay". me podriais aconsejar ?¿ Gracias ;)

Aqui adjunto el programa :)

He dejado dentro de la carpeta la animacion que me gustaria poner y los fotogramas usando comando delay.


http://www.megaupload.com/?d=E6YT0XX3


Hace 2 años hice uno pero sin imagenes os lo dejo tambien.



http://www.megaupload.com/?d=EU868YOW

Xine

delay no es tu funcion ,eso para el programa por completo; necesitas usar Timers. informate sobre el tema.

Shader

Si supiera donde, no creo que hubiera posteado, no?¿ siento las molestias, como ya he dicho soy novicio.

Khayn

saludos, hay mucha documentacion de blitz y por suerte hay cosas en castellano, una de ellas un manual completo

Blitz usa bmps, jpgs, pngs..... pero no gifs,

delay TIEMPO... se usa para que el programa se paralice el tiempo que tu quieres en milisegundos antes de continuar con la siguiente linea

Shader


pioj

cómo dicen por aquí más arriba, tu solución está en los timers...

Yo cuando quiero mostrar una animación a una velocidad concreta, hago lo siguiente: (uso png por el alpha, pero cualquier otro formato, salvo gif, es igual de correcto, ultimamente me aconsejan DDS...)

Lo pongo en pseudocodigo y seguro que lo pillas...

Pongamos una tira de imagenes de unos 10 frames.., pero no queremos que vaya rapido sino a unos , no sé 5 fps, para que la anim se reproduzca lentamente...


;// cargamos la imagen..
Mi_anim=loadimage("mitiradeimg.png",cellwidth,cellheight,0,numframes)


;//creamos una variable que haga de contador (un timer chupa algo más de memoria, pero es lo mismo..)
timer1%=0
frame%=0 ; esta es otra variable para mostrar el frame actual..

;//función que chekea y actualiza en qué frame estamos..(dentro del main loop)

Function Update_Anim()
If timer1% > 50 THEN ;//cada 50 msecs...
  IF frame% > numframes-1 THEN ;//si llegamos al frame final...
        frame%=0 ;//ponemos de nuevo el primer frame de la tira..
        timer1%=0 ;//reseteamos el timer para que empieze de nuevo..
   ELSE  ;//sinó, ha llegado a 50, pero no es el último frame..
      frame%=frame% +1 ;//pasamos al siguiente frame..
      timer1%=0 ;// reseteamos el contador a 0.
   ENDIF
 ELSE ;//si todavia no ha llegado a 50, el contador..
   timer1%= timer1%+1 ;//aumenta el contador...
ENDIF

End Function

;//funcion simple que dibuja el la imagen con su frame correspondiente.
;//recuerda llamarla despues del Renderworld para que tire mejor..
Function Dibuja_Anim(anim%,x%=0,y%=0,fram%=0)
 DrawImage anim%, x%,y%,fram%
End Function




;//en el codigo principal , despues de renderworld, simplemente pondremos, por ejemplo:

Dibuja_Anim(Mi_anim,50,50,frame%)

;//donde frame% es el nº que vamos chekeando y cambiando..



Cómo blitz3d está pensado para trabajar bastante rápido en este tipo de situaciones, no te preocupes, aguanta sus 100 imágenes y timers separados, tranquilamente.. Eso si, tampoco te pases..

Esta es una técnica que aprendí el primer año en Blitz3d.. Va de pm para casi cualquier cosa que se te ocurra.. Si necesitas más ayuda, pregúntamela por estos foros, oki?
iojete@gmail.com

Game Designer y/o Grafista de Escenarios.
Grafista 2D/3D General.
__________________________
- UNPALADIN -  
______________________
//WWW.UNPALADIN.COM

Mr. Sandman

Bienvenido Shader!  Y bienvenido cómo usuario de Blitz3D.
Por alguna parte tenía yo el manual en castellano, ya te lo pasaré si lo encuentro  :wink:

Por cierto, creo que en las últimas versiones de blitz, la 1.98 se puede usar gifs para animaciones en cinemáticas, pero yo no lo he usado nunca y no estoy seguro.

Suerte y si tienes alguna duda pregunta

PD.: No encuentro el manual perosi te sirve de ayuda, hay una pequeña comunidad de usuarios en blitz3D, que quizá te interese mirar, hay varias herramientas, tutoriales etc, y un foro dónde todo el mundo ayuda y dónde puede encuentres muchas respuestas, http://www.gamescreation.net, un saludo

Khayn

en teoria el 1.98 puede usar gif y dds en teoria por que a mi no me deja :D ni gif ni dds
como lo de que en teoria trabaja igual con png que con bmp... un cojoncillo, que tube que cambiar casi todo a bmp, que los frames se relentizaban que daba gusto.

usa BMPs a 256 colores y no tendras problemas con nada, (diga lo que diga el manual, que ya te daras cuenta que el Blitz es interactivo el manual dice una cosa y el hace y acepta lo que le sale de ahi mismo :D:D:D:D)

P.D.....
usar timer esta bien, pero tiene ventajas e inconvenientes frente a un "programilla que te fuerce la velocidad", en mi caso usando en 2 sesiones del mismo juego el "timer" ambos trabajan a la misma velocidad y si por ejemplo han de trabajar a 60 y no soporta las 2 sesiones ambos se relentizan a 50....
con el programilla la sesion principal trabajaria a 60 y la secundaria a 40....
para gustos colores :D, es como lo de usar contador por tiempo o por vueltas que da en el main.... si usas el tiempo y el progrma se relentiza... no afecta, pero si usas el otro contador... y hay un paron el paron afectara al contador... tu has de ver que te interesa

kaworu

la experiencia me dice que lo mejor para aprender es colaborar durante un tiempo en un proyecto de otra persona... ellos agradecerán tu ayuda y tu sacarás muchísimos conocimientos e ideas para sacar a delante tu propio proyecto...
empezar con un motor así de 0 es bastante putada :s
Mi experiencia personal es con Troque:
1º aprendí lo básico por mi cuenta, hasta alcanzar un nivel en el que sabía moverme entre los scripts
2º Entré en el grupo de desarrollo del proyecto del señor Jove, donde actualmente continuo deseoso de que me encarguen trabajo y de trabajar mano a manos con los peaxo componentes q tiene ;P
3º Una vez tenía más claro el funcionamiento del engine, me metí a hacer mi propio proyecto. Conseguí personas con mayor o menos experiencia en el entorno que , como yo, ayudarán y aprobecharán para aprender, pero eso es una comunidad, dar y recibir.....
No es una crítica ni nada, solo una anécdota, para que barajes la posibilidad, sobretodo si no te gusta mucho buscarte la vida en inglés, agradecerás el aprender con explicaciones y ejemplos en castellano ;P luego ya el refinarte y crecer es cosa tuya

pioj

Lo mejor sin duda, que puedes hacer, incluso antes de colaborar en cualquier proyecto (que siempre va bien), es .. APRENDER INGLES!!

TAAANN TANN CJAAANNNNNN!!!! (grito de terror..)


No, en serio. Hoy en día si no sabes inglés, aunque sea 10-12 palabrejas o verbos, no te puedes mover por ningun sitio. No puedes esperar a que venga el atípico y glorioso salvador hispano y te facilite el trabajo.

Aprender una base técnica de inglés es muy fácil, por mal que se te den los idiomas.  Todavía lo tienes más fácil si eres informático y más aún si tienes internet.. Tienes los diccionarios al alcance de la mano..y a la WIKIPEDIAAA

CUALQUIER y repito, cualquier lenguaje de programación que quieras aprender, está basado con sus comandos escritos tradicionalmente en inglés...

Citar¿Cómo esperas entender una función de "motion blur" para tu juego, si no eres siquiera capaz de enteder el concepto de "buffer"? ¿Y qué es un array? Nunca pillo lo que hace eso del "Const  *char" delante de muchos sitios..

A eso mismo me refiero. Si te dedicas a esto, te guste o no, lo vas a necesitar, y siempre.


Tampoco has de estarte un año sin tocar bliz3d por culpa de no saber inglés.. Ves aprendiendo sobre la marcha, probando comandos y a la vez que entiendes lo que hacen, tú mismo irás inconscientemente traduciendo las palabras hasta llegar a entender un buen racimo.

Si le pones algo de voluntad, seguro que lo sacas en apenas 3 meses, incluso menos.. Otro truco que yo seguía era aprenderme letras de canciones que estuvieran en inglés, y entender lo que decían..

Es un consejo que yo te doy, porque Popeye el marino, soy! LOL
iojete@gmail.com

Game Designer y/o Grafista de Escenarios.
Grafista 2D/3D General.
__________________________
- UNPALADIN -  
______________________
//WWW.UNPALADIN.COM

fitopaisa

Cita de: "Shader"Hola, os explico: Hace poco que me puse en esto de la programación, llevo 2 semanas con blitz3D y con la ayuda del programa no me entiendo bien (esta en ingles, no encuentro lo que busco, no entiendo). Estoy haciendo una aventura "Semiconversacional" y me gustaria poder poner aparte de imagenes sobre el texto animaciones, como gif's. Estube mirando como poner los dichosos gif's pero no tube suerte. He pensado en ir poniendo imagenes usando el comando "Delay". me podriais aconsejar ?¿ Gracias ;)

Aqui adjunto el programa :)

He dejado dentro de la carpeta la animacion que me gustaria poner y los fotogramas usando comando delay.


http://www.megaupload.com/?d=E6YT0XX3


Hace 2 años hice uno pero sin imagenes os lo dejo tambien.



http://www.megaupload.com/?d=EU868YOW

Puedes ver un manual que estoy elaborando en www.fitopaisa.3a2.com
desde cero, explicando todos los comandos hasta un remake del juego space invaders en continuo progreso por el momento  tiene animacion sonido y demas con el código fuente y explicado a modo de tutorial.

Espero que sea los que estas buscando.

la web en mi firma.
ww.fitopaisa.3a2.com
- tutor Blitz Basic 3d -

xd_grin

hola soy nuevo tengo conocimientos en b3d y espero que esto te sirva !!!

:idea: guarda una imagen en tu disco duro con la tira de animacion correspondiente .

:!: te recomiendo q la guardes en formato  .png  para que cargen mas rapido en la memoria !

bueno comenzamos con el codigo ! :D

;ejemplo de imagen animada

Global imagen, frames, timer ;variables globales para la imagen el timer y los frames

;modo grafico
Graphics 640,480,16
SetBuffer BackBuffer()

; cargamos la textura del disco las dimensiones de cada imagen de la tira de animacion tiene
;32 x 32 con un total de 3 imagenes una junta a la otra  
imagen=LoadAnimImage("directorio donde se encuentra la imagen.png",32,32,0,3)

;podemos designar el color transfarente con la funcion maskimage
MaskImage imagen,255,0,255 ;bueno aqui tu eliges el color q va a ser transparente de tu imagen

;  mientras no se precione la tecla ESC el bucle continua
While Not KeyHit(1)
Cls ; refrescamos la pantalla


If  MilliSecs() > timer + 100 Then ;el 100 es la velocidad del cambio de frames
timer=MilliSecs() ; 'reseteamos el timer
frames=( frames + 1 ) Mod 3 ; incrementamos el frame
End If
DrawImage imagen,MouseX(),MouseY(),frames ; dibujamos la imagen
Flip ; volcamos al buffer
Wend  
End



:idea:  :idea:  :idea:  :!:  :!:
espero q te sirva puedes usarlo tambien en la funcion q quieras solo tienes q intentar y volver a intentar asi yo pues aprendi ,
no dejes de insitir
 :idea:  :arrow:  :arrow:






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.