Selaa lähdekoodia

Restructure for .NET 8 and MonoGame 3.8.4: move to Core/ and Platforms/, add VSCode configs, update README, clean up old files

CartBlanche 2 viikkoa sitten
vanhempi
commit
1c79778e71

+ 27 - 0
Aiming/.vscode/launch.json

@@ -0,0 +1,27 @@
+{
+  "version": "0.2.0",
+  "configurations": [
+    {
+      "name": "Run Windows",
+      "type": "coreclr",
+      "request": "launch",
+      "preLaunchTask": "build-windows",
+      "program": "${workspaceFolder}/Platforms/Windows/bin/Debug/net8.0-windows/Aiming.Windows.exe",
+      "args": [],
+      "cwd": "${workspaceFolder}/Platforms/Windows",
+      "stopAtEntry": false,
+      "console": "internalConsole"
+    },
+    {
+      "name": "Run DesktopGL",
+      "type": "coreclr",
+      "request": "launch",
+      "preLaunchTask": "build-desktopgl",
+      "program": "${workspaceFolder}/Platforms/DesktopGL/bin/Debug/net8.0/Aiming.DesktopGL.exe",
+      "args": [],
+      "cwd": "${workspaceFolder}/Platforms/DesktopGL",
+      "stopAtEntry": false,
+      "console": "internalConsole"
+    }
+  ]
+}

+ 47 - 0
Aiming/.vscode/tasks.json

@@ -0,0 +1,47 @@
+{
+  "version": "2.0.0",
+  "tasks": [
+    {
+      "label": "build-windows",
+      "type": "shell",
+      "command": "dotnet build Platforms/Windows/Aiming.Windows.csproj",
+      "group": "build",
+      "problemMatcher": "$msCompile"
+    },
+    {
+      "label": "build-desktopgl",
+      "type": "shell",
+      "command": "dotnet build Platforms/DesktopGL/Aiming.DesktopGL.csproj",
+      "group": "build",
+      "problemMatcher": "$msCompile"
+    },
+    {
+      "label": "build-android",
+      "type": "shell",
+      "command": "dotnet build Platforms/Android/Aiming.Android.csproj",
+      "group": "build",
+      "problemMatcher": "$msCompile"
+    },
+    {
+      "label": "build-ios",
+      "type": "shell",
+      "command": "dotnet build Platforms/iOS/Aiming.iOS.csproj",
+      "group": "build",
+      "problemMatcher": "$msCompile"
+    },
+    {
+      "label": "run-windows",
+      "type": "shell",
+      "command": "dotnet run --project Platforms/Windows/Aiming.Windows.csproj",
+      "group": "test",
+      "problemMatcher": []
+    },
+    {
+      "label": "run-desktopgl",
+      "type": "shell",
+      "command": "dotnet run --project Platforms/DesktopGL/Aiming.DesktopGL.csproj",
+      "group": "test",
+      "problemMatcher": []
+    }
+  ]
+}

+ 0 - 121
Aiming/Aiming.iOS.csproj

@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
-    <ProductVersion>9.0.21022</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{E4C7960D-E564-4CD5-85D6-2B7B0B3DA5BA}</ProjectGuid>
-    <ProjectTypeGuids>{6BC8ED88-2882-458C-8E55-DFD12B67127B};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <OutputType>Exe</OutputType>
-    <RootNamespace>MonoGame.Samples.Aiming</RootNamespace>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
-    <DebugSymbols>True</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
-    <DefineConstants>DEBUG;IPHONE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <MtouchDebug>True</MtouchDebug>
-    <CodesignKey>iPhone Developer</CodesignKey>
-    <MtouchLink>None</MtouchLink>
-    <MtouchI18n />
-    <AssemblyName>Aiming</AssemblyName>
-    <MtouchUseArmv7>false</MtouchUseArmv7>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
-    <DebugType>none</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\iPhoneSimulator\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <CodesignKey>iPhone Developer</CodesignKey>
-    <MtouchLink>None</MtouchLink>
-    <DefineConstants>IPHONE</DefineConstants>
-    <MtouchI18n />
-    <AssemblyName>TiledSprites</AssemblyName>
-    <MtouchUseArmv7>false</MtouchUseArmv7>
-    <MtouchSdkVersion>3.0</MtouchSdkVersion>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
-    <DebugSymbols>True</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\iPhone\Debug</OutputPath>
-    <DefineConstants>DEBUG;IPHONE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <MtouchDebug>True</MtouchDebug>
-    <CodesignKey>iPhone Developer</CodesignKey>
-    <MtouchLink>None</MtouchLink>
-    <MtouchI18n />
-    <AssemblyName>Waypoint</AssemblyName>
-    <MtouchUseArmv7>false</MtouchUseArmv7>
-    <MtouchSdkVersion>3.0</MtouchSdkVersion>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
-    <DebugType>none</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\iPhone\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <CodesignKey>iPhone Developer</CodesignKey>
-    <DefineConstants>IPHONE</DefineConstants>
-    <AssemblyName>Waypoint</AssemblyName>
-    <MtouchUseArmv7>false</MtouchUseArmv7>
-    <MtouchSdkVersion>3.0</MtouchSdkVersion>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Distribution|iPhone' ">
-    <DebugType>none</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin</OutputPath>
-    <WarningLevel>4</WarningLevel>
-    <CodesignKey>iPhone Developer</CodesignKey>
-    <AssemblyName>MonoGame.Samples.Waypoint</AssemblyName>
-    <MtouchI18n />
-    <DefineConstants>IPHONE</DefineConstants>
-    <MtouchUseArmv7>false</MtouchUseArmv7>
-    <MtouchSdkVersion>3.0</MtouchSdkVersion>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Distribution|iPhoneSimulator' ">
-    <DebugType>none</DebugType>
-    <Optimize>False</Optimize>
-    <OutputPath>bin\Distribution</OutputPath>
-    <WarningLevel>4</WarningLevel>
-    <AssemblyName>MonoGameSamplesAiming</AssemblyName>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Xml" />
-    <Reference Include="System.Core" />
-    <Reference Include="monotouch" />
-    <Reference Include="OpenTK" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Main.cs" />
-    <Compile Include="AimingGame.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Folder Include="Content\" />
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <ItemGroup>
-    <Content Include="Default.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Content\spotlight.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Content\cat.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="GameThumbnail.png" />
-    <None Include="Info.iOS.plist">
-      <Link>Info.plist</Link>
-    </None>
-  </ItemGroup>
-</Project>

