Xirquatha was my first Java project. Our company had a contest to write a Java game to help the consultants learn java. It’s a simple top scrolling shooter with the player flying a spaceship and killing alien crafts and turrets.
Simple AI for the enemy sprites:
private void AI(int ship_x,int ship_y)
{
switch ( m_Type )
{
case 22: // Bomber
m_Delta_Y = -3;
m_Fire_Delay++;
if ( m_Fire_Delay > 10 )
{
m_Sprites.FireBullet((int)m_X,(int)m_Y);
m_Fire_Delay = m_Applet.GetRandom(3);
}
break;
case 23: // Homer
if ( m_X > ship_x )
{
m_Delta_X--;
if ( m_Delta_X < -10 )
m_Delta_X = -10;
}
else if ( m_X < ship_x )
{
m_Delta_X++;
if ( m_Delta_X > 10 )
m_Delta_X = 10;
}
if ( ship_y - m_Y < 500 )
m_Delta_Y = 0;
m_Fire_Delay++;
if ( m_Fire_Delay > 15 )
{
m_Sprites.FireBullet((int)m_X,(int)m_Y);
m_Fire_Delay = m_Applet.GetRandom(3);
}
break;
case 24: // Diver
if ( m_X > ship_x )
{
m_Delta_X--;
if ( m_Delta_X < -10 )
m_Delta_X = -10;
}
else if ( m_X < ship_x )
{
m_Delta_X++;
if ( m_Delta_X > 10 )
m_Delta_X = 10;
}
if ( m_Y < ship_y - 250 )
{
--m_Delta_Y;
if ( m_Delta_Y < -10 )
m_Delta_Y = -10;
}
else if ( m_Y > ship_y - 250 )
{
m_Delta_Y++;
if ( m_Delta_X > 10 )
m_Delta_X = 10;
}
m_Fire_Delay++;
if ( m_Fire_Delay > 10 )
{
m_Sprites.FireBullet((int)m_X,(int)m_Y);
m_Fire_Delay = m_Applet.GetRandom(3);
}
break;
case 25: // Strafer
if ( m_X > ship_x )
{
m_Delta_X--;
if ( m_Delta_X < -10 )
m_Delta_X = -10;
}
else if ( m_X < ship_x )
{
m_Delta_X++;
if ( m_Delta_X > 10 )
m_Delta_X = 10;
}
if ( m_Y > ship_y - 200 )
m_Delta_Y = -4;
m_Fire_Delay++;
if ( m_Fire_Delay > 15 )
{
m_Sprites.FireBullet((int)m_X,(int)m_Y);
m_Fire_Delay = m_Applet.GetRandom(3);
}
break;
case 26: // gun emplacement
m_Fire_Delay++;
if ( m_Fire_Delay > 15 )
{
m_Sprites.FireBullet((int)m_X,(int)m_Y);
m_Fire_Delay = m_Applet.GetRandom(3);
}
else if ( m_Fire_Delay > 10 )
m_Is_Invincible = false;
else
{
m_Is_Invincible = true;
m_Type = 27;
}
break;
case 27: // gun emplacement #2
m_Fire_Delay++;
m_Is_Invincible = true;
if ( m_Fire_Delay > 10 )
{
m_Is_Invincible = false;
m_Type = 26;
}
break;
case 28: // strafer/bomber
if ( m_X > ship_x )
{
m_Delta_X--;
if ( m_Delta_X < -4 )
m_Delta_X = -4;
}
else if ( m_X < ship_x )
{
m_Delta_X++;
if ( m_Delta_X > 4 )
m_Delta_X = 4;
}
if ( m_Y < ship_y - 150 )
{
--m_Delta_Y;
if ( m_Delta_Y < -3 )
m_Delta_Y = -3;
}
else if ( m_Y > ship_y - 150 )
{
m_Delta_Y++;
if ( m_Delta_X > 3 )
m_Delta_X = 3;
}
m_Fire_Delay++;
if ( m_Fire_Delay > 20 )
{
m_Sprites.FireBullet((int)m_X,(int)m_Y);
m_Fire_Delay = m_Applet.GetRandom(3);
}
break;
case 33: // boss gun emplacement
m_Fire_Delay++;
if ( m_Fire_Delay > 15 )
{
m_Sprites.FireBullet((int)m_X,(int)m_Y);
m_Fire_Delay = m_Applet.GetRandom(3);
}
else if ( m_Fire_Delay > 12 )
m_Is_Invincible = false;
else
{
m_Is_Invincible = true;
m_Type = 34;
}
break;
case 34: // boss gun emplacement #2
m_Fire_Delay++;
m_Is_Invincible = true;
if ( m_Fire_Delay > 12 )
{
m_Is_Invincible = false;
m_Type = 33;
}
break;
case 35: // boss gunner
m_Fire_Delay++;
if ( m_Fire_Delay > 10 )
{
m_Sprites.FireSpread((int)m_X,(int)m_Y);
m_Fire_Delay = m_Applet.GetRandom(3);
}
break;
}
}