Browse Source

Adding HelloWorld feature example

Josh Engebretson 9 years ago
parent
commit
5a66ac06bb

+ 67 - 0
FeatureExamples/Resources/Scripts/01_HelloWorld.cs

@@ -0,0 +1,67 @@
+//
+// Copyright (c) 2008-2015 the Urho3D project.
+// Copyright (c) 2015 Xamarin Inc
+// Copyright (c) 2016 THUNDERBEAST GAMES LLC
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+//
+
+using AtomicEngine;
+
+namespace FeatureExamples
+{
+    public class HelloWorldSample : Sample
+    {
+        public HelloWorldSample() : base() { }
+
+        public override void Start()
+        {
+            var cache = GetSubsystem<ResourceCache>();
+            var graphics = GetSubsystem<Graphics>();
+            var ui = GetSubsystem<UI>();
+
+
+            graphics.SetWindowIcon(cache.Get<Image>("Textures/UrhoIcon.png"));
+            graphics.WindowTitle = "Atomic Game Engine Feature Example";
+
+            // Subscribe to Esc key:
+            SubscribeToEvent<KeyDownEvent>(e => { if (e.Key == Constants.KEY_ESCAPE) Exit(); });
+
+            // Say Hello
+
+            var layout = new UILayout();
+            layout.Rect = UIView.Rect;
+
+            layout.LayoutPosition = UI_LAYOUT_POSITION.UI_LAYOUT_POSITION_CENTER;
+            layout.LayoutDistributionPosition = UI_LAYOUT_DISTRIBUTION_POSITION.UI_LAYOUT_DISTRIBUTION_POSITION_CENTER;
+
+            var fontDesc = new UIFontDescription();
+            fontDesc.Id = "Vera";
+            fontDesc.Size = 24;
+
+            var label = new UITextField();
+            label.FontDescription = fontDesc;
+            label.Text = "Hello World, from the Atomic Game Engine";
+            layout.AddChild(label);
+
+            UIView.AddChild(layout);
+
+        }
+    }
+}

+ 5 - 0
FeatureExamples/Resources/Scripts/01_HelloWorld.cs.asset

@@ -0,0 +1,5 @@
+{
+	"version": 1,
+	"guid": "7ed33b902006682565a0317d41481f0e",
+	"CSharpImporter": null
+}

+ 10 - 4
FeatureExamples/Resources/Scripts/Sample.cs

@@ -36,7 +36,14 @@ namespace FeatureExamples
         protected bool TouchEnabled { get; set; }
         protected bool TouchEnabled { get; set; }
         protected Node CameraNode { get; set; }
         protected Node CameraNode { get; set; }
 
 
-        protected Sample() { }
+        protected UIView UIView { get; set; }
+
+        protected Sample()
+        {
+            UIView = new UIView();
+        }
+
+        protected void Exit() { GetSubsystem<Engine>().Exit(); }
 
 
         static readonly Random random = new Random();
         static readonly Random random = new Random();
         /// Return a random float between 0.0 (inclusive) and 1.0 (exclusive.)
         /// Return a random float between 0.0 (inclusive) and 1.0 (exclusive.)
@@ -154,11 +161,10 @@ namespace FeatureExamples
 
 
         protected void SimpleCreateInstructions(string text = "")
         protected void SimpleCreateInstructions(string text = "")
         {
         {
-            var view = new UIView();
 
 
             var layout = new UILayout();
             var layout = new UILayout();
 
 
-            layout.Rect = view.Rect;
+            layout.Rect = UIView.Rect;
 
 
             layout.LayoutPosition = UI_LAYOUT_POSITION.UI_LAYOUT_POSITION_RIGHT_BOTTOM;
             layout.LayoutPosition = UI_LAYOUT_POSITION.UI_LAYOUT_POSITION_RIGHT_BOTTOM;
             layout.LayoutDistributionPosition = UI_LAYOUT_DISTRIBUTION_POSITION.UI_LAYOUT_DISTRIBUTION_POSITION_RIGHT_BOTTOM;
             layout.LayoutDistributionPosition = UI_LAYOUT_DISTRIBUTION_POSITION.UI_LAYOUT_DISTRIBUTION_POSITION_RIGHT_BOTTOM;
@@ -175,7 +181,7 @@ namespace FeatureExamples
             label.Text = text;
             label.Text = text;
             layout.AddChild(label);
             layout.AddChild(label);
 
 
-            view.AddChild(layout);
+            UIView.AddChild(layout);
 
 
         }
         }