No ocurre nada de eso pero gracias por el interes, probaré comentando código haber si sale. ;)
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Páginas1
#2
General Programadores / Re:Problema con velocidad de movimiento
06 de Junio de 2013, 08:28:30 AM
Gracias por tu respuesta, pero nada, he cogido y he quitado los else, y nada, luego le añadí los corchetes y nada. No creo que sea de otra parte del código, pero por si las moscas os dejo el code del nivel en el que esta:
PD: poniendo el 1 con el 3, y el 2 con el 4, sigue sin ir.
Código [Seleccionar]
void Levels_Level1 (void)
{
// Define Player
Player1.Init();
Player1.SetAlpha(255);
Player1.SetX (79);
Player1.SetY (159);
Player1.SetW (20);
Player1.SetH (20);
// Define NPC1
NPC1.Init();
NPC1.move = 1;
NPC1.SetX (168); // 168 a 412
NPC1.SetY (150);
NPC1.SetW (20);
NPC1.SetH (20);
// Define NPC2
NPC2.Init();
NPC2.move = 2;
NPC2.SetX (412); // 412 a 168
NPC2.SetY (177);
NPC2.SetW (20);
NPC2.SetH (20);
// Define NPC3
NPC3.Init();
NPC3.move = 1;
NPC3.SetX (168); // 168 a 412
NPC3.SetY (204);
NPC3.SetW (20);
NPC3.SetH (20);
// Define NPC4
NPC4.Init();
NPC4.move = 2;
NPC4.SetX (412); // 412 a 168
NPC4.SetY (231);
NPC4.SetW (20);
NPC4.SetH (20);
// Imagen
Level1.Load ("DATA/level1.png");
// Bucle del Level 1
while ( 1 )
{
// INPUT / EVENTS
KEY_Update();
// LOGIC
// NPC IA
//NPC 1
if (NPC1.GetX () <= 412 && NPC1.move == 1)
NPC1.SetX (NPC1.GetX() + SPEED + 1.5);
if (NPC1.GetX () >= 168 && NPC1.move == 2)
NPC1.SetX (NPC1.GetX() - SPEED - 1.5);
if (NPC1.GetX() >= 412)
NPC1.move = 2;
if (NPC1.GetX() <= 168)
NPC1.move = 1;
//NPC 2
if (NPC2.GetX () >= 168 && NPC2.move == 2)
NPC2.SetX (NPC2.GetX() - SPEED - 1.5);
if (NPC2.GetX () <= 412 && NPC2.move == 1)
NPC2.SetX (NPC2.GetX() + SPEED + 1.5);
if (NPC2.GetX() >= 412)
NPC2.move = 2;
if (NPC2.GetX() <= 168)
NPC2.move = 1;
//NPC 3
if (NPC3.GetX () <= 412 && NPC3.move == 1)
NPC3.SetX (NPC3.GetX() + SPEED + 1.5);
if (NPC3.GetX () >= 168 && NPC3.move == 2)
NPC3.SetX (NPC3.GetX() - SPEED - 1.5);
if (NPC3.GetX() >= 412)
NPC3.move = 2;
if (NPC3.GetX() <= 168)
NPC3.move = 1;
//NPC 4
if (NPC4.GetX () >= 168 && NPC4.move == 2)
NPC4.SetX (NPC4.GetX() - SPEED - 1.5);
if (NPC4.GetX () <= 412 && NPC4.move == 1)
NPC4.SetX (NPC4.GetX() + SPEED + 1.5);
if (NPC4.GetX() >= 412)
NPC4.move = 2;
if (NPC4.GetX() <= 168)
NPC4.move = 1;
// Contol del Jugador
Player1.Control ();
// Colisiones
// Arriba Principal
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), 0, 0, Player1.GetW(), Player1.GetH(), 600, 121) == 1)
Player1.SetY (Player1.GetY() + SPEED);
// Izquierda Primera
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), 0, 122, Player1.GetW(), Player1.GetH(), 55, 278) == 1)
Player1.SetX (Player1.GetX() + SPEED);
// Abajo Principal
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), 51, 281, Player1.GetW(), Player1.GetH(), 544, 119) == 1)
Player1.SetY (Player1.GetY() - SPEED);
// Derecha Primera
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), 135, 122, Player1.GetW(), Player1.GetH(), 3, 135) == 1)
Player1.SetX (Player1.GetX() - SPEED);
// Arriba Primera
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), 135, 254, Player1.GetW(), Player1.GetH(), 31, 3) == 1)
Player1.SetY (Player1.GetY() + SPEED);
// Derecha Segunda
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), 189, 254, Player1.GetW(), Player1.GetH(), 3, 27) == 1)
Player1.SetX (Player1.GetX() - SPEED);
// Abajo Primera
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), 189, 254, Player1.GetW(), Player1.GetH(), 249, 3) == 1)
Player1.SetY (Player1.GetY() - SPEED);
// Izquierda Segunda
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), 162, 145, Player1.GetW(), Player1.GetH(), 3, 112) == 1)
Player1.SetX (Player1.GetX() + SPEED);
// Arriba Segunda
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), 162, 145, Player1.GetW(), Player1.GetH(), 249, 3) == 1)
Player1.SetY (Player1.GetY() + SPEED);
// Derecha Tercera
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), 435, 145, Player1.GetW(), Player1.GetH(), 3, 109) == 1)
Player1.SetX (Player1.GetX() - SPEED);
// Izquierda Tercera
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), 408, 122, Player1.GetW(), Player1.GetH(), 3, 26) == 1)
Player1.SetX (Player1.GetX() + SPEED);
// Abajo Segunda
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), 435, 145, Player1.GetW(), Player1.GetH(), 30, 3) == 1)
Player1.SetY (Player1.GetY() - SPEED);
// Ganar
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), 464, 122, Player1.GetW(), Player1.GetH(), 34, 23) == 1)
;
// Muertes
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), NPC1.GetX(), NPC1.GetY(), Player1.GetW(), Player1.GetH(), NPC1.GetW(), NPC1.GetH()) == 1)
{
Level1_Kill();
}
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), NPC2.GetX(), NPC2.GetY(), Player1.GetW(), Player1.GetH(), NPC2.GetW(), NPC2.GetH()) == 1)
{
Level1_Kill();
}
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), NPC3.GetX(), NPC3.GetY(), Player1.GetW(), Player1.GetH(), NPC3.GetW(), NPC3.GetH()) == 1)
{
Level1_Kill();
}
if (FE_BoxColision(Player1.GetX(), Player1.GetY(), NPC4.GetX(), NPC4.GetY(), Player1.GetW(), Player1.GetH(), NPC4.GetW(), NPC4.GetH()) == 1)
{
Level1_Kill();
}
// RENDERING to Screen
// Iniciar el Render
Init_Render ();
// Renderizar img
Level1.Render();
// Renderizar Player
Player1.Render();
// Renderizar NPCs
NPC1.Render();
NPC2.Render();
NPC3.Render();
NPC4.Render();
// Fin del Render
End_Render();
// Menu
if (KEYS.ESC)
OpenMenuPauseLevel1();
}
}
void Level1_Kill (void)
{
for(int i = 255; i > 10; i-=25)
{
// Cambiar el Alpha
Player1.SetAlpha(i);
// Iniciar el Render
Init_Render ();
// Renderizar img
Level1.Render();
// Renderizar Player
Player1.Render();
// Renderizar NPCs
NPC1.Render();
NPC2.Render();
NPC3.Render();
NPC4.Render();
// Fin del Render
End_Render();
}
// Recuperar datos del Player
Player1.SetAlpha(255);
Player1.SetX (79);
Player1.SetY (159);
}
PD: poniendo el 1 con el 3, y el 2 con el 4, sigue sin ir.
#3
General Programadores / Problema con velocidad de movimiento
31 de Mayo de 2013, 05:52:52 PM
Buenas a todos:
Soy OdnetninI, en mi primer post, de esta comunidad, :-[
Bueno, al tema.
Estoy haciendo un juego del estilo "El juego mas dificil del mundo" para un minijuego, y resulta que las bolas enemigas las divido en NPC1, NPC2, NPC3 y NPC4, pero la 2 y la 4, van a mas velocidad que la 1 y 3, lo cual hace que si no esperas es imposible de pasar, y si esperas demasiado, es muy fácil. He mirado el código muchas veces, y no encuentro el porque. Asi que os dejo el code a ver si me podeis echar una mano. ;)
Nota: SPEED = 1.2
Nota2: uso c++ y OpenGl
Soy OdnetninI, en mi primer post, de esta comunidad, :-[
Bueno, al tema.
Estoy haciendo un juego del estilo "El juego mas dificil del mundo" para un minijuego, y resulta que las bolas enemigas las divido en NPC1, NPC2, NPC3 y NPC4, pero la 2 y la 4, van a mas velocidad que la 1 y 3, lo cual hace que si no esperas es imposible de pasar, y si esperas demasiado, es muy fácil. He mirado el código muchas veces, y no encuentro el porque. Asi que os dejo el code a ver si me podeis echar una mano. ;)
Código [Seleccionar]
// NPC IA
//NPC 1
if (NPC1.GetX () <= 412 && NPC1.move == 1)
NPC1.SetX (NPC1.GetX() + SPEED + 1.5);
else if (NPC1.GetX () >= 168 && NPC1.move == 2)
NPC1.SetX (NPC1.GetX() - SPEED - 1.5);
if (NPC1.GetX() >= 412)
NPC1.move = 2;
if (NPC1.GetX() <= 168)
NPC1.move = 1;
//NPC 2
if (NPC2.GetX () >= 168 && NPC2.move == 2)
NPC2.SetX (NPC2.GetX() - SPEED - 1.5);
else if (NPC2.GetX () <= 412 && NPC2.move == 1)
NPC2.SetX (NPC2.GetX() + SPEED + 1.5);
if (NPC2.GetX() >= 412)
NPC2.move = 2;
if (NPC2.GetX() <= 168)
NPC2.move = 1;
//NPC 3
if (NPC3.GetX () <= 412 && NPC3.move == 1)
NPC3.SetX (NPC3.GetX() + SPEED + 1.5);
else if (NPC3.GetX () >= 168 && NPC3.move == 2)
NPC3.SetX (NPC3.GetX() - SPEED - 1.5);
if (NPC3.GetX() >= 412)
NPC3.move = 2;
if (NPC3.GetX() <= 168)
NPC3.move = 1;
//NPC 4
if (NPC4.GetX () >= 168 && NPC4.move == 2)
NPC4.SetX (NPC4.GetX() - SPEED - 1.5);
else if (NPC4.GetX () <= 412 && NPC4.move == 1)
NPC4.SetX (NPC4.GetX() + SPEED + 1.5);
if (NPC4.GetX() >= 412)
NPC4.move = 2;
if (NPC4.GetX() <= 168)
NPC4.move = 1;
Nota: SPEED = 1.2
Nota2: uso c++ y OpenGl
Páginas1