public static void main(String[] args) { // 使用继承,仅仅代表是包含和控制器的所有方法 SpaceShip protector = new SpaceShip("NSEA Protector"); protector.forward(100); // 通过多的一个代理类,类中有一个control对象,我们可以随意的扩展和缩小control对象中的方法 // 或者是在方法前后做一些逻辑处理,这样就可以拥有更多的控制力了。 SpaceShipDelegation d = new SpaceShipDelegation("234"); }
public void draw() { // Draw outer (border) rectangle DrawingHelper.drawFilledRectangle( new Rect( (int) (DrawingHelper.getGameViewWidth() * .8f) - 6, 0, DrawingHelper.getGameViewWidth(), (int) (DrawingHelper.getGameViewHeight() * .2f) + 6), Color.BLUE, 100); // Draw inner rectangle DrawingHelper.drawFilledRectangle( new Rect( (int) (DrawingHelper.getGameViewWidth() * .8f), 3, DrawingHelper.getGameViewWidth() - 3, (int) (DrawingHelper.getGameViewHeight() * .2f)), Color.BLACK, 100); ArrayList<AsteroidType> gameAsteroids = AsteroidsGameModel.getInstance().getAsteroidTypes(); SpaceShip ship = AsteroidsGameModel.getInstance().getSpaceShip(); // Calculate and draw position for the ship float xScaledAndShifted = (ship.getXPosition() * .2f) * mXDimension / mGame.getCurrentLevel().getWidth() + // mXPosition + (DrawingHelper.getGameViewWidth() * .8f); float yScaledAndShifted = (ship.getYPosition() * .2f) * mYDimension / mGame.getCurrentLevel().getHeight(); /*+ mYPosition;*/ DrawingHelper.drawPoint( new PointF(xScaledAndShifted, yScaledAndShifted), 3, Color.GREEN, 255); // Calculate position for the asteroids for (AsteroidType a : gameAsteroids) { float xScaleShift = (a.getPosition().x * .2f) * mXDimension / mGame.getCurrentLevel().getWidth() + // mXPosition + (DrawingHelper.getGameViewWidth() * .8f); float yScaleShift = (a.getPosition().y * .2f) * mYDimension / mGame.getCurrentLevel().getHeight(); /*+ mYPosition;*/ DrawingHelper.drawPoint(new PointF(xScaleShift, yScaleShift), 4, Color.RED, 255); } }
public static void main( String[] args) { // DI - Dependency Injection (ussually Spring or other FrameWork are used for that // purpose) Pilot pilot = new Pilot("Юрий"); SpacePort baikonur = new SpacePort(); SpaceShip spaceShip = new SpaceShip(); spaceShip.name = "Восток"; spaceShip.setPilot(pilot); baikonur.setSpaceShip(spaceShip); baikonur.setMissionControlCenter(new MissionControlCenter()); baikonur.missionControlCenter.setCurrentSpaceShip(spaceShip); baikonur.missionControlCenter.launch(); }
/** * Returns a enemy spaceship * * @param type corresponds to the type of spaceship involved, 1 being the lowest and 3 the * highest. * @return spaceship */ public SpaceShip getEnemie(int type, Track t, Context context) { Random rand = new Random(); SpaceShip enemy = null; Bitmap image = null; switch (type) { case 1: enemy = new SpaceShipLow(world, t, true, context); Weapon missile = new Missile(world, true, context); missile.setNbrAmmo(Integer.MAX_VALUE); enemy.addWeapon(missile); enemy.setWeapon(missile.getName()); image = Utils.createImage(context, R.drawable.weaponmissile); // .getSubimage(80, 0, 80, 80); break; case 2: enemy = new SpaceShipMiddle(world, t, true, context); Weapon fireball = new FireBall(world, true, context); fireball.setNbrAmmo(Integer.MAX_VALUE); enemy.addWeapon(fireball); enemy.setWeapon(fireball.getName()); image = Utils.createImage(context, R.drawable.weaponfireball); // .getSubimage(80, 0, 80, 80); break; case 3: enemy = new SpaceShipHigh(world, t, true, context); Weapon missile2 = new Missile(world, true, context); missile2.setNbrAmmo(Integer.MAX_VALUE); enemy.addWeapon(missile2); enemy.setWeapon(missile2.getName()); image = Utils.createImage(context, R.drawable.weaponshibooleet); // .getSubimage(80, 0, 80, 80); break; } enemy.setPosition(new Vec2(rand.nextInt(Constant.WIDTH) - 100, 100)); if (true) { // rand.nextInt(10) == 1 Bonus bonus = new Bonus(world, enemy.getWeaponCurrent().getName(), rand.nextInt(50), image, context); enemy.setBonus(bonus); } return enemy; }
public static void main(String[] args) { SpaceShip protector = new SpaceShip("NSEA Protector"); protector.forward(100); }