p
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
HLH+*+&3U><
literal 0
HcmV?d00001
diff --git a/Game.IOS/Entitlements.plist b/Game.IOS/Entitlements.plist
new file mode 100644
index 0000000..9ae5993
--- /dev/null
+++ b/Game.IOS/Entitlements.plist
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Game.IOS/Game.IOS.csproj b/Game.IOS/Game.IOS.csproj
new file mode 100644
index 0000000..b1f2495
--- /dev/null
+++ b/Game.IOS/Game.IOS.csproj
@@ -0,0 +1,133 @@
+
+
+
+
+ Debug
+ iPhoneSimulator
+ {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ {E4A7F2B4-26BB-435B-AD80-F8F8336C4A89}
+ Exe
+ Game.IOS
+ Resources
+ Game.IOS
+ iOS
+
+
+ true
+ full
+ false
+ bin\$(Platform)\$(Configuration)
+ DEBUG;
+ prompt
+ 4
+ false
+ i386, x86_64
+ None
+ true
+ true
+ true
+ true
+ true
+
+
+ none
+ true
+ bin\$(Platform)\$(Configuration)
+ prompt
+ 4
+ false
+ i386, x86_64
+ None
+ true
+ true
+
+
+ true
+ full
+ false
+ bin\$(Platform)\$(Configuration)
+ DEBUG;
+ prompt
+ 4
+ false
+ ARMv7, ARMv7s, ARM64
+ true
+ true
+ true
+ true
+ true
+ Entitlements.plist
+ iPhone Developer
+
+
+ none
+ true
+ bin\$(Platform)\$(Configuration)
+ prompt
+ 4
+ false
+ ARMv7, ARMv7s, ARM64
+ true
+ true
+ Entitlements.plist
+ iPhone Developer
+
+
+ none
+ True
+ bin\$(Platform)\$(Configuration)
+ prompt
+ 4
+ False
+ ARMv7, ARMv7s, ARM64
+ true
+ true
+ Entitlements.plist
+ True
+ Automatic:AdHoc
+ iPhone Distribution
+
+
+ none
+ True
+ bin\$(Platform)\$(Configuration)
+ prompt
+ 4
+ False
+ ARMv7, ARMv7s, ARM64
+ true
+ true
+ Entitlements.plist
+ Automatic:AppStore
+ iPhone Distribution
+
+
+
+
+
+
+ ..\packages\MonoGame.Framework.iOS.3.6.0.1625\lib\XamariniOS\MonoGame.Framework.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Game.IOS/Game1.cs b/Game.IOS/Game1.cs
new file mode 100644
index 0000000..4b8b8c1
--- /dev/null
+++ b/Game.IOS/Game1.cs
@@ -0,0 +1,84 @@
+using System;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+
+namespace Game.IOS
+{
+ ///
+ /// This is the main type for your game.
+ ///
+ public class Game1 : Microsoft.Xna.Framework.Game
+ {
+ GraphicsDeviceManager graphics;
+ SpriteBatch spriteBatch;
+
+ public Game1()
+ {
+ graphics = new GraphicsDeviceManager(this);
+ Content.RootDirectory = "Content";
+ graphics.IsFullScreen = true;
+ }
+
+ ///
+ /// Allows the game to perform any initialization it needs to before starting to run.
+ /// This is where it can query for any required services and load any non-graphic
+ /// related content. Calling base.Initialize will enumerate through any components
+ /// and initialize them as well.
+ ///
+ protected override void Initialize()
+ {
+ // TODO: Add your initialization logic here
+ base.Initialize();
+
+ }
+
+ ///
+ /// LoadContent will be called once per game and is the place to load
+ /// all of your content.
+ ///
+ protected override void LoadContent()
+ {
+ // Create a new SpriteBatch, which can be used to draw textures.
+ spriteBatch = new SpriteBatch(GraphicsDevice);
+
+ //TODO: Use Content to load your game content here
+ }
+
+ ///
+ /// Allows the game to run logic such as updating the world,
+ /// checking for collisions, gathering input, and playing audio.
+ ///
+ /// Provides a snapshot of timing values.
+ protected override void Update(GameTime gameTime)
+ {
+ // For Mobile devices, this logic will close the Game when the Back button is pressed.
+ // Exit() is obsolete on iOS
+#if !__IOS__ && !__TVOS__
+ if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed ||
+ Keyboard.GetState().IsKeyDown(Keys.Escape))
+ {
+ Exit();
+ }
+#endif
+
+ // TODO: Add your update logic here
+
+ base.Update(gameTime);
+ }
+
+ ///
+ /// This is called when the game should draw itself.
+ ///
+ /// Provides a snapshot of timing values.
+ protected override void Draw(GameTime gameTime)
+ {
+ graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
+
+ //TODO: Add your drawing code here
+
+ base.Draw(gameTime);
+ }
+ }
+}
+
diff --git a/Game.IOS/GameThumbnail.png b/Game.IOS/GameThumbnail.png
new file mode 100644
index 0000000000000000000000000000000000000000..14c929ffde1c85ae21b71f60215a59c243a2ab9e
GIT binary patch
literal 15516
zcmeI3dsGuw9>+&~Y=zZ*sMYPRng-pY#V|=A2F4^md4n1nAqx1yAsLd(c|<
zxM>K61&yG!iH=0|BtplS{YgEOLiuN!t*i&b6p(2pb#p0)AcZo}7NxN9CF*5iXKV&s5*!?ii>0_!Dq8OYd_Evnmx_bwm+P*j)GP!!Xoja9DcVlz)cx>)c@T`!6
zy;ma4Mv)H2rezqD%2Q>UR)m7EFn3i6MkUY|J>#^GR^Xj2?d#p1jS43nl!~p#0FgLA
zB$a5T0Yspf5X(ej8C#V|5|6S|4mG2vQ?pug1d7CRkwl^uO9@#JAr3-wAj-};*!`m?
z9pq2Sf@+aGdL5C<*vzCuMVmW9>DBG%v2xCl)jhz;y3Q*u(H6t!}r4ca}
zyMwgosF-jS+u%>rdLmGsN~P$6bfQ#AkX{r(1yZ6QG9^`{lTqRzsVqn$lTdDmYBg$q
zC3QHXOLy&-mel&6nHsUblKNd6%^q~53DLM_|8s}vBF!s9Mbmb+KC_UzWvkbHmc>(P
z9a~#FOtkw0Seg0)M5gePoY5(Y2(q?6Tqm#RScqqz5h&GInJhr2z&kg0c4+8K%9I#Rv-{WXs!Ex>
z#nZW?OJh=ZMx>*~=vgY{-?@7wJ+17+0{fhTw>_wIT;#Tm@Cyg+ck~Mi6oE>1+KfX9W>;EZ`(oQO~Xj|-*28S}U}5upMe7fORO=5cW%LIpf7
zlm=(a!laiKIgV;&bLB2>WRLTPZuJT6W|
zsDQ_X(%_7FT%3qd0gnr%!5Qc`E|dmm%;VxjgbH|EC=Je-
z$Hj>V74W!F8k{kYixUwl;BlceIAb0cCn8k9<3ee0#yl=gM5utrh0@@Rd0d=`Pyvq%
zrNJ4$7MFMXn}3vrec#W?zSy@nPBoT&Cs3e^j#Fb;_DBp{1Q`2LA^V*!#;}Ij7)Ag#
zm|2}%7KvfKj4|OM+RU1}8LN*nR-f;*fK6we*V7^~0
zmoNX|=9cnJYwDg}wV$}v^b8WmyxBAFpX2vut%#ZEOVV4OWEB_3kPp{GFR$OQvy3m>
z7oM&>bYw{Z?WK8oaOCp5JUtT&CDvPq2WGQ3_Gd3V9h{)nmXa4g+`MY@J~au9rbvcIK%Bb+*$
zd?2G={JiPkH3EB0ghx;0aN^|9DSz010Q`m@DbL?WXd{l~7=xeEdLaH={9%c%sH*xF
z^rus1=KZL8etF#Z)ehY2SV3rdLI9KjP>^CJ
zpVksN@&99%DFlXJ`@Sbs>}jqAdEAZl0N!ukyPJPy-qx~VA4T4%
zsrvNuON|r1jRH73FL^`VoSwgh@X*Q5h47ceFXzJ;SUyMmHWs-1-m!9kff$zd_#_P8
zMW%rTBU
z8i2X;agMN0{=a4c3|{eXzdq**uT|W
z5VjmO5pVd6&Z>S9Icd+5;_rK1e71R8kFZbXJX^Wn%19QjJ?#fN%CK-IK=q?N8@46n
zR?U{N_K&8YJ`1}_&Yd~c3^2(6D;oYdE^1KD-AQ8$PQl)Sw0@&@ZMabi;*#C7ZkVKg
zvl=vW;CbALwF#QhzYpE?eB?L!sqp|SZsp&9dF()B?TcllkaunZY%^sot^On#ZZ|(U
zI~iaE9L&d0E*ep|DLry2JB7XxOK18SHs9X2wpZSHyIK9KsOY-!5c{^VNzO!qQuB!p?bc
zX344_hUL6$4r*$;dimX)K228-B=q%%Slhu8(}R?h8NPo%K0NxZ*=n$@nvx2>BgyF-
z4ZF@1*X>+gcT^AMbw`g?N6QY^UqAlAr|(}#0&Ky9(h^$kWX}dHCL%Wc
+
+
+
+ CFBundleDisplayName
+ Game.IOS
+ CFBundleIconFiles
+
+ GameThumbnail.png
+
+ CFBundleIdentifier
+ project.MonoGame.Game.IOS
+ MinimumOSVersion
+ 7.0
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+
+
diff --git a/Game.IOS/Program.cs b/Game.IOS/Program.cs
new file mode 100644
index 0000000..63e6d88
--- /dev/null
+++ b/Game.IOS/Program.cs
@@ -0,0 +1,31 @@
+using System;
+using Foundation;
+using UIKit;
+
+namespace Game.IOS
+{
+ [Register("AppDelegate")]
+ class Program : UIApplicationDelegate
+ {
+ private static Game1 game;
+
+ internal static void RunGame()
+ {
+ game = new Game1();
+ game.Run();
+ }
+
+ ///
+ /// The main entry point for the application.
+ ///
+ static void Main(string[] args)
+ {
+ UIApplication.Main(args, null, "AppDelegate");
+ }
+
+ public override void FinishedLaunching(UIApplication app)
+ {
+ RunGame();
+ }
+ }
+}
diff --git a/Game.IOS/Properties/AssemblyInfo.cs b/Game.IOS/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..d76fb1a
--- /dev/null
+++ b/Game.IOS/Properties/AssemblyInfo.cs
@@ -0,0 +1,34 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Game.IOS")]
+[assembly: AssemblyProduct("Game.IOS")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyCopyright("Copyright © 2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
+
diff --git a/Game.IOS/packages.config b/Game.IOS/packages.config
new file mode 100644
index 0000000..1fec607
--- /dev/null
+++ b/Game.IOS/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/Game.UWP/App.xaml b/Game.UWP/App.xaml
new file mode 100644
index 0000000..f5e808d
--- /dev/null
+++ b/Game.UWP/App.xaml
@@ -0,0 +1,8 @@
+
+
+
diff --git a/Game.UWP/App.xaml.cs b/Game.UWP/App.xaml.cs
new file mode 100644
index 0000000..2b297a9
--- /dev/null
+++ b/Game.UWP/App.xaml.cs
@@ -0,0 +1,134 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices.WindowsRuntime;
+using Windows.ApplicationModel;
+using Windows.ApplicationModel.Activation;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+using Windows.UI.ViewManagement;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Controls.Primitives;
+using Windows.UI.Xaml.Data;
+using Windows.UI.Xaml.Input;
+using Windows.UI.Xaml.Media;
+using Windows.UI.Xaml.Navigation;
+
+// The Blank Application template is documented at http://go.microsoft.com/fwlink/?LinkId=402347&clcid=0x409
+
+namespace Game.UWP
+{
+ ///
+ /// Provides application-specific behavior to supplement the default Application class.
+ ///
+ sealed partial class App : Application
+{
+ static string deviceFamily;
+
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ this.Suspending += OnSuspending;
+
+ //API check to ensure the "RequiresPointerMode" property exists, ensuring project is running on build 14393 or later
+ if (Windows.Foundation.Metadata.ApiInformation.IsPropertyPresent("Windows.UI.Xaml.Application", "RequiresPointerMode"))
+ {
+ //If running on the Xbox, disable the default on screen pointer
+ if (IsXbox())
+ {
+ Application.Current.RequiresPointerMode = ApplicationRequiresPointerMode.WhenRequested;
+ }
+ }
+ }
+
+ ///
+ /// Detection code in Windows 10 to identify the platform it is being run on
+ /// This function returns true if the project is running on an XboxOne
+ ///
+ public static bool IsXbox()
+ {
+ if (deviceFamily == null)
+ deviceFamily = Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily;
+
+ return deviceFamily == "Windows.Xbox";
+ }
+
+ ///
+ /// Invoked when the application is launched normally by the end user. Other entry points
+ /// will be used such as when the application is launched to open a specific file.
+ ///
+ /// Details about the launch request and process.
+ protected override void OnLaunched(LaunchActivatedEventArgs e)
+ {
+ // By default we want to fill the entire core window.
+ ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseCoreWindow);
+
+#if DEBUG
+ if (System.Diagnostics.Debugger.IsAttached)
+ {
+ this.DebugSettings.EnableFrameRateCounter = true;
+ }
+#endif
+
+ Frame rootFrame = Window.Current.Content as Frame;
+
+ // Do not repeat app initialization when the Window already has content,
+ // just ensure that the window is active
+ if (rootFrame == null)
+ {
+ // Create a Frame to act as the navigation context and navigate to the first page
+ rootFrame = new Frame();
+
+ rootFrame.NavigationFailed += OnNavigationFailed;
+
+ if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
+ {
+ //TODO: Load state from previously suspended application
+ }
+
+ // Place the frame in the current Window
+ Window.Current.Content = rootFrame;
+ }
+
+ if (rootFrame.Content == null)
+ {
+ // When the navigation stack isn't restored navigate to the first page,
+ // configuring the new page by passing required information as a navigation
+ // parameter
+ rootFrame.Navigate(typeof(GamePage), e.Arguments);
+ }
+ // Ensure the current window is active
+ Window.Current.Activate();
+ }
+
+ ///
+ /// Invoked when Navigation to a certain page fails
+ ///
+ /// The Frame which failed navigation
+ /// Details about the navigation failure
+ void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
+ {
+ throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
+ }
+
+ ///
+ /// Invoked when application execution is being suspended. Application state is saved
+ /// without knowing whether the application will be terminated or resumed with the contents
+ /// of memory still intact.
+ ///
+ /// The source of the suspend request.
+ /// Details about the suspend request.
+ private void OnSuspending(object sender, SuspendingEventArgs e)
+ {
+ var deferral = e.SuspendingOperation.GetDeferral();
+ //TODO: Save application state and stop any background activity
+ deferral.Complete();
+ }
+}
+}
\ No newline at end of file
diff --git a/Game.UWP/Assets/LockScreenLogo.scale-200.png b/Game.UWP/Assets/LockScreenLogo.scale-200.png
new file mode 100644
index 0000000000000000000000000000000000000000..735f57adb5dfc01886d137b4e493d7e97cf13af3
GIT binary patch
literal 1430
zcmaJ>TTC2P7~aKltDttVHYH6u8Io4i*}3fO&d$gd*bA_<3j~&e7%8(eXJLfhS!M@!
zKrliY>>6yT4+Kr95$!DoD(Qn-5TP|{V_KS`k~E6(LGS@#`v$hQo&^^BKsw3HIsZBT
z_y6C2n`lK@apunKojRQ^(_P}Mgewt$(^BBKCTZ;*xa?J3wQ7~@S0lUvbcLeq1Bg4o
zH-bvQi|wt~L7q$~a-gDFP!{&TQfc3fX*6=uHv*
zT&1&U(-)L%Xp^djI2?~eBF2cxC@YOP$+9d?P&h?lPy-9M2UT9fg5jKm1t$m#iWE{M
zIf%q9@;fyT?0UP>tcw-bLkz;s2LlKl2qeP0w
zECS7Ate+Awk|KQ+DOk;fl}Xsy4o^CY=pwq%QAAKKl628_yNPsK>?A>%D8fQG6IgdJ
ztnxttBz#NI_a@fk7SU`WtrpsfZsNs9^0(2a
z@C3#YO3>k~w7?2hipBf{#b6`}Xw1hlG$yi?;1dDs7k~xDAw@jiI*+tc;t2Lflg&bM)0!Y;0_@=w%`LW^8DsYpS#-bLOklX9r?Ei}TScw|4DbpW%+7
zFgAI)f51s}{y-eWb|vrU-Ya!GuYKP)J7z#*V_k^Xo>4!1Yqj*m)x&0L^tg3GJbVAJ
zJ-Pl$R=NAabouV=^z_t;^K*0AvFs!vYU>_<|I^#c?>>CR<(T?=%{;U=aI*SbZADLH
z&(f2wz_Y0??Tf|g;?|1Znw6}6U43Q#qNRwv1vp9uFn1)V#*4p&%$mP9x&15^OaBiDS(XppT|z^>;B{PLVEbS3IFYV
yGvCsSX*m
literal 0
HcmV?d00001
diff --git a/Game.UWP/Assets/SplashScreen.scale-200.png b/Game.UWP/Assets/SplashScreen.scale-200.png
new file mode 100644
index 0000000000000000000000000000000000000000..023e7f1feda78d5100569825acedfd213a0d84e9
GIT binary patch
literal 7700
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