elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Que opinan sobre esta idea para el code de un juego.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Que opinan sobre esta idea para el code de un juego.  (Leído 5,011 veces)
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Que opinan sobre esta idea para el code de un juego.
« en: 25 Agosto 2012, 11:12 am »

Mira me explico. Estaba hoy trabajando en el sistema de colisiones de mi juego.
Que funciona de la siguiente manera, carga una imagen en blanco y negro el negro es colisión, entonces lo que hace cada vez que comprueba si hay colisión es comprobar si el color de la imagen es negro, si es negro colisiona, y he pensado si lo hiciera de esta otra forma en tiempo play iría más rápido, me explico:

1- Carga la imagen en blanco y negro, comprueba su resolución en pixels.
2- Creo un bucle que añade a un bool[][] true si hay colisión y false si no lo hay.

entonces la idea básica es que a la hora de cargar el mapa y todo eso es algo más lento quizás pero a la hora de jugar es más rápido, por que no hay que llamar a una función par comprobar el color de cierto pixel de la imagen.

Código
  1. for(int y=0;y<SizeMapY*32;y++){
  2.        for(int x=0;x<SizeMapX*32;x++){
  3.            if(IMap->getPixel(x,y) == sf::Color::Black)PixelMap[y][x]=true;
  4.            else PixelMap[y][x]=false;
  5.        }
  6.    }

El único inconveniente que le veo es a la hora de hacer mapa exagerados de quizás
Código
  1. bool map[1000000][1000000]
Los números son cada pixel, en este caso son 1000000 de ancho por alto. Una exageración pero bueno xD
Ustedes que opinan sobre esto?

Esto es una archivo de texto generado a partir de bucle.
http://img338.imageshack.us/img338/3791/mapmg.png


« Última modificación: 25 Agosto 2012, 11:23 am por Xafi » En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Que opinan sobre esta idea para el code de un juego.
« Respuesta #1 en: 25 Agosto 2012, 16:07 pm »

¡Buenas!

Anidar distintos bucles uno dentro de otro suele ser mas lento que ejecutar uno solo (por lo menos a mi me lo parece). Si tienes que recorrer una mtriz de n dimensiones, con rango Nn,...,N1 en cada una de ellas te basta con un solo bucle:

tipo matriz[Nn][Nn-1][N1];

for(i = 0 ; i < Nn * ... * N1 ; i++)

Teniendo esto, el subindice mas a la derecha sera: i % N1
Y yendo en orden hacia la izquierda, el subindice k sera: (i / (Nk-1 * ... * N1)) % Nk

En este caso tendrias:

Código
  1. for(i = 0 ; i < DIM_X * DIM_Y ; i++)
  2.    if(v[i / DIM_Y][i % DIM_Y] == loquesea)
  3.  

No se si te servira o no, ya te digo que no se si esto es mas rapido que anidar bucles. Lo pensare. Si alguno sabeis (con argumentos, claro esta) si es mas rapido esto que anidar bucles nos lo podriais contar...

¡Saludos!


En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: Que opinan sobre esta idea para el code de un juego.
« Respuesta #2 en: 25 Agosto 2012, 16:13 pm »

Hombre si me dices que es más rápido lo hago así XD
En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Que opinan sobre esta idea para el code de un juego.
« Respuesta #3 en: 25 Agosto 2012, 17:00 pm »

Voy a hacer una prueba y te comento los resultados.

¡Hasta ahora!

XD, la prueba falla. Esto (la parte de los bucles anidados) me da falta de segmentacion:
Código
  1. #include <time.h>
  2.  
  3. #define DIM1 1000LU
  4. #define DIM2 1000LU
  5. #define DIM3 1000LU
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.    int v[DIM1][DIM2][DIM3];
  10.    unsigned long i,j,k,t;
  11.  
  12.    t = time(NULL);
  13.  
  14.    for(i = 0 ; i < DIM1 ; i++)
  15.        for(j = 0 ; j < DIM2 ; j++)
  16.            for(k = 0 ; k < DIM3 ; k++)
  17.                v[i][j][k] = i;
  18.  

