Programación Específica > Programación de Videojuegos
Programacion de videojuegos
Jevi:
--- Cita de: "Geo" --- Por cierto, yo estoy con C y Allegro, ya hice un Pong, ahora voy por un Tetris, Breakout y uno de plataformas, nos vemos :D.
--- Fin de la cita ---
Hola Geo,
gracias por la información. Es más o menos lo que creía, pero ¿sabes algo más de cómo se cargan esos datos y quien los maneja? Me refiero a si se hace directamente en OpenGL o necesitas un motor 3D.
Respecto al Pong... ¿cómo trataste los rebotes de la pelota? Yo ahora lo tengo muy simplificado y siempre rebota en diagonal, pero he visto juegos que dependiendo en qué dirección se desplace la pala en el momento de impactar la bola, hace que la bola salga hacia un sentido u otro.
Un cordial saludo. :hola:
JuanK:
Hola geo...
No se que ha pasado con teleportmedia..
pero sinceramente creo que esta fuera...
si por lo menos fuera de la Web, esperemos que no fuera del mercado..
tal vez nuestros amigos de teleport tengan problemas fianancieros...
ojala que no sea asi.
Respecto a lo de la pelota que rebota segun donde le pegue a la barra..
mi version de pong hace algo asi... y aparte varia tmbien la velocidad del rebote..
como novedad la tengo hecha en C# y en directX..
pero si te interesa puedo postearlo completo solo la parte de los rebotes. :comp:
Jevi:
--- Cita de: "juank" --- como novedad la tengo hecha en C# y en directX..
pero si te interesa puedo postearlo completo solo la parte de los rebotes. :comp:
--- Fin de la cita ---
Juank, estaría muy bien que lo posteases, así podemos aprender y discutir el tema.
Gracias
JuanK:
bueno.. aquii esta el ejecutable, ç
utilice unatecnica llamada flip.. qu es intercambiandop paginas de video,
para usarlo debes tener directX 9 instalado en tu equipo y tambien el. .netframework para poder ejecutar apliaciones .net-
Aun tiene bugsitos.. en los saltos de pantalla.. recuerdo haber corregido eso hace tiempo, pero seguro lo volvi a modificar depues y no lo volvi a solucionar...
este es un previo...
JuanK:
este es el segmento de codigo.. básicamente lo de los rebotes y la direccion de las bolas se muevenm gracaias a estas dos funciones.
--- Código: Text --- private void CheckBounds() { CheckBarBounds(ref bar1Dest); CheckBarBounds(ref bar2Dest); CheckBallBounds(); } private void CheckBarBounds(ref Point bar) { if (bar.Y <= 10) bar.Y = 11; if (bar.Y > target.ClientSize.Height - barSpriteH - 11) bar.Y = target.ClientSize.Height - barSpriteH - 11; } private void CheckBallBounds() { if(ballDest.Y < 10 || ballDest.Y > target.ClientSize.Height - 37) ballSpeed.Y*=-1; if(ballDest.X < 10) { launched1 = false; shoted1 = false; score.Y++; } if(ballDest.X > target.ClientSize.Width - 37) { launched2 = false; shoted2 = false; score.X++; } /*BARRA 1*/ if(poinged2 && (ballDest.X <= bar1Dest.X + barSpriteW)) { if((ballDest.Y + 27 >= bar1Dest.Y) && (ballDest.Y+27/2 <= bar1Dest.Y + barSpriteH/3)) { ballSpeed.Y++; ballSpeed.X *= -1; if(ballSpeed.Y > 0) ballSpeed.X--; else ballSpeed.X++; if(ballSpeed.X == 0) ballSpeed.X = 5; poinged2 = false; poinged1 = true; return; } if((ballDest.Y+27/2 > bar1Dest.Y + barSpriteH/3) && (ballDest.Y+27/2 <= bar1Dest.Y + barSpriteH/3*2)) { ballSpeed.X *= -1; poinged2 = false; poinged1 = true; return; } if((ballDest.Y+27/2 > bar1Dest.Y + barSpriteH/3*2) && (ballDest.Y <= bar1Dest.Y + barSpriteH)) { ballSpeed.Y--; ballSpeed.X *= -1; if(ballSpeed.Y > 0) ballSpeed.X++; else ballSpeed.X--; if(ballSpeed.X == 0) ballSpeed.X = 5; poinged2 = false; poinged1 = true; return; } } /*BARRA 2*/ if(poinged1 && (ballDest.X + 27 >= bar2Dest.X)) { if((ballDest.Y + 27 >= bar2Dest.Y) && (ballDest.Y+27/2 <= bar2Dest.Y + barSpriteH/3)) { ballSpeed.Y++; ballSpeed.X *= -1; if(ballSpeed.Y > 0) ballSpeed.X--; else ballSpeed.X++; if(ballSpeed.X == 0) ballSpeed.X = 5; poinged1 = false; poinged2 = true; return; } if((ballDest.Y+27/2 > bar2Dest.Y + barSpriteH/3) && (ballDest.Y+27/2 <= bar2Dest.Y + barSpriteH/3*2)) { ballSpeed.X *= -1; poinged1 = false; poinged2 = true; return; } if((ballDest.Y+27/2 > bar2Dest.Y + barSpriteH/3*2) && (ballDest.Y <= bar2Dest.Y + barSpriteH)) { ballSpeed.Y--; ballSpeed.X *= -1; if(ballSpeed.Y > 0) ballSpeed.X--; else ballSpeed.X++; if(ballSpeed.X == 0) ballSpeed.X = 5; poinged1 = false; poinged2 = true; return; } } } public void UpdateBallDestination() { if(!launched1 ) { ballDest.X = bar1Dest.X+7; ballDest.Y = bar1Dest.Y+35-27/2; ballSpeed.X = 0; ballSpeed.Y = 0; if(shoted1) { launched1 = true; ballSpeed.X = ballSpeedX; ballSpeed.Y = ballSpeedX; } } if(!launched2 ) { ballDest.X = bar2Dest.X-27; ballDest.Y = bar2Dest.Y+35-27/2; ballSpeed.X = 0; ballSpeed.Y = 0; if(shoted2) { launched2 = true; ballSpeed.X = -ballSpeedX; ballSpeed.Y = -ballSpeedX; } } if(launched2 && launched1 && shoted2 && shoted1) { ballDest.X+=ballSpeed.X; ballDest.Y+=ballSpeed.Y; } }
anexo el codigo de la aplicaion completo.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa