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); } }
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); }