Jump to content

  • Log In with Google      Sign In   
  • Create Account

Awesome job so far everyone! Please give us your feedback on how our article efforts are going. We still need more finished articles for our May contest theme: Remake the Classics

#Actualbe-the-hero.net

Posted 17 September 2012 - 10:14 AM

1) Intuitively, I think I would divide it into following classes:

class Player
{
  Weapon weapon;
// ...
}
interface Weapon
{
  Bullet shoot(...);
  // ...
}

abstract class Bullet
{
  Vector2f position;
  int direction;
  // ...
}

class MachineGun implements Weapon { /*...*/ }
class MachineGunBullet extends Bullet { /*...*/ }

class RocketLauncher implements Weapon { /*...*/ }
class RocketLauncherBullet extends Bullet { /*...*/ }

2) Ideally, your:
setState(GameEntity.State.idle);
Should be triggered by a "mouse up" event to avoid any confusion / synchronisation problems.
The following seems also to make more sense to me:
if (input.isMouseButtonDown(Input.MOUSE_LEFT_BUTTON) && getState() != GameEntity.State.overheated){

		if(getFire() == 0){
		 System.out.println("Fire!");
		 setFire(getFireRate());
		 increaseHeat(getWeaponHeatRate());
		 setState(GameEntity.State.shooting);
		}
}else{
		 setState(GameEntity.State.idle);
		 System.out.println("no fire");
		 setFire(getFire() - 1);
}


#2be-the-hero.net

Posted 17 September 2012 - 10:14 AM

1) Intuitively, I think I would divide it into following classes:

class Player
{
  Weapon weapon;
// ...
}
interface Weapon
{
  Bullet shoot(...);
  // ...
}

abstract class Bullet
{
  Vector2f position;
  int direction;
}

class MachineGun implements Weapon { /*...*/ }
class MachineGunBullet extends Bullet { /*...*/ }

class RocketLauncher implements Weapon { /*...*/ }
class RocketLauncherBullet extends Bullet { /*...*/ }

2) Ideally, your:
setState(GameEntity.State.idle);
Should be triggered by a "mouse up" event to avoid any confusion / synchronisation problems.
The following seems also to make more sense to me:
if (input.isMouseButtonDown(Input.MOUSE_LEFT_BUTTON) && getState() != GameEntity.State.overheated){

		if(getFire() == 0){
		 System.out.println("Fire!");
		 setFire(getFireRate());
		 increaseHeat(getWeaponHeatRate());
		 setState(GameEntity.State.shooting);
		}
}else{
		 setState(GameEntity.State.idle);
		 System.out.println("no fire");
		 setFire(getFire() - 1);
}


#1be-the-hero.net

Posted 17 September 2012 - 10:12 AM

1) Intuitively, I think I would divide it into following classes:

class Player
{
  Weapon weapon;
// ...
}
interface Weapon
{
  Bullet shoot(...);
  // ...
}
abstract class Bullet { /*...*/ }
//class MachineGun & MachineGunBullet
//class  RocketLauncher & RocketLauncherBullet

2) Ideally, your:
setState(GameEntity.State.idle);
Should be triggered by a "mouse up" event to avoid any confusion / synchronisation problems.
The following seems also to make more sense to me:
if (input.isMouseButtonDown(Input.MOUSE_LEFT_BUTTON) && getState() != GameEntity.State.overheated){
 
	    if(getFire() == 0){
		 System.out.println("Fire!");
		 setFire(getFireRate());
		 increaseHeat(getWeaponHeatRate());
		 setState(GameEntity.State.shooting);
	    }
}else{
		 setState(GameEntity.State.idle);
		 System.out.println("no fire");
		 setFire(getFire() - 1);
}


PARTNERS