Evidentemente no he puesto todo el codigo...

¿Os pasa lo mismo?

Compilado en ubuntu:

gcc -o ejecutable fuente

XD
« Última modificación: 25 Agosto 2012, 17:19 pm por do-while » En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: Que opinan sobre esta idea para el code de un juego.
« Respuesta #4 en: 25 Agosto 2012, 17:26 pm »

Por que pones 1000LU y no 1000? no se que es eso de LU xD
Yo apuesto a que te sales de la memoria xDD
En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Que opinan sobre esta idea para el code de un juego.
« Respuesta #5 en: 25 Agosto 2012, 17:48 pm »

LU despues de una constante significa que es unsigned long.

Es posible que el desplazamiento generado sobre el puntero v se salga de rango... aunque cada una de las dimensiones esta dentro del rango de un unsigned long...

De todas formas, reduciendo el valor de las constantes, no da la falta, pero ambos bucles terminan en menos de un segundo, por lo que no puedo hacer las comparaciones...

¡Saludos!
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Que opinan sobre esta idea para el code de un juego.
« Respuesta #6 en: 25 Agosto 2012, 18:16 pm »

Evidentemente los bucles no se salen del rango de v, pero quiza el sistema no te deja reservar tanta memoria. Quiza funcione si reduces el tamaño del array y pones otro bucle que incluya a los otros tres, haga un tratamiento de la informacion almacenada en el array y lo vuelva a rellenar. Es decir, que el array no llegue a contener toda la informacion, sino que lo llenas, lo tratas y lo vuelves a llenar.

Piensa que al hacer:
Código
  1. int v[DIM1][DIM2][DIM3];
Estas reservando 1000x1000x1000xsizeof(int) bytes.

Saludos.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: Que opinan sobre esta idea para el code de un juego.
« Respuesta #7 en: 25 Agosto 2012, 18:51 pm »

Hay cosas como esos de 1000LU que en mi vida he visto en un tutorial ni manual ni nada, no se como aprendiste eso XD.
creo que 0xDani tiene razón a mi antes me ha pasado algo similar  haciendo lo de  bool x[1000000][100000] xD

En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Que opinan sobre esta idea para el code de un juego.
« Respuesta #8 en: 25 Agosto 2012, 18:59 pm »

Es cierto, el problema esta en la declaracion.

Suponiendo que gcc trabaja con ints de 4 bytes, con las constantes indicadas v ocuparia 3,725290298GB. Un poco demasiado, ¿no?  :xD

¡Saludos!
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Que opinan sobre esta idea para el code de un juego.
« Respuesta #9 en: 25 Agosto 2012, 19:17 pm »

Cita de: Xafi
Hay cosas como esos de 1000LU que en mi vida he visto en un tutorial ni manual ni nada, no se como aprendiste eso XD.

En serio? Yo si recuerdo haberlo visto en el curso C++ con Clase, creo.

En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Qué opinan sobre esta frase?
Foro Libre
TheEGG 89 7 3,876 Último mensaje 19 Febrero 2013, 02:33 am
por OmarHack
¿Que opinan de esta pagina sobre c++?
Programación C/C++
vangodp 2 2,364 Último mensaje 31 Enero 2014, 05:24 am
por x64core
idea para juego en android.
Foro Libre
basickdagger 1 1,521 Último mensaje 19 Mayo 2015, 20:44 pm
por Trane!
alguna idea sobre esta modificación con reflexil?
Ingeniería Inversa
gonzalitosk8 6 3,968 Último mensaje 9 Marzo 2016, 03:59 am
por gonzalitosk8
Europa baraja la idea de usar el DNI para publicar opiniones sobre productos...
Noticias
wolfbcn 0 1,585 Último mensaje 10 Junio 2016, 01:59 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines