locked
Juego de baloncesto en 2d????? RRS feed

  • Pregunta

  • Muy buenas, me gustaria opiniones para ver como hacer un juego de baloncesto al estilo NBA JAM(os acordais), ya he empezado tengo algunos sprites los menus funcionando y ya quiero ponerme con el juego en si.

    Mi duda es la siguiente, el juego en principio es un juego en 2d con sprites y la cancha la quiero hacer a base de tiles, si os acordais de NBA JAm los jugadores hacin scroll horizontal y vertical(ejes X e Y) cosa que no mepreocupa pero me preocupa una cosa, los jugadores deben de saltar(eje Z???) y la canasta tambien debe pertenecer al eje Z???? Eso hace que mi juego pase a ser 3d con sprites? Me gustaria vuestros comentarios a ver como puedo poner en marcha el juego. Como ejemplo puede estar tambien los miticos final fight, cadillac&dinosaurios o capitan comando, juego de scroll 2d pero donde los jugadores saltaban y golpeaban en el aire, eso es medianamente mi idea en cuanto a los jugadores, que salten y que la canasta parezca que esta en el eje Z aunuqe luego no sea asi, pero ya os digo no se como enfocarlo. Espero vuestros comentarios.

     

    Muchas gracias

    lunes, 19 de julio de 2010 22:58

Respuestas

  • Basicamente tendrias el objeto en 3 cordenadas pero deberias graficarlo en 2.

    podrias utilizar un sistema de grilla de 3 dimenciones (imaginate un cubo ruby) en donde cada objeto tendria una ubicacion en esa grilla, en base a eso luego deberias hacer los calculos para obtener la posicion en pantalla de estos objetos en base a su posicion en la grilla :D.

    En teoria tendrias ubicarias los objetos en XY de la pantalla y a medida q el objeto esta mas arriba, osea en otra celda de la matriz, ajusta la posicion en Y de este en pantallla.

    Espero q se entienda la idea


    Si la respuesta fue de utilidad por favor vote. Tec. Agustin Rosso http://www.bfxstudio.net
    martes, 20 de julio de 2010 2:51
  • Hola,

    Es un poco lo que dice Agustin. Tu posicionarias tus objetos con un objeto Vector3. La Y es la altura, la X es el espacio horizontal y la Z es la profundidad. Como tu quieres hacer un juego 2D, la Z no la usarás con el spriteBatch.Draw directamente, sino que la utilizarias para la escala y el layer.

    Es decir, que cuando mayor sea la Z (más cerca de la "cámara") pintarás el sprite a una escala mayor y un layer más grande, y cuando menor sea la Z, es decir, más lejos esté el objeto, pintarás tu sprite con una escala menor, y en un layer mas pequeño.

    El método Draw del spritebatch tiene sobrecargas que te permiten especificar la posición del objeto en un vector 2D (x, y), la escala (donde 1 es = 100%), y la capa o profundidad (donde 1 es lo mas cerca y 0 lo mas lejos).

    Te dejo una referencia aquí:
    http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.spritebatch.draw.aspx


    Un saludo,

    Jesús


    Jesús Bosch Aiguadé
    http://geeks.ms/blogs/jbosch
    http://uoc.dotnetclubs.com
    martes, 20 de julio de 2010 11:06

