Página 13 de 14 PrimerPrimer ... 311121314 ÚltimoÚltimo
Resultados 601 al 650 de 669

Blitz basic 3d

  1. #601
    Fecha de ingreso
    Nov 2006
    Mensajes
    106

    Wink Blitzbasic 3d

    Hay alguna forma de crar un minimapa como este:
    Nombre:  minimapa.JPG
Visitas: 279
Tamaño: 2.7 KB

    No se me ocurre ninguna idea la verdad.

    -- IMÁGENES ADJUNTAS --

  2. #602
    Fecha de ingreso
    Oct 2008
    Mensajes
    13

    Blitzbasic 3d

    Yo lo tengo en tareas pendientes, tengo que hacer un minimapa con los coches, supongo que, los tiros irán como adaptar el juego a todas las resoluciones, veras yo lo tengo todo diseñado para una resolución de 1280x800, pues en todas las coordenadas hago lo siguiente:
    Global puntero=loadimage (osd/puntero, bmp) tmaskimage puntero,0,0,0 tximage=imagewidth(puntero) : yimage=imageheight(puntero) tresizeimage puntero, (ximage*gráficosx)/1280, (yimage*gráficosy)/800.

    Drawimage marconombre, (920*gráficosx/1280), (220*gráficosy/800).

    Todo esto cada vez que sale una coordenada que influye directamente con la resolución siendo gráficosx, gráficosy la resolución seleccionada.

  3. #603
    Fecha de ingreso
    Nov 2006
    Mensajes
    106

    Blitzbasic 3d

    No lo que me quieres decir, pero en tu caso si es un juego 3d puedes utilizar el comando cameraproject o algo así se llama para hacer el mapa, yo mi juego es en 2d y a mí no me vale, gracias de todos modos.

    Por cierto ¿no sabrás alguna forma de empaquetar los archivos? Para que nadie los pueda modificar yo encontré el pakmaker empaqueta de miedo, pero el fallo que no es capaz de cargar los ficheros con el comando include.
    Última edición por Damian1985; 25-01-2011 a las 21:59

  4. #604
    Fecha de ingreso
    Oct 2008
    Mensajes
    13

    Blitzbasic 3d

    Nueva versión disponible, v0.53 que incluye:
    -Soporte para pad analógico/digital.

    Mejorado el menú opciones.

    Añadido compuestos blandos/duros.

    Añadida opción de cambio manual/automático.

    Mejoras notables en el osd.

    Calculo de vueltas con el combustible restante.

    Descarga-> http://www.racerphysics.com/download...hysics0.53.rar.

    -- IMÁGENES ADJUNTAS --

    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: menuopciones.jpg 
Visitas: 59 
Tamaño: 39.7 KB 
ID: 161435   Clic en la imagen para ver su versión completa. 

