示例#1
0
  public void mouseClicked(int na, int x, int y, int clickCount) {
    for (MKSpriteNode node : buttons) {
      for (MKPhysicsBody body : node.getPhysicsBodies()) {
        Shape rigidBody = body.getBody();
        if (rigidBody.contains(mouseShape) || rigidBody.intersects(mouseShape))
          this.setDisplayTo(node);
      }
    }

    for (MKPhysicsBody body : playButton.getPhysicsBodies()) {
      Shape rigidBody = body.getBody();
      if (rigidBody.contains(mouseShape) || rigidBody.intersects(mouseShape))
        this.moveToGameWithPlayer(displayRacer);
    }
  }
示例#2
0
  private void moveToGameWithPlayer(MKSpriteNode node) {

    // Reference to the KartsGame
    KartsGame kg = KartsGame.KartsGameSharedInstance();
    try {
      kg.init(
          StateBasedGameController.getSharedInstance().getContainer(),
          StateBasedGameController.getSharedInstance());
    } catch (SlickException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

    // Get the username for multiplayer
    MKMultiplayerManager manager = MKMultiplayerManager.getSharedInstance();

    MKConstants.setUserName(this.textField.getText());

    // Create the local or original player
    MKPlayerMP newPlayer = new MKPlayerMP(null, -1, MKConstants.getUsername(), node.getTag());
    newPlayer.setOriginalPlayer(true);
    newPlayer.setImage("kart" + node.getTag() + ".png");
    kg.setPlayer(newPlayer);

    // Construct a login packet.
    MKPacket_01_Login loginPacket = new MKPacket_01_Login(newPlayer.getUsername(), node.getTag());
    loginPacket.writeData(manager.getClient());

    if (manager.getServer() != null) {
      manager.getServer().addConnection(newPlayer.convertToTemp(), loginPacket);
    }

    kg.getRacePlacer().setRacerImage(node.getImage(), "k" + node.getTag() + ".png");
    kg.getPlayer().setSound("s" + node.getTag() + ".wav");
    kg.getPlayer().setIcon(new MKSpriteNode("k" + node.getTag() + ".png"));

    StateBasedGameController.getSharedInstance().enterState(MKConstants.GAME);

    // load the game. multiplayer true.
    kg.viewDidLoad(true);
  }