Todas las respuestas

  • Basicamente tendrias el objeto en 3 cordenadas pero deberias graficarlo en 2.

    podrias utilizar un sistema de grilla de 3 dimenciones (imaginate un cubo ruby) en donde cada objeto tendria una ubicacion en esa grilla, en base a eso luego deberias hacer los calculos para obtener la posicion en pantalla de estos objetos en base a su posicion en la grilla :D.

    En teoria tendrias ubicarias los objetos en XY de la pantalla y a medida q el objeto esta mas arriba, osea en otra celda de la matriz, ajusta la posicion en Y de este en pantallla.

    Espero q se entienda la idea


    Si la respuesta fue de utilidad por favor vote. Tec. Agustin Rosso http://www.bfxstudio.net
    martes, 20 de julio de 2010 2:51
  • Hola,

    Es un poco lo que dice Agustin. Tu posicionarias tus objetos con un objeto Vector3. La Y es la altura, la X es el espacio horizontal y la Z es la profundidad. Como tu quieres hacer un juego 2D, la Z no la usarás con el spriteBatch.Draw directamente, sino que la utilizarias para la escala y el layer.

    Es decir, que cuando mayor sea la Z (más cerca de la "cámara") pintarás el sprite a una escala mayor y un layer más grande, y cuando menor sea la Z, es decir, más lejos esté el objeto, pintarás tu sprite con una escala menor, y en un layer mas pequeño.

    El método Draw del spritebatch tiene sobrecargas que te permiten especificar la posición del objeto en un vector 2D (x, y), la escala (donde 1 es = 100%), y la capa o profundidad (donde 1 es lo mas cerca y 0 lo mas lejos).

    Te dejo una referencia aquí:
    http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.spritebatch.draw.aspx


    Un saludo,

    Jesús


    Jesús Bosch Aiguadé
    http://geeks.ms/blogs/jbosch
    http://uoc.dotnetclubs.com
    martes, 20 de julio de 2010 11:06
  • Muchas gracias a vuestras respuestas. Lo bueno de vuestras respuestas es que me surgen dudas y eso es porque ya me puesto a pensar, solo por eso gracias. Mi duda es la siguiente: Tengo claro que la X es mi eje horizontal, si la Y es mi altura(si me equivoco por favor corregirme) donde la cual usare para que mis jugadores simulen saltos, y si la Z es la profundidad, como diferencia si un jugador esta en la linea de fuera del campo que esta mas cerca de la camara y como veo si esta en la linea mas alejada de la camara. Tengo claro que cuanto mas lejos (profundidad, entiendo lo de la escala y lo del layer) mi muñeco sera mas pequeño cambiando la escala de mi sprite. No se si me explico si mi muñeco esta mas alejado aparte de hacerlo mas pequeño, tambien debera dar impresion de estar mas alejado osea mas carca de la linea de fondo y eso me haria subirlo en el Eje Y + la profundidad de Z, verdad?

    Los Saltos solo seria cambio en Y + una sombra en el punto X,Y para dar impresion de salto,no?

     

    Si no me he explicado bien, dimelo y lo hago de nuevo. Bueno gracias de verdad de las buenas, solo con estos dos comentarios lo veo un poco mas claro. Creo que os comprendo, pero esto es complicado. Bueno este finde me pondre ya ha empezar de momento a seguir con el dia a dia, que el mio es JavaScript y HTML.

     

    Muchas gracias de nuevo 

    martes, 20 de julio de 2010 15:24
  • Si los laterales sontodos visible en pantalla, controlaria que los pies del jugador no sagan de los limentes en Y , pero ten en cunta que Y se modifica cuando salta, esto te indicaria erroneamente que esta fuera de la cancha cuando salte.

    En este caso personalmente calcularia la posicion de Y del personaje mas la Z (la q salata), osea.

    Si el personaje por salir de la cancha, por la linea superior, controlas q la pos en Y de los pies del jugador sean mayor a la de la linea, a este valor le sumas el valor Z el cual seria "0" si el personaje no esta saltando.

    En el caso de que el personaje salte, el valor de Z seria diferente a "0", aqui cuando hagas el calculo para verificar si la poscicion en Y y sumes el valor del salto (Z) esto indicara que el personaje estaria dentro de las lineas ( al menos en el caso de la linea superior, deberias controlar lo mismo en la linea inferior).

    Bueno esa es mas o menos mi iedea, puede haber otras. Espero q te sea util.

    Saludos.

     


    Si la respuesta fue de utilidad por favor vote. Tec. Agustin Rosso http://www.bfxstudio.net
    martes, 20 de julio de 2010 15:48
  • Agustiin gracias por tu apreciacion pero eso no sera un problema ya que como en el juego original en su momento, no habra fueras de banda. Sera una especie de batalla campal. Aun asi con las 2 primeras respuestas que me disteis tu y Jesus tengo para empezar y tengo ya una idea de como encauzarlo. Cuando vaya viendo las trabas que me surgen iren posteando cosas, por cierto donde te voto en la pagina esa interesante que tienes? dime la seccion
    miércoles, 21 de julio de 2010 7:05
  • no se refiere a que le votes en su pagina, sino en el foro :-)
    Jesús Bosch Aiguadé
    http://geeks.ms/blogs/jbosch
    http://uoc.dotnetclubs.com
    miércoles, 21 de julio de 2010 7:19
  • Que bueno q te haya gustado mi sitio, si quieres votar algun articulo create un usuario (boton superior izquierdo de la pantalla "Iniciar Secion") cuando te logues te va a dejar votar.

    Saludos.


    Si la respuesta fue de utilidad por favor vote. Tec. Agustin Rosso http://www.bfxstudio.net
    miércoles, 21 de julio de 2010 15:59