public RemoteControllHand(PlayerController _controller) { playerController = _controller; PlayerCharacter player = _controller.character; playerColor = player.color; Vector2 pos = player.location.toScreenCoord(); pos.X = (pos.X - Constants.windowSizeX * 0.5F) * 0.8F + Constants.windowSizeX * 0.5F; pos.Y = Constants.windowScaleFactor * 500; Vector2 scale = Vector2.One * 0.5F * Constants.windowScaleFactor; if (pos.X > Constants.windowSizeX * 0.5F) scale.X *= -1F; baseSprite = new Sprite(AssetManager.getTexture(AssetManager.TextureName.Hand)); CenterSpriteOriginAndSetAttributes(baseSprite, scale, pos); flagSprite = new Sprite(AssetManager.getTexture(AssetManager.TextureName.RemoteFlag)); CenterSpriteOriginAndSetAttributes(flagSprite, scale, pos); flagColorablePartSprite = new Sprite(AssetManager.getTexture(AssetManager.TextureName.RemoteFlagWhitePart)); CenterSpriteOriginAndSetAttributes(flagColorablePartSprite, scale, pos, playerColor); leftThumbSprite = new Sprite(AssetManager.getTexture(AssetManager.TextureName.LeftThumb_Mid)); CenterSpriteOriginAndSetAttributes(leftThumbSprite, scale, pos); rightThumbSprite = new Sprite(AssetManager.getTexture(AssetManager.TextureName.RightThumb_Mid)); CenterSpriteOriginAndSetAttributes(rightThumbSprite, scale, pos); leftFingerSprite = new Sprite(AssetManager.getTexture(AssetManager.TextureName.LeftFinger_Up)); CenterSpriteOriginAndSetAttributes(leftFingerSprite, scale, pos); rightFingerSprite = new Sprite(AssetManager.getTexture(AssetManager.TextureName.RightFinger_Down)); CenterSpriteOriginAndSetAttributes(rightFingerSprite, scale, pos); jumpbarSprite = new Sprite(AssetManager.getTexture(AssetManager.TextureName.Jumpbar1)); CenterSpriteOriginAndSetAttributes(jumpbarSprite, scale, pos); }
private void ResetPlayers() { PlayerCharacter.playerCount = 0; resetCounter = 0; if (playerChars == null) { playerChars = new List<PlayerCharacter>(); } else { playerChars.Clear(); } if (controllers == null) { controllers = new List<Controller>(); } else { controllers.Clear(); } if (dekoHands == null) { dekoHands = new List<DekoElements.RemoteControllHand>(); } else { dekoHands.Clear(); } // find a controller for the Players foreach (uint i in GamePadInputManager.connectedPadIndices) { PlayerCharacter player = new PlayerCharacter(physicsWorld, startPostitions[playerChars.Count]); PlayerController playerController = new PlayerController(player, i); dekoHands.Add(new DekoElements.RemoteControllHand(playerController)); playerChars.Add(player); controllers.Add(playerController); if (playerChars.Count == numPlayers) break; } // if there are more Players than GamePads, give them invalid indices, so they will use Keyboard-Input // Cord: nullable would be better code, I guess... while (playerChars.Count < numPlayers) { PlayerCharacter player = new PlayerCharacter(physicsWorld, startPostitions[playerChars.Count]); PlayerController playerController = new PlayerController(player, uint.MaxValue); dekoHands.Add(new DekoElements.RemoteControllHand(playerController)); playerChars.Add(player); controllers.Add(playerController); } }