Nombre: osdnuevo.jpg 
Visitas: 116 
Tamaño: 84.8 KB 
ID: 161436  
    Última edición por 3dpoder; 09-03-2012 a las 09:52

  5. #605
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Falco en hora buena se ve muy bien. Puedes mejorar el cielo haciendo un cubico, ya que se ven la unión de las caras de los cielos, no recuerdo bien debes aplicar unos flag a las texturas.

    Creo que hace falta sombras. Un saludo.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  6. #606
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    No lo que me quieres decir, pero en tu caso si es un juego 3d puedes utilizar el comando cameraproject o algo así se llama para hacer el mapa, yo mi juego es en 2d y a mí no me vale, gracias de todos modos.

    Por cierto ¿no sabrás alguna forma de empaquetar los archivos? Para que nadie los pueda modificar yo encontré el pakmaker empaqueta de miedo, pero el fallo que no es capaz de cargar los ficheros con el comando include.
    Usa el packmachine te permite cifrar datos de hostia, es una lib free.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  7. #607
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Falco sobre el cambio de resoluciones donde se mueven las imágenes, usa como partida la mitad de la pantalla tanto en altura como en anchura, por lo tanto al cambiar la resolución no se verá afectado.

    Por ejemplo:
    Código:
    drawimage imagen,graphicswidht()/2-200,graphicsheight()/2 +200
    Al realizar esto el cambio de resolución no afecta los objetos que uses en el menú.
    Última edición por Yue; 07-02-2011 a las 01:08
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  8. #608
    Fecha de ingreso
    Oct 2008
    Mensajes
    13

    Blitzbasic 3d

    Gracias Blitz, en cuanto al tema de las resoluciones no tengo ningún problema con el 2d, usé en su día una simple regla de tres, con resize image y drawimage y me va perfecto, el único problemas es el 3d, el menú de introducción los textos son entidades 3d, para así poder hacer los efectos de girar las letras, y cuando pasa el ratón por encima se iluminan y caminan hacia adelante, ahí está el problema uso un simple recuadro de coordenadas x, y para detectar la posición del ratón, pero cuando cambia el aspect ratio de 16:10 (que uso por defecto) a otro las letras se desplazan un poco hacia abajo por lo tanto se activan cuando el ratón pasa ligeramente por encima de lo deseado.

  9. #609
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Thumbs up Blitzbasic 3d

    Bueno aquí pongo un código bastante interesante como crear el efecto blur.
    Código:
    initgraphics(1024,1024). Global light = createlight().
    
    Global Camera = createcamera ().
    
    Positionentity Camera,0,1,-5.
    
    Camerarange Camera.001,100.
    
    Createplane ().
    
    Local Cube = createcube ().
    
    Positionentity Cube,0,1,0.
    
    Rotateentity Cube,30,40,0.
    
    Local overlay = createquad(1,1,-1,Camera).
    
    Positionentity overlay,0,0.5.
    
    Entityalpha overlay.8.
    
    Local texture = createtexture (1024,1024,1+16+32).
    
    Entitytexture overlay,texture.
    
    Loockbuffer texturebuffer(texture).
    
    For y = 0 todo texturewidth(texture)-1 tfor x = 0 todo textureheight(texture)-1 writepixelfast x y,0,texturebuffer(texture) tnext.
    
    Next.
    
    Unlockbuffer texturebuffer(texture).
    
    Rendertexture (texture).
    While not keydown(1) tturnentity Cube.5,1.5 tif keydown(200) translateentity Camera,0,0.1 if keydown(20 translateentity Camera,0,0,-.1 if keydown(203) translateentity Camera,-.1,0,0 if keydown(205) translateentity Camera.1,0,0 t updateworld t rendertexture (texture) t flip wend end t.
    
    Function rendertexture (texture) trenderworld tcopyrect 0,0,1024,1024,0,0,frontbuffer(),texturebuffer(texture).
    
    End function.
    
    Function initgraphics(w = 1024, h = 768, title$=iris3d, exit_message$=) tgraphics3d w, 32, 2 tsetbuffer backbuffer() tsedrnd millisecs() tif exit_message <> apptitle title, exit_message telse apptitle title tendif.
    
    End function.
    
    Function createquad(width#, height#, order%=-1, parent%=false) tlocal v0, 1, 2, 3 tlocal point,surface tif not parent = false point = createmesh(parent) telse point = createmesh() tendif tif order <> 0 entityorder point, order tendif tentityfx point,1 tsurface = createsurface (point) tv0=addvertex(surface,-(width*.5), (height*.5),0,0,0) TV1=addvertex(surface, (width*.5), (height*.5),0,1,0) tv2=addvertex(surface,-(width*.5),-(height*.5),0,0,1) TV3=addvertex(surface, (width*.5),-(height*.5),0,1,1) taddtriangle (surface, 0, 1, 2) taddtriangle (surface, 1, 3, 2) treturn point.
    
    End function
    Un saludo.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  10. #610
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Muy bueno el código para hacer blur. Ahora estoy intentando comprenderlo del todo para poder variar la cantidad de blur. Gracias.

    Ya me di cuenta, variando el entityalpha del ente overlay se consigue variar el blur.
    Última edición por aprendiz; 09-02-2011 a las 14:18

  11. #611
    Fecha de ingreso
    Jan 2011
    Mensajes
    1

    Blitzbasic 3d

    Hola, estaba mirando un código de Blitz para leer píxeles y cuando utilizo el comando readpixelfast me pone en un mensaje memory acces violation. Que puede será gracias.

  12. #612
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Hola. Aprendiz, me alegra que te haya gustado el código. Ahora el siguiente fragmento de código es una función que detecta la posición del modo gráfico especificado, tanto en altura, como anchura y su respectiva profundidad.
    Código:
    function buscarmg(ancho%,alto%,profundidad%) tlocal itermodes tfor itermodes=countgfxmodes3d() todo 1 step -1 ;it more likely that searches would prefer higher - End resolutions if (gfxmodewidth(itermodes)=width)*(gfxmodeheight(itermodes)=height)*(gfxmodedepth(itermodes)=depth) then return itermodes if (gfxmodewidth(itermodes)<width) then return false tnext treturn false.
    
    End function.
    
    Local modo_gráfico = buscarmg(800,600,32).
    
    Print modo_gráfico ().
    Waitkey().
    En mi caso retorna un 11, es la posición en la tarjeta gráfica donde se encuentra el modo gráfico, esto puedo variar de ordenador a ordenador, por ejemplo, en otros puede dar un 20 o un 30, esto se usa cuando se escanean los modos gráficos soportados por la tarjeta gráfica y este valor se toma como partida para mostrar las opciones disponibles en una lista dinámica para que el jugador lo cambie a su gusto.
    Código:
    if (gfxmodewidth(itermodes)<width) then return false
    Esta parte se usa para que salte los modos de 16, 24 de profundidad, si desea que detecte estos modos puede anular esta línea de código. Un saludo.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  13. #613
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Wink Blitzbasic 3d

    Continuando con otro código, este es la base de cómo hacer sombras volumétricas.
    Código:
    Graphics3d 1024, 768, 32, 2.
    
    Setbuffer backbuffer().
    
    Globs.
    
    Dim edge#(65000, 7).
    
    Camera.
    
    Cam = createcamera ().
    
    Caster.
    
    Cube = createsphere ().
    
    Positionentity Cube, 0, 0, 7.
    
    Light.
    
    Light = createlight().
    
    Positionentity light, 3, 3, 7.
    
    Pointentity light, Cube.
    While not keyhit(1) tturnentity Cube, 1. 5, 1.5 tvol = createvolume (Cube, light) trenderworld tfreentity vol tflip.
    Wend.
    
    End.
    
    Function createvolume (model, light, volume_lenght = 1000000).
    
    Volumemesh = createmesh().
    
    Volumesurface = createsurface (volumemesh).
    
    Entityalpha volumemesh. 5.
    
    Entitycolor volumemesh, 255, 0, 0.
    
    Entityfx volumemesh, 1.
    
    Light_x# = entityx(light).
    
    Light_y# = entityy(light).
    
    Light_z# = entityz(light).
    
    For n = 1 todo countsurfaces(model) tsurf = getsurface (model, n) tdwnumfaces = counttriangles(surf) - 1 tfor v = 0 todo dwnumfaces vert0 = trianglevertex(surf, v, 0) vert1 = trianglevertex(surf, v, 1) vert2 = trianglevertex(surf, v, 2) tformpoint vertexx(surf, vert0), vertexy(surf, vert0), vertexz(surf, vert0), model, 0 v1_x# = tformedx() v1_y# = tformedy() v1_z# = tformedz() tformpoint vertexx(surf, vert1), vertexy(surf, vert1), vertexz(surf, vert1), model, 0 v2_x# = tformedx() v2_y# = tformedy() v2_z# = tformedz() tformpoint vertexx(surf, vert2), vertexy(surf, vert2), vertexz(surf, vert2), model, 0 v3_x# = tformedx() v3_y# = tformedy() v3_z# = tformedz() a_x# = v3_x# - V2_x# a_y# = v3_y# - V2_y# a_z# = v3_z# - V2_z# bb_x# = v2_x# - V1_x# bb_y# = v2_y# - V1_y# bb_z# = v2_z# - V1_z# norm_x# = a_y# * bb_z# - A_z# * bb_y# norm_y# = a_z# * bb_x# - A_x# * bb_z# norm_z# = a_x# * bb_y# - A_y# * bb_x# normlight_x# = (v1_x# + v2_x# + v3_x#) / 3 - Light_x# normlight_y# = (v1_y# + v2_y# + v3_y#) / 3 - Light_y# normlight_z# = (v1_z# + v2_z# + v3_z#) / 3 - Light_z# if (norm_x# * normlight_x# + norm_y# * normlight_y# + norm_z# * normlight_z#) * (1.0 / float(sqr(norm_x# * norm_x# + norm_y# * norm_y# + norm_z# * norm_z#))) * (1.0 / float(sqr(normlight_x# * normlight_x# + normlight_y# * normlight_y# + normlight_z# * normlight_z#))) => 0 then Edge (cntfront, 0) = surf Edge (cntfront, 1) = Tri Edge (cntfront, 2) = v1_x# Edge (cntfront, 3) = v1_y# Edge (cntfront, 4) = v1_z# Edge (cntfront, 5) = v2_x# Edge (cntfront, 6) = v2_y# Edge (cntfront, 7) = v2_z# cntfront = cntfront + 1 Edge (cntfront, 0) = surf Edge (cntfront, 1) = Tri Edge (cntfront, 2) = v2_x# Edge (cntfront, 3) = v2_y# Edge (cntfront, 4) = v2_z# Edge (cntfront, 5) = v3_x# Edge (cntfront, 6) = v3_y# Edge (cntfront, 7) = v3_z# cntfront = cntfront + 1 Edge (cntfront, 0) = surf Edge (cntfront, 1) = Tri Edge (cntfront, 2) = v3_x# Edge (cntfront, 3) = v3_y# Edge (cntfront, 4) = v3_z# Edge (cntfront, 5) = v1_x# Edge (cntfront, 6) = v1_y# Edge (cntfront, 7) = v1_z# cntfront = cntfront + 1 endif tnext.
    
    Next.
    
    For a = 0 todo cntfront tif Edge (a, 0) > 0 then diverso = true p0_x# = Edge (a, 2) p0_y# = Edge (a, 3) p0_z# = Edge (a, 4) p1_x# = Edge (a, 5) p1_y# = Edge (a, 6) p1_z# = Edge (a, 7) for b = a + 1 todo cntfront p0_2_x# = Edge (b, 2) p0_2_y# = Edge (b, 3) p0_2_z# = Edge (b, 4) p1_2_x# = Edge (b, 5) p1_2_y# = Edge (b, 6) p1_2_z# = Edge (b, 7) if Edge (b, 0) > 0 then if (p0_x# = p0_2_x# and p0_y# = p0_2_y# and p0_z# = p0_2_z# and p1_x# = p1_2_x# and p1_y# = p1_2_y# and p1_z# = p1_2_z#) = false then if p0_x# = p1_2_x# and p0_y# = p1_2_y# and p0_z# = p1_2_z# and p1_x# = p0_2_x# and p1_y# = p0_2_y# and p1_z# = p0_2_z# then Edge (a, 0) = surf = 0 Edge (b, 0) = surf = 0 diverso = false exit endif endif endif next if diverso then pe0_x# = p0_x# - Light_x# pe0_y# = p0_y# - Light_y# pe0_z# = p0_z# - Light_z# do# = 1.0 / float(sqr(pe0_x# * pe0_x# + pe0_y# * pe0_y# + pe0_z# * pe0_z#)) pe0_x# = pe0_x# * do# * volume_lenght + p0_x# pe0_y# = pe0_y# * do# * volume_lenght + p0_y# pe0_z# = pe0_z# * do# * volume_lenght + p0_z# pe1_x# = (p1_x# - Light_x#) * volume_lenght + p1_x# pe1_y# = (p1_y# - Light_y#) * volume_lenght + p1_y# pe1_z# = (p1_z# - Light_z#) * volume_lenght + p1_z# va = addvertex(volumesurface, p0_x#, p0_y#, p0_z#) vb = addvertex(volumesurface, pe1_x#, pe1_y#, pe1_z#) addtriangle (volumesurface, va, addvertex(volumesurface, pe0_x#, pe0_y#, pe0_z#), vb) addtriangle (volumesurface, va, vb, addvertex(volumesurface, p1_x#, p1_y#, p1_z#)) Edge (a, 0) = 0 endif tendif.
    
    Next.
    
    Return volumemesh.
    
    End function.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  14. #614
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Y con este finalizamos hoy: efecto Glow.
    Código:
    Graphics3d 640,480,32,2. Setbuffer backbuffer(). Global Camera=createcamera ().
    
    Moveentity Camera,3,3,0.
    
    Rotateentity Camera,30,30,0.
    
    Light=createlight().
    
    Global Cube=createsphere ().
    
    Positionentity Cube,0,0,5.
    
    Tex0=createtexture (300,300).
    
    Setbuffer texturebuffer(tex0).
    
    Clscolor 255,255,255.
    
    Cls.
    
    Sedrnd(millisecs()).
    
    For k=1 todo 50 tcolor Rand(256),Rand(256),Rand(256) trect Rand(600),Rand(600),Rand(600),Rand(600).
    
    Next.
    
    Entitytexture Cube, tex0.
    
    Setbuffer backbuffer().
    
    S=1.
    
    Global sizex=640/s.
    
    Global sizey=480/s.
    
    Global glowtexture=createtexture (384,384,256).
    
    Global sp=createsprite (Camera).
    
    Moveentity service pack,-.25,-0.06,1.18.
    
    Entityalpha sp.32.
    
    Scaletexture glowtexture,graphicswidth()/sizex,graphicsheight()/sizey.
    
    Entitytexture service pack, glowtexture.
    
    Textureblend glowtexture, 5.
    While not keydown(1) tturnentity Cube,0.5,0.5,0.5 tcameraviewport Camera,0,0, sizex, sizey trenderworld tcopyrect 0,0, sizex, sizey,0,0,backbuffer(),texturebuffer(glowtexture) tcameraviewport Camera,0,0,graphicswidth(),graphicsheight() trenderworld tflip.
    Wend.
    
    End.
    Efecto blur FX.
    Código:
    Const texsize=1024, FX=7, o =-1.
    
    Graphics3d 800,600,32.
    
    Cam=createcamera ().
    
    Positionentity Cam, 0,0,-6.
    
    Rotateentity createlight(), 45,0,0.
    
    Cube=createcube ().
    
    Entitycolor Cube, 255,128,0.
    
    Cone1=createcone (20).
    
    Entitycolor cone1,0,255,255.
    
    Positionentity cone1,-4,0,0.
    
    Cone2=createcone (20).
    
    Entitycolor cone2,0,255,0.
    
    Positionentity cone2,4,0,0.
    
    P=createpivot().
    
    Sph=createsphere (20, p).
    
    Positionentity SPH, 0,0,-4.
    
    Select FX tcase 1:bl=createblurlayer(Cam, 1,0,1,1. 95,1, o) tcase 2:bl=createblurlayer(Cam, 1,0,1. 97,1,3, o) tcase 3:bl=createblurlayer(Cam, 1. 2,1.02. 97,1,3, o) tcase 4:bl=createblurlayer(Cam, 1,0,1.01,1. 95,1, o) tcase 5 bl=createblurlayer(Cam, 1,0,1.01,1. 9,1, o) entitycolor bl, 240,255,225 tcase 6 bl=createblurlayer(Cam, 1.1,0,1,1. 95,1, o) rotateentity bl, 1,1,0 tcase 7 bl=createblurlayer(Cam, 1.01,1,1,1. 9,1, o) bl2=createblurlayer(Cam, 1.02,-1,1,1. 8,1, o).
    
    End select.
    
    Setbuffer backbuffer().
    While not keyhit(1) tturnentity Cube. 1. 2. 3 tturnentity p. 55. 35. 2 trenderworld tbltex=updateblurlayer(bl, bltex) tif bl2 then entitytexture bl2, bltex tif FX=4 then positionentity bl, rnd(-.01. 01), rnd(-.01. 01), 1 tflip.
    Wend.
    
    Function createblurlayer(Cam, z#, ang#, mgn#, bright#, alpha#, bmode, ord) tlocal xres=graphicswidth() tlocal yres=graphicsheight() tlayer=createmesh(Cam) ts=createsurface (layer) tvx#= 1.0*xres/texsize tvy#= 1.0*yres/texsize taddvertex,-1,-1,0,0,0 taddvertex, 1,-1,0, vx#, 0 taddvertex,-1,1,0,0, vy# taddvertex, 1,1,0, vx#, vy# taddtriangle, 0,1,2 taddtriangle, 3,2,1 tpositionentity layer, 1,1, z# tcameraproject Cam, entityx(layer, true), entityy(layer, true), entityz(layer, true) trx#= projectedx#()-.5*xres try#= projectedy#()-.5*yres tscalemesh layer. 5*xres/rx#.5*yres/ry#, 1 tpositionentity layer,-.5/rx#,-.5/ry#, z# trotateentity layer, 0,0, ang# tscaleentity layer, mgn#, mgn#, mgn# tentityalpha layer, alpha# tentityblend layer, bmode tcol=255*bright# tentitycolor layer, col, col, col tentityfx layer, 1 tentityorder layer, ord treturn layer.
    
    End function.
    
    Function updateblurlayer(layer, TeX) tif TeX=0 then TeX=createtexture (texsize, texsize) tentitytexture layer, TeX tcopyrect 0,0, graphicswidth(), graphicsheight(), 0,0, backbuffer(), texturebuffer(TeX) treturn TeX.
    
    End function.
    Más blur.
    Código:
    Graphics3d 1024,768,32,1.
    
    Setbuffer backbuffer().
    
    Light=createlight().
    
    Rotateentity light,45,45,0.
    
    Cube=createcube ().
    
    Translateentity Cube,0,0,3.0.
    
    Scaleentity Cube.1,2.1.
    
    Camera=createcamera ().
    
    Camerarange Camera,0.01,100.
    
    Cameraclscolor Camera,255,0,0.
    
    Motion_blur_on=1.
    
    Motion_blur_quad=create_blurquad(Camera).
    
    Entityfx motion_blur_quad,2 or 1 or 16.
    
    Motion_blur_tex=createtexture (1024,1024,256).
    
    Entityalpha motion_blur_quad,0.333.
    
    Entitytexture motion_blur_quad, motion_blur_tex.
    
    Translateentity motion_blur_quad,-(1.0/2048.0),0-(1.0/2048.0), 0.995.
    
    Entityorder motion_blur_quad,-1.
    While keydown(1)=0 tif keyhit(57), tecla espacio motion_blur_on=motion_blur_on XOR 1 if motion_blur_on=0 then hideentity motion_blur_quad else showentity motion_blur_quad endif tendif t.
    
    If motion_blur_on<>0 copyrect 0,0,1024,768,0,128,backbuffer(),texturebuffer(motion_blur_tex).
    
    Endif.
    
    Turnentity Cube.2.4.6.
    
    Updateworld().
    
    Renderworld().
    
    Vwait:flip 0.
    Wend.
    
    Function create_blurquad(par=0) tlocal al1#, al2#, 0, 1, 2, tr tal1#=1.0 tal2#=0.2 tm=createmesh() ts=createsurface (m) tv0=addvertex(s,-1,-1,0, 0,1) TV1=addvertex(s,+1,-1,0, 1,1) tv2=addvertex(s, 0,0,0. 5.5) tvertexcolor, 0,255,255,255, al1# tvertexcolor, 1,255,255,255, al1# tvertexcolor, 2,255,255,255, al2# ttr=addtriangle (s, 0, 1, 2) tv0=addvertex(s,+1,-1,0, 1,1) TV1=addvertex(s,+1,+1,0, 1,0) tv2=addvertex(s, 0,0,0. 5.5) tvertexcolor, 0,255,255,255, al1# tvertexcolor, 1,255,255,255, al1# tvertexcolor, 2,255,255,255, al2# ttr=addtriangle (s, 0, 1, 2) tv0=addvertex(s,+1,+1,0, 1,0) TV1=addvertex(s,-1,+1,0, 0,0) tv2=addvertex(s, 0,0,0. 5.5) tvertexcolor, 0,255,255,255, al1# tvertexcolor, 1,255,255,255, al1# tvertexcolor, 2,255,255,255, al2# ttr=addtriangle (s, 0, 1, 2) tv0=addvertex(s,-1,+1,0, 0,0) TV1=addvertex(s,-1,-1,0, 0,1) tv2=addvertex(s, 0,0,0. 5.5) tvertexcolor, 0,255,255,255, al1# tvertexcolor, 1,255,255,255, al1# tvertexcolor, 2,255,255,255, al2# ttr=addtriangle (s, 0, 1, 2) tflipmesh tupdatenormals tif par <>0 then entityparent m, par treturn m.
    
    End function.
    Última edición por Yue; 09-02-2011 a las 19:16
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  15. #615
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Bueno aquí otro código, cuya función es tener una idea de cómo hacer un menú dinámico donde el usuario pueda elegir la resolución de pantalla, de acuerdo a lo que soporte la tarjeta gráfica. Lo siguiente es lograr que al cambiar la información en pantalla se cambie la resolución en tiempo real, algo de tener muy en cuenta es que directX 7 tiene como límite la resolución de pantalla máxima 1024 por 1536, es decir si en un ordenador moderna, se escanea este modo gráfica y se intente ejecutar dará un error.

    Por tal motivo se recomiendo implementar un método que no escanee más, allá de ese limite. Un saludo.
    Código:
    Code by yue.
    
    Public domain 2011.
    
    Graphics 800,600,32,false.
    
    Local total_mg = countgfxmodes3d().
    
    Local profu_p[50].
    
    Local alto_p[50].
    
    Local ancho_p[50].
    =============================
    Local t_escape = 1 : local numero_mg = buscarmg(1024,768,32).
    
    Local x.
    
    For x = 1 todo numero_mg talto_p[x] = gfxmodeheight(x) tancho_p[x] = gfxmodewidth(x) tprofu_p[x] = gfxmodedepth(x).
    
    Next.
    While not keyhit(1) t tcls ttext 0,0, alto_p[numero_mg] + + ancho_p[numero_mg] + + profu_p[numero_mg] t t tapptitle numero_mg t tif keyhit(200), up t numero_mg = numero_mg +1 if numero_mg > total_mg numero_mg = total_mg t telseif keyhit(20, down t numero_mg = numero_mg - 1 t if numero_mg = 0 numero_mg = 1 tend if t.
    Wend.
    
    Function buscarmg(width%,height%,depth%) tlocal itermodes tfor itermodes=countgfxmodes3d() todo 1 step -1 if (gfxmodewidth(itermodes)=width)*(gfxmodeheight(itermodes)=height)*(gfxmodedepth(itermodes)=depth) then return itermodes tnext treturn false.
    
    End function.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  16. #616
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Hola. Bueno aquí un ejemplo de cómo cifrar datos.
    Código:
    Tmp$=fbk_cryptstring$(mi nombre es yue rexie,$e2cdf032). Print tmp$.
    
    Tmp2$=fbk_cryptstring$(tmp$,$e2cdf032).
    
    Print tmp2$.
    Waitkey.
    
    Function fbk_cryptstring$(source$,key) tfor c=1 todo len(source$) char$=char$+chr$(asc(mid$(source$,c,1)) XOR key) tnext treturn char$.
    
    End function.
    Saludos.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  17. #617
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Me han gustado mucho los códigos de Blitz3d, tanto es así que, los he comprendido y modificado y además los estoy usando en un proyecto que estoy haciendo.

    Sin embargo, les he hecho unas pequeñas modificaciones. Aunque básicamente hacen lo mismo, lo hacen de otra forma la cual permite aplicar el blur para cualquier resolución (menor a 1024 por 1024) y además aplicar camerazom en tiempo real y el blur se mantiene.

    Cualquier duda sobre el código o mejora estaré encantado de oírla.

    -- IMÁGENES ADJUNTAS --
    Archivos adjuntados Archivos adjuntados

  18. #618
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Hola aprendiz. Me alegre que los entiendas, te comento que descargue la prueba blur y se ve muy bien, una cosa es que debes implementar funciones en los modos gráficos para cada tarjeta gráfica, por ejemplo, en mi caso la tarjeta que uso ahora solo soporta 14 modos, en el ejemplo que me has pasado al legar al límite me da error, pues parece que busca un modo gráfico inexistente en mí PC.

    Otra cosa es a ver si me ayudas a verificar los modos gráficos de mi proyecto. http://download143.mediafire.com/ell...e75ye6/demo.7z.

    Y me pasas los modos gráficos que visualiza tu tarjeta.

    Aún no tengo implementado el sistema de cambio de modo gráfico el cual lo hago mediante endgraphics o clearworld.

    Espero me puedas colaborar.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  19. #619
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Hola blizt3d, a ver si puedes subir el código fuente para ejecutarlo desde el Blitz, si no poco puedo hacer. Os dejo aquí un juego antiguo que había echo al cual le he aplicado el blur, a ver qué os parece a mí me parece relajante, prueben todas sus opciones que son bastantes y cada configuración hace un efecto diferente y divertido. Si a alguien le interesa como lo hice, preguntenme y les publico el código, que lo disfruten.

    -- IMÁGENES ADJUNTAS --
    Archivos adjuntados Archivos adjuntados
    Última edición por aprendiz; 11-02-2011 a las 14:15

  20. #620
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Bueno solo quería una ayuda como tester. La idea era escanear los modos gráficos teniendo como máximo el modo 1536 x 1024 ya que este es el límite de directX 7, ya que, aunque los puede escanear al ejecutarlos daría error.

    Ahora bien, lo que estoy tratando antes de hacer algo es optimizar un menú con todas las respectivas opciones.

    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  21. #621
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    A, pues me detecta las resoluciones bien, hasta 1280 por 1024. Pero el juego no me funciona, no puedo andar con el coche ni nada.

    Para los que hacen efectos desde Particle Illusion o cualquier programa que te genere una colección de imágenes (frames) de efecto, les gustara este código.

    Lo que hace es convertir esa colección de imágenes a una sola imagen animada, lista para ser cargada desde Blitz con loadanimimage.

    Para usarlo compilen el código o ejecutenlo en la carpeta donde se encuentre las imágenes, el generara un.bmp animado para Blitz.
    Código:
    graphics3d 800,600,16,2.
    
    Type sprite_animado tfield ruta$.
    
    End type.
    
    Print animación inversa? (1 - 0).
    
    Reg_inverso = input ().
    
    If reg_inverso <> 1 and reg_inverso <> 0 then end.
    
    Crear_imagen_animada (reg_inverso).
    
    Convertir una colección de imágenes en una sola imagen animada.
    
    Function crear_imagen_animada (reg_inverso) truta$ = currentdir() tdir$ = readdir(ruta$) tarchivo1$ = tlocal sprite, sprite_animado[500] tfiltro1$ =.jpg tfiltro2$ =.bmp tfiltro3$ =.png twhile archivo1$ <> archivo1$ = nextfile$(dir$) ruta_archivo$ = ruta$ + archivo1$ ;filtrar imágenes ext1 = instr(archivo1$, filtro1$) ext2 = instr(archivo1$, filtro2$) ext3 = instr(archivo1$, filtro3$) ;contar archivos y obtener ancho y alto if archivo1$ <>. And archivo1$ <>. And archivo1$ <> and archivo1$ <> thumbs, db and (ext1 <> 0 or ext2 <> 0 or ext3 <> 0) then if reg_creado = 0 then imagen = loadimage (ruta_archivo$) ancho = imagewidth(imagen) alto = imageheight(imagen) freimage imagen reg_creado = 1 endif sprite[frame] = new sprite_animado sprite[frame]\ruta$ = ruta_archivo$ frame = frame + 1 endif twend t;crear textura animada tif frame <> 0 then tipo = 1 imagen = createimage (ancho * frame, alto, tipo) buffer_imagen = imagebuffer(imagen) setbuffer buffer_imagen if reg_inverso = 1 then x = ancho * (frame - 1) for dibujo = 0 todo frame -1 imagen2 = loadimage (sprite[dibujo]\ruta$) drawimage imagen2,x,0 freimage imagen2 delete sprite[dibujo] if reg_inverso = 0 then x = x + ancho if reg_inverso = 1 then x = x - Ancho next nombre$ = ancho + _ + alto + _ + frame +.bmp saveimage (imagen, nombre$) closedir dir tendif.
    
    End function

  22. #622
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Para saber el ascci y el scancode un sencillo programa. Solo pulsa las teclas.

    -- IMÁGENES ADJUNTAS --
    Archivos adjuntados Archivos adjuntados

  23. #623
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Hola bueno, la verdad el juego lo comencé de nuevo por problemas técnicos (no tengo ordenador) y el código almacenado en una usb se me jodido. http://download1057.mediafire.com/np...ma5u5/demo.rar.

    Este ya hace los respectivos cambios, lo que no sé es si funcione correctamente.

    Ya miro tu código. Saludos.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  24. #624
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Hola muy bueno el programa, una duda que me asalta es porque los ejecutables quedan tan grandes?
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  25. #625
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Pues la verdad siempre ocupan eso al compilar, será por la versión de Blitz. Haces algo especial para que te ocupen menos? O al compilar te quedan ya así? Que versión usas?
    Edito: viste el juego de gravedad puntos? Gracias a ti a quedado así, me sirvió y me está sirviendo mucho el código de blur.
    Última edición por aprendiz; 12-02-2011 a las 03:23

  26. #626
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Debe ser la versión yo uso la 1.109, y si acabo de mirar y es genial lo que has hecho, esos efectos son de 10.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  27. #627
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Bueno, esto debería ir aquí. https://www.foro3d.com/f113/sombras-Blitz3d-92498.html. Saludos.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  28. #628
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Más sobre sombras. Lo bueno de las sombras cartográficas es que permiten proyecciones de sombras en objetos animados, por el contrario en las sombras volumétricas si deseamos proyeciones animadas, las animaciones del modelo no deben ser por huesos si no por vertex.
    Código:
    Type shadow tfield obj tfield shwtexsize tfield shwtex tfield shwinit t.
    
    End type.
    
    Graphics3d 1024,768,32,2.
    
    Setbuffer backbuffer().
    
    Ambientlight 0,0,0.
    
    Global xscale#=1*(.8/2).
    
    Shadowcam=createcamera ().
    
    Cameraprojmode shadowcam,2.
    
    Camerafogmode shadowcam,1.
    
    Camerafogrange shadowcam,1,1.
    
    Camerafogcolor shadowcam,255,255,255.
    
    Hideentity shadowcam.
    
    Local Camera=createcamera (), cámara que visualiza el game.
    
    Positionentity Camera,0,5,-15.
    
    Scene=createsphere ().
    
    Local scene=createcube ().
    
    Scaleentity scene,20,1,20.
    
    Positionentity scene,0,-1,0.
    
    Local idscene. Shadow = sw_addobject(scene).
    
    Local caster=createcone (32).
    
    Positionentity caster, 0,3,0.
    
    Rotateentity caster,40,90,60.
    
    Scaleentity caster, 1,2,1.5.
    
    Updatenormals caster.
    
    Entitycolor caster,200,0,0.
    
    Local idcaster. Shadow = sw_addobject(caster).
    
    Local caster1=createsphere (32).
    
    Positionentity caster1,0,1,0.
    
    Entitycolor caster1,0,0,200.
    
    Updatenormals caster1.
    
    Local idcaster1. Shadow = sw_addobject(caster1).
    
    Local light=createlight(2).
    
    Local vis_light = createsphere (12, light).
    
    Entitycolor vis_light,0,200,0.
    
    Entityfx vis_light,1.
    
    Positionentity light,-20,8,-1.
    =================================
    While quit=0 t;===> tif keyhit(1) then quit=1 tif keyhit(203) then xscale#=xscale#*.9 tif keyhit(205) then xscale#=xscale#*1.1 t;===> tsw_resetshadow(), t;===> tmoveentity light,0,0,0.25:turnentity light,0,-1.25,0 tturnentity caster,0,0.5 tupdateworld tshadow_test1(shadowcam, Camera, light,idcaster,idscene) tshadow_test1(shadowcam, Camera, light,idcaster1,idscene) tshadow_test1(shadowcam, Camera, light,idcaster,idcaster1) trenderworld() t;===> ttext 500,10,xscale#: + xscale# ttext 500,20,zoom: +.06/xscale# ttext 300,30,hit <- & -> todo change the xscale# tflip t;===>.
    Wend.
    
    End.
    =====================================================
    Function shadow_test1(s_camera, g_camera, s_light, caster. Shadow, s_receiver. Shadow) t;===> t;stop t;===> thideentity g_camera tshowentity s_camera t;===> tif s_receiver\shwinit=true then cameraclsmode s_camera, false, true telse cameraclsmode s_camera, true, true s_receiver\shwinit = true tendif t;===> tlocal tsize = s_receiver\shwtexsize t;===> tcameraclscolor s_camera,255,255,255 tcamerazom s_camera.06/xscale# tcameraviewport s_camera,0,0,tsize,tsize tcameraprojmode s_camera,2 t;===> tsw_hideobject() t;===> tlocal s_caster=copyentity(caster\obj) tentityfx s_caster,1+8 tentitycolor s_caster,0,0,0 tshowentity s_caster t;===> tpositionentity s_camera,entityx(s_light,true),entityy(s_light,true),entityz(s_light,true) tpointentity s_camera, s_receiver\obj trenderworld() t;===> tcopyrect 0,0,tsize,tsize,0,0,backbuffer(),texturebuffer(s_receiver\shwtex) t;===> tlocal curobj = s_receiver\obj tfor s=1 todo countsurfaces(curobj) local surf=getsurface (curobj, s) for v=0 todo countvértices(surf)-1 tformpoint vertexx(surf), vertexy(surf), vertexz(surf), curobj, s_camera vertextexcords surf, (tformedx()/xscale#)/32+0.5,1-((tformedy()/xscale#)/32+.5) next tnext t;===> tsw_showobject() t;===> tshowentity g_camera thideentity s_camera tfreentity s_caster t;===> t.
    
    End function.
    
    Function sw_addobject. Shadow(obj) tlocal sw_size = 512 tlocal curmodel. Shadow = new shadow tcurmodel\obj = obj tcurmodel\shwinit = false tcurmodel\shwtex = createtexture (sw_size, sw_size, 16+32) tcurmodel\shwtexsize = sw_size tentitytexture curmodel\obj,curmodel\shwtex t;===> tsetbuffer(texturebuffer(curmodel\shwtex)) tclscolor 255,64,255 tcls tsetbuffer(backbuffer()) t;===> treturn curmodel.
    
    End function.
    
    Function sw_resetshadow() tlocal curmodel. Shadow tfor curmodel=each shadow curmodel\shwinit = false tnext.
    
    End function.
    
    Function sw_hideobject() tlocal curmodel. Shadow tfor curmodel=each shadow hideentity curmodel\obj tnext.
    
    End function.
    
    Function sw_showobject() tlocal curmodel. Shadow tfor curmodel=each shadow showentity curmodel\obj tnext.
    
    End function.
    Una de las cosas es que se puede implementar sombras con efecto blur manipulando el zoom de la cámara.

    Esto a veces a abrumador, pero si no deseas hacer esto desde cero se puede usar la lib gom puesta en unos mensaje más atrás. Saludos.
    Última edición por Yue; 12-02-2011 a las 16:32
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  29. #629
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Gracias Blitz3d, la verdad que me gustaría hacer una librería propia para sombras, pero no acabo de entender el manejo de vertextexcords en ese código (sigo pensando).

  30. #630
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Hola ese comando tiene como función establecer la coordenada de un vértice en una malla. Un automóvil va a 230 kilómetros por hora un circuito, para hacer pruebas de colisión, se detecta la normal con la que se ha estrellado el auto contra un muro de contención de acero, un bucle for next detecta las superficies del auto, uno los vértices, entonces de acuerdo a las normales con que colisiono se reposiciónan los vértices para emular latas retorcidas. Un saludo.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  31. #631
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Por ejemplo, tengo un escenario desde giles en le que tengo dos texturas. En la capa 1 (tierra) en la capa 3 (hierba), en la capa 2 por defecto del giles está el mapa de luz.

    He probado el código de sombra ortográficas y solo funciona estableciendo:
    Vertextexcords superficie,índice, u#, #[,w#][, cord_set] donde cord_set = 0.

    Al hacer esto lo que ocurre es que la sombra se aplica (más o menos bien) pero me modifica las coordenadas UV de la textura aplicada desde el giles. He estado buscando por la página oficial y el aprametro cord_set permite diferenciar a que capa de textura aplicas el comando. En mi caso necesito aplicar el comando a la capa 4, ya que en la 1,2,3 están las texturas de giles. Sin embargo, cuando pongo cord_set = 3 (capa1 = 0, capa2 = 1, capa3 = 2, capa4 = 3), no funciona la sombra, la textura se aplica, pero no lo (*.ace) bien. No sé si será un fallo de Blitz o quizás la exportación del giles.

  32. #632
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Si no estoy mal giles tiene la opción de colapsar las texturas en una sola, por lo tanto solo se usarían dos capas en el Mesh, sobre las coordenadas de los verttices es que son sombras dinámicas y es para que la textura se mueva correctamente cuando se mueve el ente que proyecta la sombra.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  33. #633
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Otra cuestión es que la capa de la sombra siempre debe quedar encima, es la última. Bueno otro aporte este pequeño manual sobre el poder de los types en Blitz3d. Algo, así como c. Se trata de entender un poco la programación orientada a objetos. Lo jodido es que me llego en ingles. http://www.mediafire.com/?Idr7qqzrbwj2291.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  34. #634
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Sobre el comando vertexords solo tiene estos parámetros, [superficie],[x#],[y#],[z#], el otro es advertex, pero eso es cuando se crea mallas en tiempo real en Blitz3d.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  35. #635
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Ya ya, el descabezado soy yo, si es este comando. http://www.blitzBasic.com/b3ddocs/co...rds&ref=3d_a-z.

    El otro es vertexcords lo siento. Ahora me entero de eso, ya le estoy echando un vistazo.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  36. #636
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Ok ya plante esa cuestión en el foro: posiblemente nos ayude a entender ese comando a cabalidad. http://Blitz Basic.com/community/men...hp?Topic=93806.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  37. #637
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Pues gracias, ya que es algo confuso el comando. A ver si puedes decirme cómo hago para fusionar las texturas en una solo desde giles, sería de gran ayuda, que no encuentro la opción. Gracias.

  38. #638
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Solucinado. Cuando exportas desde giles un modelo con un mapa de luz, el mapa de luz es asignado como una textura de sombras (por defecto en la capa 1). En la capa 0 estaría la textura que le asignas al modelo, bien, cuando usas el comando vertextexcords superficie,índice, u#, #[,w#][, cord_set] poniendo cord_set = 0, estas modificando las coordenadas UV de la textura que tú asignas (ladrillos, madera, etc), cuando pones cord_set = 1 modificas las coordenadas UV de la capa de textura asignada a la sombra, en este ejemplo, la capa 1. Pero sin embargo, para que surja efecto en la modificación (cord_set = 1) debes establecer otro comando : texturécords textura 1.

    Si lo estableces a 0, aunque cord_set = 1, no tendrá efecto. Con esto se soluciona el problema y la duda que tenía. Sin embargo, surge otro problema,xd, y es que, al establecer sombras ortográficas mediante el uso de vertextexcords estableciendo cord_set = 1 y estableciendo texturécords a 1, se pierde el mapa de luz creado en giles, y se usa como mapa de luz el obtenido por el código de sombras ortográficas.

    Edito: en resumen, hoy lo veo más claro. El parámetro cord_set = 1 modifica las coordenadas de todas las texturas establecidas como texturécords textura 1, cord_set = 0 modificas las coordenadas de todas las texturas establecidas como texturécords textura 0 (por defecto).
    Última edición por aprendiz; 14-02-2011 a las 13:48

  39. #639
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Hola, a ver si alguien me puede colaborar probando esto. Lo que necesito verificar es:
    -Cambio de resoluciones de pantalla.

    Cambio en detalle de la sombra.

    Cambio en el brillo de la pantalla.

    Aceleración para rendimiento óptimo.

    Agradecería la ayuda y todos los datos posibles. http://download1129.mediafire.com/ks...1lxy0/demo.rar.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  40. #640
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Hola, lo he probado y no note ningún error. Pero tengo varias preguntas. La primera es si la sombra la implementas ortográfica o volumétrica. También como consigues el cambio de gamma (es con ambienlight ==?) y por último a ver si podías subir el código una de las (*.dll) ya que se como crear librerías.dll, pero no tengo de dónde sacar información de los comandos y me gustaría ver un código en C++ para poder aprender. Gracias.

  41. #641
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Hola aprendiz no he podido responder antes es que como he mencionado no tengo internet ni ordenador en casa, por lo que entro aquí cada vez que el bolsillo permite.

    Así que estoy contra el reloj.

    Son cartográficas.

    La gamma se realiza mediante el comando setgamme y updategamma, esto es útil para hacer filtros como de visión nocturna, o poner la pantalla en blanco y negro cuando el personaje muere.

    Bueno este este tema te lo quedo debiendo, la idea de hacer una (*.dll) es expandier la funcionalidad de Blitz3d, permitiendo migrar de direcx7 a 8 10 o yo qué sé, esto se logra mediante viusal Studio.net con el SDK respectivo, por ejemplo, si usas el SDK de DirectX 8.1, se puede hacer llamadas a la lib de DirectX 8.1.

    Ahora bien de manera somera, lo que se hace son funciones, estas funciones se deben menter en archivos DCL, que luego se meten en userlib para que Blitz3d reconozca estos comandos, ya luego cuando regrese te mando une jemplo.

    Por ahora mira mi web y me dices como va el nuevo demo. http://www.iris3d.tk. Un saludo, se acaba el tiempo.

    Otra cosa es que he sido invitado a campus party 2011 Colombia, y no tengo ordenador eso me da risa.

    Adiós pues.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  42. #642
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Muchas gracias, no conocía el comando setgamma ni uptdategamma, muy útiles. Lo de las (*.dll) yo se programar en C++ pero lo más que llegue a hacer para el Blitz es una función que sume dos números o multiplique, (xd). Lo que quería saber es de dónde sacar los comandos del DirectX para programar una buena.dll.

  43. #643
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Hola a los tiempos. En estos días me paso por aquí, para dejar un tutorial de mi autoría muy básico de Blitz3d. Venga que no soy escritor, ni mucho menos, pero espero sea de utilidad para alguien.



    -- IMÁGENES ADJUNTAS --
    Archivos adjuntados Archivos adjuntados
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  44. #644
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Blitzbasic 3d

    Oye los comandos los sacas haciendo llamadas a las Api de Windows, eso lo haces instalado un SDK en visual.net, por ejemplo, un SDK para trabajar con directx9c, todo lo que hagas lo encapsulas en funciones que son pasadas de la (*.dll) Blitz.
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  45. #645
    Fecha de ingreso
    Jan 2005
    Mensajes
    172

    Blitzbasic 3d

    Muy interesante tu aporte. En cuanto pueda, lo echo un ojo.
    ¿Para cuando el Soft Libre,
    hará un programa de cad
    y que a ser posible,
    tenga calidad.
    Y que ya no sea imprescindible,
    usar AutoCad?.
    (Cervantes revolviéndose en la tumba).

  46. #646
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Muy bueno el manual, es bonito ver cómo alguien intenta hacer entender lo que ama. viva la programación.

  47. #647
    Fecha de ingreso
    Nov 2006
    Mensajes
    106

    Blitzbasic 3d

    Muy buenas a ver si alguien o entre todos me podéis ayudar a mejorar este código, pongo el código y los archivos para que los descargueis. Gracias de antemano.
    Código:
    Graphics3d 800,600,32,2.
    
    Setbuffer backbuffer().
    
    Movemouse graphicswidth()/2.8, graphicsheight()/2.
    
    Hidepointer.
    
    Player = createpivot().
    
    Camera=createcamera (player).
    
    Cameraclscolor Camera, 0,162,232.
    
    Camerarange Camera,0.1,10000.
    
    Light=createlight().
    
    Rotateentity light,90,0,0.
    
    Cursor=loadimage (puntero1.png).
    
    Plane=createplane ().
    
    Grass_tex=loadtexture (textura_suelo_piedra.jpg).
    
    Entitytexture plane, grass_tex.
    
    Cerdo=loadanimmesh(asalto, b3d).
    
    Scaleentity cerdo,0.01,0.01,0.01.
    
    Rotateentity cerdo,0,180,0.
    
    Cerdo_hijo=findchild (cerdo, cylinder01).
    
    Extractanimseq(cerdo_hijo,1,10) ;anim seque 1: frames 0.10 are parado.
    
    Extractanimseq(cerdo_hijo,11,20) ;anim seque 2: frames 11.21 are correr.
    
    Animate cerdo_hijo,2. 020, 1.
    
    Cerdo_spine1 = findchild (cerdo, bip01 spine1).
    
    Cerdo_arma = findchild (cerdo, jamon_asalto).
    
    Entityparent cerdo_arma, cerdo_spine1.
    While not keydown(1) tif keydown(32)=true then Turn Entity Camera,0,-1,0 tif keydown(30)=true then Turn Entity Camera,0,1,0 tif keydown(32)=true then Turn Entity cerdo,0,-1,0 tif keydown(30)=true then Turn Entity cerdo,0,1,0 tif keydown(31)=true then if animseq(cerdo_hijo)=1 then t animate cerdo_hijo,1,0.2,2 endif moveentity cerdo,0,0,0.04 telseif keydown(17)=true then t if animseq(cerdo_hijo)=1 then t animate cerdo_hijo,1,0.2,2 endif moveentity cerdo,0,0,-0.04 telse if animseq(cerdo_hijo)=2 or animseq(cerdo_hijo)=3 then t animate cerdo_hijo, 2.020,1 endif tendif tmxs#=mxs# + mousexsped() tmys#=mys# + mouseysped() tif mxs# > 45 then mxs# = 45 tif mxs# < -45 then mxs# = -45 tif mys# > 30 then mys# = 30 tif mys# < -30 then mys# = -30 trotateentity cerdo_spine1, mxs#, mys#,0 tpositionentity Camera, entityx(cerdo),entityy(cerdo),entityz(cerdo) tmoveentity Camera,0.5,1,-1 trenderworld tupdateworld tdrawimage cursor,mousex(),mousey() ttext 0,0, para mover y girar son w,a,s,d y el ratón para apuntar o eso intento hacer tflip t.
    Wend.
    
    End.
    -- IMÁGENES ADJUNTAS --
    Archivos adjuntados Archivos adjuntados

  48. #648
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Hola Damian, lo que querías conseguir es con cameraproject, el problema es que tú modelo animado tiene las coordenadas cambiadas, y aún encima al animarlo estas coordenadas no son reales. Por ello, o bien pones un join (hueso) en la punta del cañón del arma y luego proyectas sus coordenadas a la pantalla, o haces lo que hice yo, -> una animación manual echa con funciones. Luego todo lo que queda hacer es trabajo las coordenadas a la pantalla 2d y dibujar el cursor en ellas, por cierto, la más mínima duda que tengas del código te la explicaré sin ningún problema.

    -- IMÁGENES ADJUNTAS --
    Archivos adjuntados Archivos adjuntados

  49. #649
    Fecha de ingreso
    Nov 2006
    Mensajes
    106

    Blitzbasic 3d

    Buenas aprendiz, antes de nada gracias por el código, lo descargo y me pongo a investigarlo, en verdad la programación no es mi fuerte, lo mío es más el diseño gráfico.

  50. #650
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Blitzbasic 3d

    Bueno no pasa nada, el código es imprescindible en un juego al igual que el diseño. Si investigas y aprendes más código, podrás llegar a crear cualquier juego.

Página 13 de 14 PrimerPrimer ... 311121314 ÚltimoÚltimo

Temas similares

  1. 3ds Max Blitz basic colisiones
    Por aprendiz en el foro Videojuegos
    Respuestas: 32
    : 09-02-2018, 22:25
  2. 3ds Max Tutores para crear videojuejos con Blitz basic 3d
    Por Cibertronic en el foro Videojuegos
    Respuestas: 0
    : 25-09-2014, 05:20
  3. 3ds Max Exportador de Blender a Blitz basic 3d
    Por Sadyk en el foro Videojuegos
    Respuestas: 1
    : 14-03-2009, 23:10
  4. 3ds Max Problema con collisions en Blitz basic
    Por Alexs1888 en el foro Videojuegos
    Respuestas: 4
    : 23-08-2008, 20:40
  5. Plugin de 3ds Max 8 a Blitz 3d
    Por gersin en el foro Plugins y Scripts
    Respuestas: 3
    : 25-01-2008, 13:21

Etiquetas para este tema