+ 46 - 0
Aiming/Aiming.sln

@@ -0,0 +1,46 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.2.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aiming.Android", "Platforms\Android\Aiming.Android.csproj", "{F1DCECB8-D539-6B7B-EAC5-A0D48B217A30}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aiming.iOS", "Platforms\iOS\Aiming.iOS.csproj", "{5E492C63-6CC8-4091-B25B-03A88120A8F0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aiming.Windows", "Platforms\Windows\Aiming.Windows.csproj", "{6FBA11F0-0AFB-66BD-1A3D-FB11E6CA972B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aiming.DesktopGL", "Platforms\DesktopGL\Aiming.DesktopGL.csproj", "{023C00AD-B2D9-50D2-3D3A-BD4AFBBD25CC}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{F1DCECB8-D539-6B7B-EAC5-A0D48B217A30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F1DCECB8-D539-6B7B-EAC5-A0D48B217A30}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F1DCECB8-D539-6B7B-EAC5-A0D48B217A30}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+		{F1DCECB8-D539-6B7B-EAC5-A0D48B217A30}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F1DCECB8-D539-6B7B-EAC5-A0D48B217A30}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F1DCECB8-D539-6B7B-EAC5-A0D48B217A30}.Release|Any CPU.Deploy.0 = Release|Any CPU
+		{5E492C63-6CC8-4091-B25B-03A88120A8F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5E492C63-6CC8-4091-B25B-03A88120A8F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5E492C63-6CC8-4091-B25B-03A88120A8F0}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+		{5E492C63-6CC8-4091-B25B-03A88120A8F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5E492C63-6CC8-4091-B25B-03A88120A8F0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5E492C63-6CC8-4091-B25B-03A88120A8F0}.Release|Any CPU.Deploy.0 = Release|Any CPU
+		{6FBA11F0-0AFB-66BD-1A3D-FB11E6CA972B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6FBA11F0-0AFB-66BD-1A3D-FB11E6CA972B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6FBA11F0-0AFB-66BD-1A3D-FB11E6CA972B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6FBA11F0-0AFB-66BD-1A3D-FB11E6CA972B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{023C00AD-B2D9-50D2-3D3A-BD4AFBBD25CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{023C00AD-B2D9-50D2-3D3A-BD4AFBBD25CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{023C00AD-B2D9-50D2-3D3A-BD4AFBBD25CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{023C00AD-B2D9-50D2-3D3A-BD4AFBBD25CC}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {041B000C-440E-4E15-AE36-5F085266BF6E}
+	EndGlobalSection
+EndGlobal

+ 0 - 359
Aiming/AimingGame.cs

@@ -1,359 +0,0 @@
-#region File Description
-//-----------------------------------------------------------------------------
-// Game.cs
-//
-// Microsoft XNA Community Game Platform
-// Copyright (C) Microsoft Corporation. All rights reserved.
-//-----------------------------------------------------------------------------
-#endregion
-
-#region Using Statements
-using System;
-
-using Microsoft.Xna.Framework;
-using Microsoft.Xna.Framework.Audio;
-using Microsoft.Xna.Framework.GamerServices;
-using Microsoft.Xna.Framework.Graphics;
-using Microsoft.Xna.Framework.Input;
-using Microsoft.Xna.Framework.Input.Touch;
-using Microsoft.Xna.Framework.Storage;
-using Microsoft.Xna.Framework.Content;
-using Microsoft.Xna.Framework.Media;
-
-#endregion
-
-namespace Aiming
-{
-    /// <summary>
-    /// this sample showing how to aim one object towards another. In this sample, a
-    /// spotlight turns to aim towards a cat that the player controls.
-    /// </summary>
-    public class AimingGame : Game
-    {
-        #region Constants
-
-        // how fast can the cat move?  this is in terms of pixels per frame.
-        const float CatSpeed = 10.0f;
-
-        // how fast can the spot light turn? this is in terms of radians per frame.
-        const float SpotlightTurnSpeed = 0.025f;
-
-        #endregion
-
-        #region Fields
-
-        GraphicsDeviceManager graphics;
-
-        // we'll need a spriteBatch to draw the spotlight and cat.
-        SpriteBatch spriteBatch;
-
-        // these four values control the spotlight and how it draws.
-        // first is the actual sprite that we'll draw to represent the spotlight.
-        Texture2D spotlightTexture;
-        // next is the position of the spotlight on the screen.
-        Vector2 spotlightPosition = new Vector2();
-        // the origin of the spotlightTexture. The spotlight will rotate around this
-        // point.
-        Vector2 spotlightOrigin = new Vector2();
-        // the angle that the spotlight is currently facing. this is in radians. a value
-        // of 0 points to the right.
-        float spotlightAngle = 0.0f;
-
-
-        // these next three variables control the cat. catTexture is the sprite that
-        // represents the cat...
-        Texture2D catTexture;
-        // ...catPosition is the cat's position on the screen...
-        Vector2 catPosition = new Vector2();
-        // ...and catOrigin is the origin of catTexture. the sprite will be drawn
-        // centered around this value.
-        Vector2 catOrigin = new Vector2();
-
-        #endregion
-
-        #region Initialization
-
-
-        public AimingGame()
-        {
-            graphics = new GraphicsDeviceManager(this);
-
-            Content.RootDirectory = "Content";
-
-#if WINDOWS_PHONE
-			graphics.SupportedOrientations = DisplayOrientation.Portrait;
-            graphics.PreferredBackBufferWidth = 480;
-            graphics.PreferredBackBufferHeight = 800;
-
-            TargetElapsedTime = TimeSpan.FromTicks(333333);
-
-#else
-            graphics.PreferredBackBufferWidth = 320;
-            graphics.PreferredBackBufferHeight = 480;
-#endif
-			graphics.IsFullScreen = true;
-        }
-
-
-        protected override void Initialize()
-        {
-            base.Initialize();
-
-            // once base.Initialize has finished, the GraphicsDevice will have been
-            // created, and we'll know how big the Viewport is. We want the spotlight
-            // to be centered in the middle of the screen, so we'll use the viewport
-            // to calculate where that is.
-            Viewport vp = graphics.GraphicsDevice.Viewport;
-            spotlightPosition.X = vp.X + vp.Width / 2;
-            spotlightPosition.Y = vp.Y + vp.Height / 2;
-
-            // we'll use the viewport size again, this time to put the cat on the
-            // screen. He goes 1/4 of the way across and halfway down.
-            catPosition.X = vp.X + vp.Width / 4;
-            catPosition.Y = vp.Y + vp.Height / 2;
-        }
-
-
-        /// <summary>
-        /// Load your graphics content.
-        /// </summary>
-        protected override void LoadContent()
-        {
-            // load our textures, and create a sprite batch...
-            spotlightTexture = Content.Load<Texture2D>("spotlight");
-            catTexture = Content.Load<Texture2D>("cat");
-            spriteBatch = new SpriteBatch(graphics.GraphicsDevice);
-
-            // now that we've loaded our textures, we can use them to calculate some
-            // values that we'll use when drawing them. When we draw the spotlight,
-            // it needs to rotate around the "source" of the light. since
-            // spriteBatch.Draw will rotate sprites around the "origin" parameter,
-            // we need spotlightOrigin to be the "source" of the light. Since I drew
-            // spotlight.png myself, I happen to know that the source is halfway
-            // down the left hand side of the texture.
-            spotlightOrigin.X = 0;
-            spotlightOrigin.Y = spotlightTexture.Height / 2;
-
-            // Next, we want spriteBatch to draw the cat texture centered on the
-            // "catPosition" vector. SpriteBatch.Draw will center the sprite on the
-            // "origin" parameter, so we'll just calculate that to be the middle of
-            // the texture.
-            catOrigin.X = catTexture.Width / 2;
-            catOrigin.Y = catTexture.Height / 2;
-        }
-
-
-        #endregion
-
-        #region Update and Draw
-
-
-        /// <summary>
-        /// Allows the game to run logic.
-        /// </summary>
-        protected override void Update(GameTime gameTime)
-        {
-            HandleInput();
-
-            // clamp the cat's position so that it stays on the screen.
-            Viewport vp = graphics.GraphicsDevice.Viewport;
-            catPosition.X = MathHelper.Clamp(catPosition.X, vp.X, vp.X + vp.Width);
-            catPosition.Y = MathHelper.Clamp(catPosition.Y, vp.Y, vp.Y + vp.Height);
-
-            // use the TurnToFace function to update the spotlightAngle to face
-            // towards the cat.
-            spotlightAngle = TurnToFace(spotlightPosition, catPosition, spotlightAngle,
-                SpotlightTurnSpeed);
-
-            base.Update(gameTime);
-        }
-
-        /// <summary>
-        /// Calculates the angle that an object should face, given its position, its
-        /// target's position, its current angle, and its maximum turning speed.
-        /// </summary>
-        private static float TurnToFace(Vector2 position, Vector2 faceThis,
-            float currentAngle, float turnSpeed)
-        {
-            // consider this diagram:
-            //         C 
-            //        /|
-            //      /  |
-            //    /    | y
-            //  / o    |
-            // S--------
-            //     x
-            // 
-            // where S is the position of the spot light, C is the position of the cat,
-            // and "o" is the angle that the spot light should be facing in order to 
-            // point at the cat. we need to know what o is. using trig, we know that
-            //      tan(theta)       = opposite / adjacent
-            //      tan(o)           = y / x
-            // if we take the arctan of both sides of this equation...
-            //      arctan( tan(o) ) = arctan( y / x )
-            //      o                = arctan( y / x )
-            // so, we can use x and y to find o, our "desiredAngle."
-            // x and y are just the differences in position between the two objects.
-            float x = faceThis.X - position.X;
-            float y = faceThis.Y - position.Y;
-
-            // we'll use the Atan2 function. Atan will calculates the arc tangent of 
-            // y / x for us, and has the added benefit that it will use the signs of x
-            // and y to determine what cartesian quadrant to put the result in.
-            // http://msdn2.microsoft.com/en-us/library/system.math.atan2.aspx
-            float desiredAngle = (float)Math.Atan2(y, x);
-
-            // so now we know where we WANT to be facing, and where we ARE facing...
-            // if we weren't constrained by turnSpeed, this would be easy: we'd just 
-            // return desiredAngle.
-            // instead, we have to calculate how much we WANT to turn, and then make
-            // sure that's not more than turnSpeed.
-
-            // first, figure out how much we want to turn, using WrapAngle to get our
-            // result from -Pi to Pi ( -180 degrees to 180 degrees )
-            float difference = WrapAngle(desiredAngle - currentAngle);
-
-            // clamp that between -turnSpeed and turnSpeed.
-            difference = MathHelper.Clamp(difference, -turnSpeed, turnSpeed);
-
-            // so, the closest we can get to our target is currentAngle + difference.
-            // return that, using WrapAngle again.
-            return WrapAngle(currentAngle + difference);
-        }
-
-        /// <summary>
-        /// Returns the angle expressed in radians between -Pi and Pi.
-        /// </summary>
-        private static float WrapAngle(float radians)
-        {
-            while (radians < -MathHelper.Pi)
-            {
-                radians += MathHelper.TwoPi;
-            }
-            while (radians > MathHelper.Pi)
-            {
-                radians -= MathHelper.TwoPi;
-            }
-            return radians;
-        }
-
-        /// <summary>
-        /// This is called when the game should draw itself.
-        /// </summary>
-        protected override void Draw(GameTime gameTime)
-        {
-            GraphicsDevice device = graphics.GraphicsDevice;
-
-            device.Clear(Color.Black);
-
-            // draw the cat.
-            spriteBatch.Begin();
-            spriteBatch.Draw(catTexture, catPosition, null, Color.White,
-                0.0f, catOrigin, 1.0f, SpriteEffects.None, 0.0f);
-            spriteBatch.End();
-
-            // Start sprite batch with additive blending, and draw the spotlight.
-            // Additive blending works very well for effects like lights and fire.
-            spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive);
-            spriteBatch.Draw(spotlightTexture, spotlightPosition, null, Color.White,
-                spotlightAngle, spotlightOrigin, 1.0f, SpriteEffects.None, 0.0f);
-            spriteBatch.End();
-
-            base.Draw(gameTime);
-        }
-
-
-        #endregion
-
-        #region Handle Input
-
-
-        /// <summary>
-        /// Handles input for quitting the game.
-        /// </summary>
-        void HandleInput()
-        {
-#if WINDOWS_PHONE
-            KeyboardState currentKeyboardState = new KeyboardState();
-#else
-            KeyboardState currentKeyboardState = Keyboard.GetState();
-#endif
-            GamePadState currentGamePadState = GamePad.GetState(PlayerIndex.One);
-            MouseState currentMouseState = Mouse.GetState();
-			TouchCollection currentTouchState = TouchPanel.GetState();
-
-            // Check for exit.
-            if (currentKeyboardState.IsKeyDown(Keys.Escape) ||
-                currentGamePadState.Buttons.Back == ButtonState.Pressed)
-            {
-                Exit();
-            }
-            // check to see if the user wants to move the cat. we'll create a vector
-            // called catMovement, which will store the sum of all the user's inputs.
-            Vector2 catMovement = currentGamePadState.ThumbSticks.Left;
-
-            // flip y: on the thumbsticks, down is -1, but on the screen, down is bigger
-            // numbers.
-            catMovement.Y *= -1;
-
-            if (currentKeyboardState.IsKeyDown(Keys.Left) ||
-                currentGamePadState.DPad.Left == ButtonState.Pressed)
-            {
-                catMovement.X -= 1.0f;
-            }
-            if (currentKeyboardState.IsKeyDown(Keys.Right) ||
-                currentGamePadState.DPad.Right == ButtonState.Pressed)
-            {
-                catMovement.X += 1.0f;
-            }
-            if (currentKeyboardState.IsKeyDown(Keys.Up) ||
-                currentGamePadState.DPad.Up == ButtonState.Pressed)
-            {
-                catMovement.Y -= 1.0f;
-            }
-            if (currentKeyboardState.IsKeyDown(Keys.Down) ||
-                currentGamePadState.DPad.Down == ButtonState.Pressed)
-            {
-                catMovement.Y += 1.0f;
-            }
-
-            //Move toward the touch point. We slow down the cat when it gets within a distance of CatSpeed to the touch point.
-            float smoothStop = 1;
-			
-			//if (currentTouchState != null )
-            {
-				if (currentTouchState.Count > 0)
-	            {
-					Vector2 touchPosition = currentTouchState[0].Position;
-		            if (touchPosition != catPosition)
-		            {
-		                catMovement = touchPosition - catPosition;
-		                float delta = CatSpeed - MathHelper.Clamp(catMovement.Length(), 0, CatSpeed);
-		                smoothStop = 1 - delta / CatSpeed;
-		            }
-				}
-			}
-			
-            Vector2 mousePosition = new Vector2(currentMouseState.X, currentMouseState.Y);
-            if (currentMouseState.LeftButton == ButtonState.Pressed && mousePosition != catPosition)
-            {
-                catMovement = mousePosition - catPosition;
-                float delta = CatSpeed - MathHelper.Clamp(catMovement.Length(), 0, CatSpeed);
-                smoothStop = 1 - delta / CatSpeed;
-            }
-
-            // normalize the user's input, so the cat can never be going faster than
-            // CatSpeed.
-            if (catMovement != Vector2.Zero)
-            {
-                catMovement.Normalize();
-            }
-
-            catPosition += catMovement * CatSpeed * smoothStop;
-
-
-        }
-
-        #endregion
-    }
-}

+ 15 - 0
Aiming/Core/Aiming.Core.csproj

@@ -0,0 +1,15 @@
+<Project Sdk="Microsoft.NET.Sdk">
+  <PropertyGroup>
+    <TargetFramework>net8.0</TargetFramework>
+    <RootNamespace>Aiming.Core</RootNamespace>
+    <AssemblyName>Aiming.Core</AssemblyName>
+    <Description>Shared game logic for Aiming MonoGame sample.</Description>
+    <Authors>CartBlanche</Authors>
+    <Company>CartBlanche</Company>
+    <Version>1.0.0</Version>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
+  <ItemGroup>
+    <PackageReference Include="MonoGame.Framework.DesktopGL" Version="3.8.*" />
+  </ItemGroup>
+</Project>

+ 116 - 0
Aiming/Core/AimingGame.cs

@@ -0,0 +1,116 @@
+//----------------------------------------------------------------------------- 
+// AimingGame.cs (moved to Core)
+// Microsoft XNA Community Game Platform
+// Copyright (C) Microsoft Corporation. All rights reserved.
+//-----------------------------------------------------------------------------
+
+using System;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using Microsoft.Xna.Framework.Input.Touch;
+using Microsoft.Xna.Framework.Content;
+
+namespace Aiming
+{
+    /// <summary>
+    /// This sample shows how to aim one object towards another. In this sample, a
+    /// spotlight turns to aim towards a cat that the player controls.
+    /// </summary>
+    public class AimingGame : Game
+    {
+        // how fast can the cat move?  this is in terms of pixels per frame.
+        const float CatSpeed = 10.0f;
+        // how fast can the spot light turn? this is in terms of radians per frame.
+        const float SpotlightTurnSpeed = 0.025f;
+        GraphicsDeviceManager graphics;
+        SpriteBatch spriteBatch;
+        Texture2D spotlightTexture;
+        Vector2 spotlightPosition = new Vector2();
+        Vector2 spotlightOrigin = new Vector2();
+        float spotlightAngle = 0.0f;
+        Texture2D catTexture;
+        Vector2 catPosition = new Vector2();
+        Vector2 catOrigin = new Vector2();
+        public AimingGame()
+        {
+            graphics = new GraphicsDeviceManager(this);
+            Content.RootDirectory = "Content";
+            graphics.PreferredBackBufferWidth = 640;
+            graphics.PreferredBackBufferHeight = 720;
+#if MOBILE
+            graphics.IsFullScreen = true;
+#endif
+        }
+        protected override void Initialize()
+        {
+            base.Initialize();
+            Viewport vp = graphics.GraphicsDevice.Viewport;
+            spotlightPosition.X = vp.X + vp.Width / 2;
+            spotlightPosition.Y = vp.Y + vp.Height / 2;
+            catPosition.X = vp.X + vp.Width / 4;
+            catPosition.Y = vp.Y + vp.Height / 2;
+        }
+        protected override void LoadContent()
+        {
+            spriteBatch = new SpriteBatch(GraphicsDevice);
+            spotlightTexture = Content.Load<Texture2D>("spotlight");
+            spotlightOrigin.X = spotlightTexture.Width / 2;
+            spotlightOrigin.Y = spotlightTexture.Height / 2;
+            catTexture = Content.Load<Texture2D>("cat");
+            catOrigin.X = catTexture.Width / 2;
+            catOrigin.Y = catTexture.Height / 2;
+        }
+        protected override void Update(GameTime gameTime)
+        {
+            // Allows the game to exit
+            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed ||
+                Keyboard.GetState().IsKeyDown(Keys.Escape))
+                Exit();
+            // Move the cat with arrow keys or touch
+            Vector2 move = Vector2.Zero;
+            KeyboardState keyState = Keyboard.GetState();
+            if (keyState.IsKeyDown(Keys.Left)) move.X -= 1;
+            if (keyState.IsKeyDown(Keys.Right)) move.X += 1;
+            if (keyState.IsKeyDown(Keys.Up)) move.Y -= 1;
+            if (keyState.IsKeyDown(Keys.Down)) move.Y += 1;
+            if (move.Length() > 1)
+                move.Normalize();
+            catPosition += move * CatSpeed;
+            // Touch input (for mobile)
+            TouchCollection touches = TouchPanel.GetState();
+            if (touches.Count > 0)
+            {
+                Vector2 touch = touches[0].Position;
+                Vector2 diff = touch - catPosition;
+                if (diff.Length() > CatSpeed)
+                {
+                    diff.Normalize();
+                    catPosition += diff * CatSpeed;
+                }
+                else
+                {
+                    catPosition = touch;
+                }
+            }
+            // Aim the spotlight at the cat
+            Vector2 toCat = catPosition - spotlightPosition;
+            float desiredAngle = (float)Math.Atan2(toCat.Y, toCat.X);
+            float delta = MathHelper.WrapAngle(desiredAngle - spotlightAngle);
+            if (Math.Abs(delta) < SpotlightTurnSpeed)
+                spotlightAngle = desiredAngle;
+            else
+                spotlightAngle += Math.Sign(delta) * SpotlightTurnSpeed;
+            base.Update(gameTime);
+        }
+        protected override void Draw(GameTime gameTime)
+        {
+            GraphicsDevice.Clear(Color.CornflowerBlue);
+            spriteBatch.Begin();
+            spriteBatch.Draw(spotlightTexture, spotlightPosition, null, Color.White, spotlightAngle, spotlightOrigin, 1.0f, SpriteEffects.None, 0f);
+            spriteBatch.Draw(catTexture, catPosition, null, Color.White, 0f, catOrigin, 1.0f, SpriteEffects.None, 0f);
+            spriteBatch.End();
+            base.Draw(gameTime);
+        }
+    }
+}

+ 37 - 0
Aiming/Core/Content/Content.mgcb

@@ -0,0 +1,37 @@
+#----------------------------- Global Properties ----------------------------#
+
+/outputDir:bin/$(Platform)
+/intermediateDir:obj/$(Platform)
+/platform:DesktopGL
+/config:
+/profile:Reach
+/compress:False
+
+#-------------------------------- References --------------------------------#
+
+
+#---------------------------------- Content ----------------------------------#
+
+#begin cat.png
+/importer:TextureImporter
+/processor:TextureProcessor
+/processorParam:ColorKeyColor=255,0,255,255
+/processorParam:ColorKeyEnabled=True
+/processorParam:GenerateMipmaps=False
+/processorParam:PremultiplyAlpha=True
+/processorParam:ResizeToPowerOfTwo=False
+/processorParam:MakeSquare=False
+/processorParam:TextureFormat=Color
+/build:cat.png
+
+#begin spotlight.png
+/importer:TextureImporter
+/processor:TextureProcessor
+/processorParam:ColorKeyColor=255,0,255,255
+/processorParam:ColorKeyEnabled=True
+/processorParam:GenerateMipmaps=False
+/processorParam:PremultiplyAlpha=True
+/processorParam:ResizeToPowerOfTwo=False
+/processorParam:MakeSquare=False
+/processorParam:TextureFormat=Color
+/build:spotlight.png

+ 0 - 0
Aiming/Default.png → Aiming/Core/Content/Default.png


+ 0 - 0
Aiming/GameThumbnail.png → Aiming/Core/Content/GameThumbnail.png


+ 0 - 0
Aiming/Content/cat.png → Aiming/Core/Content/cat.png


+ 0 - 0
Aiming/Content/spotlight.png → Aiming/Core/Content/spotlight.png


+ 0 - 51
Aiming/Main.cs

@@ -1,51 +0,0 @@
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-#if IPHONE
-using MonoTouch.Foundation;
-using MonoTouch.UIKit;
-#endif
-
-namespace Aiming
-{
-	#region Entry Point
-#if IPHONE
-    [Register("AppDelegate")]
-    class Program : UIApplicationDelegate
-    {
-        AimingGame game;
-        public override void FinishedLaunching(UIApplication app)
-        {
-            // Fun begins..
-            game = new AimingGame();
-            game.Run();
-        }
-
-        /// <summary>
-        /// The main entry point for the application.
-        /// </summary>
-        static void Main(string[] args)
-        {
-            UIApplication.Main(args, null, "AppDelegate");
-        }
-    }    
-#else
-    /// <summary>
-    /// The main entry point for the application.
-    /// </summary>
-    static class Program
-    {
-        static void Main()
-        {
-            using (AimingGame game = new AimingGame())
-            {
-                game.Run();
-            }
-        }
-    }    
-#endif
-    #endregion
-}
-

+ 29 - 0
Aiming/Platforms/Android/Aiming.Android.csproj

@@ -0,0 +1,29 @@
+<Project Sdk="Microsoft.NET.Sdk">
+  <PropertyGroup>
+    <TargetFramework>net8.0-android</TargetFramework>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>Aiming.Android</RootNamespace>
+    <AssemblyName>Aiming.Android</AssemblyName>
+    <Description>Android platform for Aiming MonoGame sample.</Description>
+    <Authors>CartBlanche</Authors>
+    <Company>MonoGame Foundation</Company>
+    <Version>1.0.0</Version>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    <AndroidManifest>AndroidManifest.xml</AndroidManifest>
+    <SupportedOSPlatformVersion>28.0</SupportedOSPlatformVersion>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\Core\Aiming.Core.csproj" />
+  </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="MonoGame.Framework.Android" Version="3.8.4" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="..\..\..\CompiledContent\Android\Content\Textures\cat.xnb" Link="Content\cat.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="..\..\..\CompiledContent\Android\Content\Textures\spotlight.xnb" Link="Content\spotlight.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+</Project>

+ 20 - 0
Aiming/Platforms/Android/AndroidManifest.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.cartblanche.aiming"
+    android:versionCode="1"
+    android:versionName="1.0">
+    <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="34" />
+    <application android:label="Aiming Sample" android:icon="@mipmap/ic_launcher">
+        <activity android:name="android.app.Activity"
+            android:label="Aiming Sample"
+            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:screenOrientation="landscape"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>

+ 20 - 0
Aiming/Platforms/Android/MainActivity.cs

@@ -0,0 +1,20 @@
+using Android.App;
+using Android.Content.PM;
+using Android.OS;
+using Microsoft.Xna.Framework;
+
+namespace Aiming.Android
+{
+    [Activity (Label = "Aiming Sample", MainLauncher = true
+	          , Icon = "@drawable/icon", Theme = "@style/Theme.Splash",ConfigurationChanges=ConfigChanges.Orientation|ConfigChanges.Keyboard|ConfigChanges.KeyboardHidden)]	
+    public class MainActivity : AndroidGameActivity
+    {
+        protected override void OnCreate(Bundle savedInstanceState)
+        {
+            base.OnCreate(savedInstanceState);
+            var game = new AimingGame();
+            SetContentView((game.Services.GetService(typeof(Android.Views.View))) as Android.Views.View);
+            game.Run();
+        }
+    }
+}

+ 25 - 0
Aiming/Platforms/DesktopGL/Aiming.DesktopGL.csproj

@@ -0,0 +1,25 @@
+<Project Sdk="Microsoft.NET.Sdk">
+  <PropertyGroup>
+    <TargetFramework>net8.0</TargetFramework>
+    <OutputType>WinExe</OutputType>
+    <RootNamespace>Aiming.DesktopGL</RootNamespace>
+    <AssemblyName>Aiming.DesktopGL</AssemblyName>
+    <Description>DesktopGL platform for Aiming MonoGame sample.</Description>
+    <Authors>CartBlanche</Authors>
+    <Company>MonoGame Foundation</Company>
+    <Version>1.0.0</Version>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\Core\Aiming.Core.csproj" />
+    <PackageReference Include="MonoGame.Framework.DesktopGL" Version="3.8.*" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="..\..\..\CompiledContent\Windows\Content\Textures\cat.xnb" Link="Content\cat.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="..\..\..\CompiledContent\Windows\Content\Textures\spotlight.xnb" Link="Content\spotlight.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+</Project>

+ 14 - 0
Aiming/Platforms/DesktopGL/Program.cs

@@ -0,0 +1,14 @@
+using System;
+
+namespace Aiming.DesktopGL
+{
+    public static class Program
+    {
+        [STAThread]
+        static void Main()
+        {
+            using var game = new Aiming.AimingGame();
+            game.Run();
+        }
+    }
+}

+ 26 - 0
Aiming/Platforms/Windows/Aiming.Windows.csproj

@@ -0,0 +1,26 @@
+<Project Sdk="Microsoft.NET.Sdk">
+  <PropertyGroup>
+    <TargetFramework>net8.0-windows</TargetFramework>
+    <OutputType>WinExe</OutputType>
+    <UseWindowsForms>true</UseWindowsForms>
+    <RootNamespace>Aiming.Windows</RootNamespace>
+    <AssemblyName>Aiming.Windows</AssemblyName>
+    <Description>Windows platform for Aiming MonoGame sample.</Description>
+    <Authors>CartBlanche</Authors>
+    <Company>MonoGame Foundation</Company>
+    <Version>1.0.0</Version>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\Core\Aiming.Core.csproj" />
+    <PackageReference Include="MonoGame.Framework.DesktopGL" Version="3.8.*" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="..\..\..\CompiledContent\Windows\Content\Textures\cat.xnb" Link="Content\cat.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="..\..\..\CompiledContent\Windows\Content\Textures\spotlight.xnb" Link="Content\spotlight.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+</Project>

+ 14 - 0
Aiming/Platforms/Windows/Program.cs

@@ -0,0 +1,14 @@
+using System;
+
+namespace Aiming.Windows
+{
+    public static class Program
+    {
+        [STAThread]
+        static void Main()
+        {
+            using var game = new Aiming.AimingGame();
+            game.Run();
+        }
+    }
+}

+ 26 - 0
Aiming/Platforms/iOS/Aiming.iOS.csproj

@@ -0,0 +1,26 @@
+<Project Sdk="Microsoft.NET.Sdk">
+  <PropertyGroup>
+    <TargetFramework>net8.0-ios</TargetFramework>
+    <OutputType>Exe</OutputType>
+    <SupportedOSPlatformVersion>11.0</SupportedOSPlatformVersion>
+    <RootNamespace>Aiming.iOS</RootNamespace>
+    <AssemblyName>Aiming.iOS</AssemblyName>
+    <Description>iOS platform for Aiming MonoGame sample.</Description>
+    <Authors>CartBlanche</Authors>
+    <Company>MonoGame Foundation</Company>
+    <Version>1.0.0</Version>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+  </PropertyGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\Core\Aiming.Core.csproj" />
+    <PackageReference Include="MonoGame.Framework.iOS" Version="3.8.*" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="..\..\..\CompiledContent\iOS\Content\Textures\cat.xnb" Link="Content\cat.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="..\..\..\CompiledContent\iOS\Content\Textures\spotlight.xnb" Link="Content\spotlight.xnb">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+</Project>

+ 24 - 0
Aiming/Platforms/iOS/Info.plist

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+    <key>CFBundleDisplayName</key>
+    <string>Aiming Sample</string>
+    <key>CFBundleIdentifier</key>
+    <string>com.cartblanche.aiming</string>
+    <key>CFBundleVersion</key>
+    <string>1.0</string>
+    <key>CFBundleShortVersionString</key>
+    <string>1.0.0</string>
+    <key>UILaunchStoryboardName</key>
+    <string>LaunchScreen</string>
+    <key>LSRequiresIPhoneOS</key>
+    <true/>
+    <key>UISupportedInterfaceOrientations</key>
+    <array>
+        <string>UIInterfaceOrientationPortrait</string>
+        <string>UIInterfaceOrientationLandscapeLeft</string>
+        <string>UIInterfaceOrientationLandscapeRight</string>
+    </array>
+</dict>
+</plist>

+ 24 - 0
Aiming/Platforms/iOS/Main.cs

@@ -0,0 +1,24 @@
+using Foundation;
+using UIKit;
+
+namespace Aiming.iOS
+{
+    [Register("AppDelegate")]
+    public class AppDelegate : UIApplicationDelegate
+    {
+        AimingGame game;
+        public override void FinishedLaunching(UIApplication app)
+        {
+            game = new AimingGame();
+            game.Run();
+        }
+    }
+
+    public class Application
+    {
+        static void Main(string[] args)
+        {
+            UIApplication.Main(args, null, "AppDelegate");
+        }
+    }
+}

+ 63 - 0
Aiming/README.md

@@ -0,0 +1,63 @@
+# Aiming MonoGame Sample
+
+This is a cross-platform MonoGame 3.8.4 sample project demonstrating how to aim one object towards another (e.g., a spotlight tracking a cat). The project is organized for modern .NET 8 SDK-style builds and supports Windows, DesktopGL, Android, and iOS.
+
+## Project Structure
+
+```
+Aiming/
+├── Core/                # Shared game logic (AimingGame.cs, Aiming.Core.csproj)
+├── Platforms/
+│   ├── Windows/         # Windows-specific entry point and csproj
+│   ├── DesktopGL/       # DesktopGL (cross-platform OpenGL) entry point and csproj
+│   ├── Android/         # Android entry point, csproj, and manifest
+│   └── iOS/             # iOS entry point, csproj, and Info.plist
+├── Content/             # Shared content (PNG, XNB, etc.)
+├── .vscode/             # VS Code tasks and launch configs
+├── README.md            # This file
+└── Aiming.sln           # Visual Studio solution
+```
+
+## Prerequisites
+- .NET 8 SDK
+- MonoGame 3.8.4 (NuGet packages are referenced automatically)
+- For Android/iOS: Xamarin/MAUI workloads and platform SDKs
+- Visual Studio 2022+ or VS Code
+
+## Building and Running
+
+### With Visual Studio
+- Open `Aiming.sln`
+- Set the desired platform project as startup (Windows, DesktopGL, Android, or iOS)
+- Build and run
+
+### With VS Code
+- Use the provided tasks and launch configurations:
+  - **Build:**
+    - `build-windows` — Windows
+    - `build-desktopgl` — DesktopGL
+    - `build-android` — Android
+    - `build-ios` — iOS
+  - **Run/Debug:**
+    - `Run Windows` — Launches Windows build
+    - `Run DesktopGL` — Launches DesktopGL build
+- Press `Ctrl+Shift+B` to build, or use the Run/Debug panel
+
+### Command Line
+```
+dotnet build Platforms/Windows/Aiming.Windows.csproj
+# or
+dotnet build Platforms/DesktopGL/Aiming.DesktopGL.csproj
+# or
+ dotnet build Platforms/Android/Aiming.Android.csproj
+# or
+ dotnet build Platforms/iOS/Aiming.iOS.csproj
+```
+
+## Notes
+- Content is loaded as `.xnb` or `.png` files directly, depending on platform.
+- Android/iOS builds require the appropriate SDKs and emulators/devices.
+- If you encounter issues with Android entry points, check the MonoGame 3.8.4 documentation for the latest supported base class for `MainActivity`.
+
+## License
+MIT (see LICENSE if present)

+ 0 - 31
Aiming/app.xml

@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<application project_name="Aiming" version="1.00" runtime_version="1.11" sdk_version="1.11.00" default_locale="en-US">
-  <name />
-  <short_name />
-  <parental_control lock_level="2" />
-  <rating_list highest_age_limit="3" has_online_features="false">
-    <online_features chat="false" personal_info="false" user_location="false" exchange_content="false" />
-    <rating type="ESRB" value="3" age="3" code="" />
-    <rating type="PEGIEX" value="3" age="3" code="" />
-  </rating_list>
-  <images />
-  <genre_list />
-  <developer>
-    <name value="" />
-  </developer>
-  <website href="" />
-  <copyright author="" />
-  <purchase>
-    <product_list />
-  </purchase>
-  <runtime_config>
-    <memory managed_heap_size="32768" resource_heap_size="65536" />
-    <display max_screen_size="1920x1200" />
-    <camera max_capture_resolution="2048x1536" />
-  </runtime_config>
-  <feature_list>
-    <feature value="GamePad" />
-	<feature value="Touch" />
-	<feature value="Motion" />
-  </feature_list>
-</application>