From bb0a3baf46e7d48f91d8802fb3d0d72fd26d5a0b Mon Sep 17 00:00:00 2001 From: Tom Verhoeff Date: Thu, 10 Nov 2016 20:26:43 -0800 Subject: [PATCH] Surface Dial support --- Space Invaders/Player.cs | 21 +++++++++++++++++++++ Space Invaders/Space Invaders.csproj | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/Space Invaders/Player.cs b/Space Invaders/Player.cs index 1d3a59e..106c616 100644 --- a/Space Invaders/Player.cs +++ b/Space Invaders/Player.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Windows.UI.Input; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Media.Imaging; @@ -11,6 +12,8 @@ class Player // Variables private Image playerSprite; private Image playerBullet; + private RadialController Controller; + private RadialControllerMenuItem MenuItem; private BitmapImage playerBitmapImage = new BitmapImage(new Uri("ms-appx:///Assets/Sprites/player.png")); private BitmapImage invaderKilledImage = new BitmapImage(new Uri("ms-appx:///Assets/Sprites/explosion.png")); @@ -48,6 +51,24 @@ public Player(Canvas canvas, int playerGameScore) playerSprite.Source = playerBitmapImage; canvas.Children.Add(playerSprite); + + Controller = RadialController.CreateForCurrentView(); + Controller.RotationResolutionInDegrees = 2; + Controller.RotationChanged += Controller_RotationChanged; + Controller.ButtonClicked += Controller_ButtonClicked; + + MenuItem = RadialControllerMenuItem.CreateFromKnownIcon("SpaceInvaders", RadialControllerMenuKnownIcon.PenType); + Controller.Menu.Items.Add(MenuItem); + } + + private void Controller_ButtonClicked(RadialController sender, RadialControllerButtonClickedEventArgs args) + { + isShooting = true; + } + + private void Controller_RotationChanged(RadialController sender, RadialControllerRotationChangedEventArgs args) + { + Canvas.SetLeft(playerSprite, Canvas.GetLeft(playerSprite) + 2 * args.RotationDeltaInDegrees); } //Draw and update all object for every game frame diff --git a/Space Invaders/Space Invaders.csproj b/Space Invaders/Space Invaders.csproj index 581ae3e..793feff 100644 --- a/Space Invaders/Space Invaders.csproj +++ b/Space Invaders/Space Invaders.csproj @@ -11,7 +11,7 @@ Space Invaders en-US UAP - 10.0.10240.0 + 10.0.14393.0 10.0.10240.0 14 true