Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Proyecto de Grafico

Iniciado por Jamil, 16 de Mayo de 2007, 05:13:38 PM

« anterior - próximo »

Jamil

Necesito que me digan como hacer una pista de carrera con autos corriendo y varias cámaras en cualquier lenguaje de programacion o me indiquen el link para descargarlo.

1cacalvo

Toma ya!!!!

Casi na, y lo prefieres en prosa o en verso????

[EX3]

No se supone que los foros son para consultar dudas? Donde esta la duda?
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

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

josepzin

Cita de: "1cacalvo"Toma ya!!!!

Casi na, y lo prefieres en prosa o en verso????
:lol:  :lol:  :lol:

Hans

Uff para eso primero tienes que hacer un mmorpg, sino lo llevas chungo :(




edit.- Si realmente quieres hacer algo así te describo cómo hacerlo en pasos sencillos y reales:

1- Te bajas Ogre3D ( http://www.ogre3d.org ), lo instalas, instalas todos sus requisitos y compilas los ejemplos para ver si van.
2- Te bajas los plugins de 3dsMax y 3dsMax, instalas los plugins.
3- Creas un circuito y unos coches (pueden ser repetidos) en Max y los exportas a ogre.
4- Cargas el circuito y los coches o coche en Ogre.
5- Creas una spline que recorra el circuito y haces que los coches la sigan de manera que siempre estén en la tangente de la curva (así se adecúan a la misma). Puedes consultar el ejemplo de Fresnel de Ogre y ver cómo actúan los peces para hacerte una idea.
6- Sitúas varias cámaras en Ogre y haces alternancia entre ellas con una tecla (por ejemplo la C). Tb puedes colocar una cámara agarrada al nodo de cada coche y hacer que mire hacia delante del mismo siempre. Así tienes cámaras móviles en cada coche.


Para hacer esto necesitas sobre todo C++ y saber programar un mínimo muy mínimo.


Pero si quieres, y ahora que se ha puesto de moda, yo te lo hago por 200 € :D

RobiHm

Bueno he puesto unas tres cámaras y te he metido en multiplayer hasta cuatro jugadores...
Lo he hecho en .NET y también en C++.
Si tienes algun problema dimelo y te lo apaño.




Que lo disfrutes!!

:roll:
Web : Indómita
Blog : MiBlog
Evobas : Evobas
Kobox : Kobox

Hans

Estaba aquí sin hacer nada importante y teniendo en cuenta que en estas épocas es cuando más ganas tengo de hacer cosas raras estoy aprovechando tu curiosa petición para hacer un juego de coches rapidito y que de paso sirva como tutorial para gente como tú :D

Primeras capturas del "juego", para mañana con suerte hasta se puede correr con el coche xDDDDD













pd.- Creo que es la primera vez que pongo un coche de verdad en un juego y no ha salido tan mal :mrgreen:

marcode

Cita de: "Jamil"Necesito que me digan como hacer una pista de carrera con autos corriendo y varias cámaras en cualquier lenguaje de programacion o me indiquen el link para descargarlo.
Toma éste, está en QuickBASIC y lo hice en el año 90, lo malo es que no tiene más que una cámara.



SCREEN 12
DIM coche(1 TO 110, 24), coche2(1 TO 110, 24), coche3(1 TO 110, 24), borra(1 TO 110), bandera(1 TO 100)
DIM fx(24), fy(24), fx2(24), fy2(24), fx3(24), fy3(24), panta(50), pantx(50), panty(50)
DIM jxd(24), jyd(24), jxi(24), jyi(24), jxd2(24), jyd2(24), jxi2(24), jyi2(24), jxd3(24), jyd3(24), jxi3(24), jyi3(24)
GOSUB variables
GOSUB dibujos: CLS
GOSUB pantalla
inicio:
 a$ = INKEY$
 SELECT CASE a$
  CASE "z": END
  CASE "o": IF jug(1) = 1 THEN fi = -1
  CASE "p": IF jug(1) = 1 THEN fi = 1
  CASE "a": veloz = veloz + acel * 4
  CASE "e": IF jug(2) = 1 THEN fi2 = -1
  CASE "r": IF jug(2) = 1 THEN fi2 = 1
END SELECT
  i = i + fi: IF i > 24 THEN i = 1 ELSE IF i < 1 THEN i = 24
  i2 = i2 + fi2: IF i2 > 24 THEN i2 = 1 ELSE IF i2 < 1 THEN i2 = 24
  i3 = i3 + fi3: IF i3 > 24 THEN i3 = 1 ELSE IF i3 < 1 THEN i3 = 24
  fi = 0: fi2 = 0: fi3 = 0
  xfx = x + 11 + fx(i) * 3: yfy = y + 11 + fy(i) * 3: xfx2 = x2 + 11 + fx2(i2) * 3: yfy2 = y2 + 11 + fy2(i2) * 3: xfx2a = x2 + 11 + fx2(i2) * 10: yfy2a = y2 + 12 + fy2(i2) * 10: xfx3 = x3 + 11 + fx3(i3) * 3: yfy3 = y3 + 11 + fy3(i3) * 3: xfx3a = x3 + 11 + fx3(i3) * 10: yfy3a = y3 + 12 + fy3(i3) * 10
  IF POINT(xfx, yfy) = 8 OR POINT(x + 11 + jxd(i), y + 11 + jyd(i)) = 8 OR POINT(x + 11 + jxi(i), y + 11 + jyi(i)) = 8 THEN PUT (x, y), borra, PSET: x = x - fx(i): y = y - fy(i): SOUND 40, .1: veloz = 6: fi = INT(RND * 4 - 2): d = d + 1: sp = sp + .02: GOSUB cartel.dat
  IF POINT(xfx2, yfy2) = 8 OR POINT(x2 + 11 + jxd2(i2), y2 + 11 + jyd2(i2)) = 8 OR POINT(x2 + 11 + jxi2(i2), y2 + 11 + jyi2(i2)) = 8 THEN PUT (x2, y2), borra, PSET: x2 = x2 - fx2(i2): y2 = y2 - fy2(i2): SOUND 40, .1: veloz2 = 6: fi2 = INT(RND * 4 - 2): d2 = d2 + 1: sp2 = sp2 + .02: GOSUB cartel.dat
  IF POINT(xfx3, yfy3) = 8 OR POINT(x3 + 11 + jxd3(i3), y3 + 11 + jyd3(i3)) = 8 OR POINT(x3 + 11 + jxi3(i3), y3 + 11 + jyi3(i3)) = 8 THEN PUT (x3, y3), borra, PSET: x3 = x3 - fx3(i3): y3 = y3 - fy3(i3): SOUND 40, .1: veloz3 = 6: fi3 = INT(RND * 4 - 2): d3 = d3 + 1: sp3 = sp3 + .02: GOSUB cartel.dat
  IF jug(2) = 0 THEN GOSUB automatic2
  IF jug(3) = 0 THEN GOSUB automatic3
  IF anda = 0 THEN x = x + fx(i) / veloz: y = y + fy(i) / veloz
  IF anda2 = 0 THEN x2 = x2 + fx2(i2) / veloz2: y2 = y2 + fy2(i2) / veloz2
  IF anda3 = 0 THEN x3 = x3 + fx3(i3) / veloz3: y3 = y3 + fy3(i3) / veloz3
  PSET (30, 298), 15: DRAW "r80d2l80"
   PUT (x, y), coche(1, i), PSET: PUT (x2, y2), coche2(1, i2), PSET: PUT (x3, y3), coche3(1, i3), PSET
  veloz = veloz - acel: IF veloz < sp THEN veloz = sp
  veloz2 = veloz2 - acel2: IF veloz2 < sp2 THEN veloz2 = sp2
  veloz3 = veloz3 - acel3: IF veloz3 < sp3 THEN veloz3 = sp3
  IF x > 500 AND x < 600 AND y > 280 AND y < 350 THEN lap = 1
  IF x2 > 500 AND x2 < 600 AND y2 > 280 AND y < 350 THEN lap = 1
  IF lap = 1 THEN IF x > 20 AND x < 100 AND y < 300 THEN lap = 0: v = v + 1: GOSUB cartel.dat: IF v = 3 THEN SOUND 200, 3: PUT (160, 230), bandera, PSET
  IF lap2 = 2 THEN IF x2 > 20 AND x2 < 100 AND y2 < 300 THEN lap = 0: v2 = v2 + 1: v2 = v2 + 1: GOSUB cartel.dat: SOUND 200, 3: IF v2 = 3 THEN PUT (160, 230), bandera, PSET
  GOTO inicio
  END
automatic2:
  IF POINT(xfx2a, yfy2a) = 8 THEN GOSUB tuerce2: RETURN
  IF x2 > 300 AND x2 < 400 AND y2 > 100 AND y2 < 160 THEN i2 = 19
  IF x2 > 380 AND x2 < 480 AND y2 > 210 AND y2 < 230 THEN i2 = 7
  IF x2 > 510 AND x2 < 530 AND y2 > 240 AND y2 < 340 THEN i2 = 13
  IF x2 > 270 AND x2 < 330 AND y2 > 340 AND y2 < 360 THEN i2 = 7
 RETURN
tuerce2:
  iaux = i2: iaux = iaux - 2: IF iaux < 1 THEN iaux = 24: IF iaux > 24 THEN iaux = 1
  IF POINT(x2 + 11 + jxd2(iaux) * 3.2, y2 + 11 + jyd2(iaux) * 3.2) = 8 THEN fi2 = 2
  IF POINT(x2 + 11 + jxi2(iaux) * 3.2, y2 + 11 + jyi2(iaux) * 3.2) = 8 THEN fi2 = -2
 RETURN
automatic3:
  IF POINT(xfx3a, yfy3a) = 8 THEN GOSUB tuerce3: RETURN
  IF x3 > 300 AND x3 < 400 AND y3 > 100 AND y3 < 160 THEN i3 = 19
  IF x3 > 380 AND x3 < 480 AND y3 > 210 AND y3 < 240 THEN i3 = 7
  IF x3 > 510 AND x3 < 530 AND y3 > 240 AND y3 < 340 THEN i3 = 13
  IF x3 > 270 AND x3 < 330 AND y3 > 340 AND y3 < 360 THEN i3 = 7
 RETURN
tuerce3:
  iaux = i3: iaux = iaux - 2: IF iaux < 1 THEN iaux = 24: IF iaux > 24 THEN iaux = 1
  IF POINT(x3 + 11 + jxd3(iaux) * 3.2, y3 + 11 + jyd3(iaux) * 3.2) = 8 THEN fi3 = 2
  IF POINT(x3 + 11 + jxi3(iaux) * 3.2, y3 + 11 + jyi3(iaux) * 3.2) = 8 THEN fi3 = -2
 RETURN
variables:
   jug(1) = 1: jug(2) = 0: jug(3) = 0
   sp = 1.35: sp2 = 1.38: sp3 = 1.38: acel = .19: acel2 = .19: acel3 = .18
   i = 19: x = 35: y = 300: xfx = 0: yfy = 0: a = 0: i2 = 19: x2 = 59: y2 = 298: xfx2 = 0: yfy2 = 0: i3 = 19: x3 = 83: y3 = 298: xfx3 = 0: yfy3 = 0
   veloz = 10: veloz2 = 10: veloz3 = 10
 RESTORE datos.auto
   FOR n = 1 TO 24: READ fx(n), fy(n): NEXT
 RESTORE datos.auto
   FOR n = 1 TO 24: READ fx2(n), fy2(n): NEXT
 RESTORE datos.auto
   FOR n = 1 TO 24: READ fx3(n), fy3(n): NEXT
  RETURN
datos.auto: DATA 7,0,   7,2,6,4,      5,5,    4,6,2,7,  0,7,  -2,7,-4,6, -5,5,   -6,4,-7,2,  -7,0, -7,-2,-6,-4,  -5,-5,  -4,-6,-2,-7,  0,-7,  2,-7,4,-6,    5,-5,   6,-4,7,-2
dibujos:
   FOR n = 1 TO 24
    CIRCLE (110, 110), 5, 9: PAINT (110, 110), 1, 9
    CIRCLE (110 + 7 * COS(a), 110 + 7 * SIN(a)), 4, 8: PAINT (110 + 7 * COS(a), 110 + 7 * SIN(a)), 7, 8
    CIRCLE (110 + 4 * COS(a), 110 + 4 * SIN(a)), 4, 9: PAINT (110 + 4 * COS(a), 110 + 4 * SIN(a)), 8, 9
    CIRCLE (110, 110), 2, 8
    jxd(n) = 17 * COS(a - .9): jyd(n) = 17 * SIN(a - .9)
    jxi(n) = 17 * COS(a + .9): jyi(n) = 17 * SIN(a + .9)
    PSET (110 + 8 * COS(a - 1), 110 + 8 * SIN(a - 1)), 7: PSET (110 + 8 * COS(a + 1), 110 + 8 * SIN(a + 1)), 7
    PSET (110 + 7 * COS(a - 1.8), 110 + 7 * SIN(a - 1.7)), 7: PSET (110 + 7 * COS(a + 1.8), 110 + 7 * SIN(a + 1.8)), 7
    GET (99, 99)-(121, 121), coche(1, n)
    a = a + .261: LOCATE 7, 13: PRINT "    ": LOCATE 8, 13: PRINT "    "
   NEXT
    a = 0
   FOR n = 1 TO 24
    CIRCLE (212, 110), 5, 12: PAINT (212, 110), 4, 12
    CIRCLE (212 + 7 * COS(a), 110 + 7 * SIN(a)), 4, 8: PAINT (212 + 7 * COS(a), 110 + 7 * SIN(a)), 7, 8
    CIRCLE (212 + 4 * COS(a), 110 + 4 * SIN(a)), 4, 9: PAINT (212 + 4 * COS(a), 110 + 4 * SIN(a)), 8, 9
    CIRCLE (212, 110), 2, 8
    jxd2(n) = 17 * COS(a - .9): jyd2(n) = 17 * SIN(a - .9)
    jxi2(n) = 17 * COS(a + .9): jyi2(n) = 17 * SIN(a + .9)
    PSET (212 + 8 * COS(a - 1), 110 + 8 * SIN(a - 1)), 7: PSET (212 + 8 * COS(a + 1), 110 + 8 * SIN(a + 1)), 7
    PSET (212 + 7 * COS(a - 1.8), 110 + 7 * SIN(a - 1.7)), 7: PSET (212 + 7 * COS(a + 1.8), 110 + 7 * SIN(a + 1.8)), 7
    GET (201, 99)-(223, 121), coche2(1, n)
    a = a + .261: LOCATE 7, 26: PRINT "    ": LOCATE 8, 26: PRINT "    "
   NEXT
    a = 0
   FOR n = 1 TO 24
    CIRCLE (312, 110), 5, 10: PAINT (312, 110), 2, 10
    CIRCLE (312 + 7 * COS(a), 110 + 7 * SIN(a)), 4, 8: PAINT (312 + 7 * COS(a), 110 + 7 * SIN(a)), 7, 8
    CIRCLE (312 + 4 * COS(a), 110 + 4 * SIN(a)), 4, 9: PAINT (312 + 4 * COS(a), 110 + 4 * SIN(a)), 8, 9
    CIRCLE (312, 110), 2, 8
    jxd3(n) = 17 * COS(a - .9): jyd3(n) = 17 * SIN(a - .9)
    jxi3(n) = 17 * COS(a + .9): jyi3(n) = 17 * SIN(a + .9)
    PSET (312 + 8 * COS(a - 1), 110 + 8 * SIN(a - 1)), 7: PSET (312 + 8 * COS(a + 1), 110 + 8 * SIN(a + 1)), 7
    PSET (312 + 7 * COS(a - 1.8), 110 + 7 * SIN(a - 1.7)), 7: PSET (312 + 7 * COS(a + 1.8), 110 + 7 * SIN(a + 1.8)), 7
    GET (301, 99)-(323, 121), coche3(1, n)
    a = a + .261: LOCATE 7, 38: PRINT "     ": LOCATE 8, 38: PRINT "     "
   NEXT
    GET (299, 199)-(321, 221), borra
    PSET (399, 99), 8: DRAW "r19d13l19u13"
    FOR n = 0 TO 6 STEP 6: FOR t = 0 TO 12 STEP 6
    PSET (400 + t, 100 + n): DRAW "r2d1l2d1r2f1r2d1l2d1r2"
    NEXT t, n
    GET (399, 99)-(418, 119), bandera
RETURN
pantalla:
    RESTORE pista
    PAINT (1, 1), 8
     GOSUB carretera
    PAINT (80, 80), 0, 15
     GOSUB parrilla
     GOSUB cartel
     GOSUB semaforo
  RETURN
carretera:
    READ pant: IF pant = 0 THEN RETURN
    READ px, py
    ON pant GOSUB rh, rv, csi, cid, cii, csd, cruce
  GOTO carretera
pista: DATA 1,450,255,1,470,255
      DATA 1,490,255,4,510,355,6,510,355,1,490,375,1,470,375
      DATA 3,470,355,2,370,336,5,470,255,1,490,155,1,470,155
      DATA 6,510,135,4,510,135,1,490,35, 1,470,35, 1,450,35, 1,430,35, 1,410,35, 1,390,35
      DATA 5,390,135,6,270,135,1,250,155,3,250,135,4,130,135,5,130,135
      DATA 2,30,135, 2,30,155, 2,30,175, 2,30,195, 2,30,215, 2,30,235, 2,30,255
      DATA 2,30,260, 2,30,280, 2,30,300, 2,30,320, 2,30,340
      DATA 3,130,355,1,130,375,1,150,375,1,170,375,1,190,375,1,210,375
      DATA 6,230,355,5,350,355,1,350,255,0
rh:  PSET (px, py): DRAW "r20Bd80l20": RETURN
rv:  PSET (px, py): DRAW "d20Br80u20": RETURN
csi: CIRCLE (px, py), 100, , 3.14, 4.72: CIRCLE (px, py), 20, , 3.14, 4.72: RETURN
csd: CIRCLE (px, py), 100, , 4.72, 6.28: CIRCLE (px, py), 20, , 4.72, 6.28: RETURN
cii: CIRCLE (px, py), 100, , 1.57, 3.14: CIRCLE (px, py), 20, , 1.57, 3.14: RETURN
cid: CIRCLE (px, py), 100, , 0, 1.58: CIRCLE (px, py), 20, , 0, 1.58: RETURN
cruce: PSET (px, py): DRAW "d20l20Bd80r20d20Br80u20r20Bu80l20u20": RETURN
parrilla:
   PUT (x, y), coche(1, i), PSET: PUT (x2, y2), coche2(1, i2), PSET: PUT (x3, y3), coche3(1, i3), PSET
   PSET (30, 298), 15: DRAW "r80d2l80"
  RETURN
cartel:
   PSET (134, 247), 7: DRAW "r106d48l106u48": PAINT (140, 253), 0, 7
   FOR n = 1 TO 41 STEP 40
    PSET (170, 250 + n), 1: DRAW "C1r23 C4r23 c2r23 u1 l24 C4l23 C1l22"
   NEXT
  RETURN
cartel.dat:
   LOCATE 17, 19: PRINT "Vta"; v: LOCATE 17, 25: PRINT v2: LOCATE 17, 28: PRINT v3
   LOCATE 18, 19: PRINT "Dmg"; d: LOCATE 18, 25: PRINT d2: LOCATE 18, 28: PRINT d3
  RETURN
semaforo:
   PSET (150, 300), 7: DRAW "r80d20l80u20": PAINT (151, 301), 0, 7
   scI(1) = 4: scI(2) = 6: scI(3) = 2
   FOR n = 1 TO 3
    CIRCLE (143 + 24 * n, 310), 7, scI(n): PAINT (143 + 24 * n, 310), scI(n), scI(n)
   NEXT
   sc(1) = 12: sc(2) = 14: sc(3) = 10
   f$ = CHR$(220)
   FOR n = 1 TO 3:
    CIRCLE (143 + 24 * n, 310), 7, sc(n): PAINT (143 + 24 * n, 310), sc(n), sc(n)
    IF n = 3 THEN SOUND 700, 10 ELSE SOUND 400, 7: FOR t = 1 TO 3000: NEXT t: PAINT (142 + 24 * n, 310), scI(n), 0
   NEXT n
  RETURN

size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

tamat

no me lo digas, es para el proyecto de un modulo de informatica
Por un stratos menos tenso

sés

:shock: RobiHm, me pide una DLL (juegodecoches.dll) que no encuentro, ¿la puedes incluir?
Soy indeciso... ¿o no?

pablocomics

Cita de: "RobiHm"Bueno he puesto unas tres cámaras y te he metido en multiplayer hasta cuatro jugadores...
Lo he hecho en .NET y también en C++.
Si tienes algun problema dimelo y te lo apaño.




Que lo disfrutes!!

:roll:


Eres mi héroe!!!!!!! Eso es eficacia programil XD Has pensado tambien en hacer un juego de coches MMMMMorg usando esas cámaras y coches :D Es que está tan de moda..... :D
br> Hasta luego<br>                       Pablo<br>    (URL--><a href='http://www.pablocomics.com' target='_blank'>www.pablocomics.com</a>)<br>    (DEVIANT--><a href='http://pablocomics.deviantart.com/'; target='_blank'>Deviant site)</a>

ethernet

Cita de: "Hans"
Primeras capturas del "juego", para mañana con suerte hasta se puede correr con el coche xDDDDD

El ambient oclusion de debajo del coche como lo calculas?

yens

Cita de: "RobiHm"Bueno he puesto unas tres cámaras y te he metido en multiplayer hasta cuatro jugadores...
Lo he hecho en .NET y también en C++.
Si tienes algun problema dimelo y te lo apaño.




Que lo disfrutes!!

:roll:

Se ve un poco soso el apartado gráfico, pero bueno supongo que será por las prisas de hacerlo en poco tiempo.

sés

Cita de: "yEnS"Se ve un poco soso el apartado gráfico, pero bueno supongo que será por las prisas de hacerlo en poco tiempo.
Y creo que una de las cámara no tiene carrete. Pónselo y añade esa DLL, plis.
Soy indeciso... ¿o no?

RobiHm

CitarSe ve un poco soso el apartado gráfico, pero bueno supongo que será por las prisas de hacerlo en poco tiempo.

Añadidos nuevos efectos, los coches arden e incluso chocan, queman neumático y HASTA SE HACE DE NOCHE oeoeoeoeoeo!!!


CitarY creo que una de las cámara no tiene carrete. Pónselo y añade esa DLL, plis.

Añadida la DLL y flashes a las megacámaras...




ÉSto puede ser un éxito de ventas!!!
Web : Indómita
Blog : MiBlog
Evobas : Evobas
Kobox : Kobox






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.