diff --git a/axios.sln b/axios.sln
index f07c805..6cacc52 100644
--- a/axios.sln
+++ b/axios.sln
@@ -43,7 +43,6 @@ Global
{742C938F-997D-4EFD-95D2-BB09CDADCD2E}.Release|Xbox 360.Build.0 = Release|x86
{B5664516-72B7-4BA3-9F72-25CAA90867D8}.Debug|Any CPU.ActiveCfg = Debug|Xbox 360
{B5664516-72B7-4BA3-9F72-25CAA90867D8}.Debug|Mixed Platforms.ActiveCfg = Debug|Xbox 360
- {B5664516-72B7-4BA3-9F72-25CAA90867D8}.Debug|Mixed Platforms.Build.0 = Debug|Xbox 360
{B5664516-72B7-4BA3-9F72-25CAA90867D8}.Debug|Windows Phone.ActiveCfg = Debug|Xbox 360
{B5664516-72B7-4BA3-9F72-25CAA90867D8}.Debug|Windows Phone.Build.0 = Debug|Xbox 360
{B5664516-72B7-4BA3-9F72-25CAA90867D8}.Debug|x86.ActiveCfg = Debug|Xbox 360
@@ -61,7 +60,6 @@ Global
{B5664516-72B7-4BA3-9F72-25CAA90867D8}.Release|Xbox 360.Build.0 = Release|Xbox 360
{C09D9005-76AC-4F1A-9479-2787BB3DB158}.Debug|Any CPU.ActiveCfg = Debug|Windows Phone
{C09D9005-76AC-4F1A-9479-2787BB3DB158}.Debug|Mixed Platforms.ActiveCfg = Debug|Windows Phone
- {C09D9005-76AC-4F1A-9479-2787BB3DB158}.Debug|Mixed Platforms.Build.0 = Debug|Windows Phone
{C09D9005-76AC-4F1A-9479-2787BB3DB158}.Debug|Windows Phone.ActiveCfg = Debug|Windows Phone
{C09D9005-76AC-4F1A-9479-2787BB3DB158}.Debug|Windows Phone.Build.0 = Debug|Windows Phone
{C09D9005-76AC-4F1A-9479-2787BB3DB158}.Debug|x86.ActiveCfg = Debug|Windows Phone
@@ -79,7 +77,6 @@ Global
{C09D9005-76AC-4F1A-9479-2787BB3DB158}.Release|Xbox 360.Build.0 = Release|Windows Phone
{A622337F-9AE6-492A-85D6-01CCE0D7F9B4}.Debug|Any CPU.ActiveCfg = Debug|x86
{A622337F-9AE6-492A-85D6-01CCE0D7F9B4}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
- {A622337F-9AE6-492A-85D6-01CCE0D7F9B4}.Debug|Mixed Platforms.Build.0 = Debug|x86
{A622337F-9AE6-492A-85D6-01CCE0D7F9B4}.Debug|Windows Phone.ActiveCfg = Debug|x86
{A622337F-9AE6-492A-85D6-01CCE0D7F9B4}.Debug|x86.ActiveCfg = Debug|x86
{A622337F-9AE6-492A-85D6-01CCE0D7F9B4}.Debug|x86.Build.0 = Debug|x86
diff --git a/axios/Axios_WP7.csproj b/axios/Axios_WP7.csproj
index 66f98d6..080041f 100644
--- a/axios/Axios_WP7.csproj
+++ b/axios/Axios_WP7.csproj
@@ -174,8 +174,10 @@
+
+
diff --git a/axios/Axios_Windows.csproj b/axios/Axios_Windows.csproj
index 63afc82..4d1b572 100644
--- a/axios/Axios_Windows.csproj
+++ b/axios/Axios_Windows.csproj
@@ -226,8 +226,10 @@
+
+
diff --git a/axios/Axios_Xbox_360.csproj b/axios/Axios_Xbox_360.csproj
index 1373fd7..77f63fa 100644
--- a/axios/Axios_Xbox_360.csproj
+++ b/axios/Axios_Xbox_360.csproj
@@ -167,8 +167,10 @@
+
+
diff --git a/axios/Axios_settings.cs b/axios/Axios_settings.cs
index 8be8321..d3acd33 100644
--- a/axios/Axios_settings.cs
+++ b/axios/Axios_settings.cs
@@ -134,6 +134,8 @@
* - Removing cache from Gleed2D as ContentManager automatically does this
* - Adding cache
* - Adding XOR Shift random class
+ * - Adding extension for rectangleitem to get position in Farseer units ( getSimPosition )
+ * - Adding extension for vector2 to convert back and forth between sim and display units
*
*/
#endregion
diff --git a/axios/Engine/AxiosGameScreen.cs b/axios/Engine/AxiosGameScreen.cs
index 92eb07c..84e274c 100644
--- a/axios/Engine/AxiosGameScreen.cs
+++ b/axios/Engine/AxiosGameScreen.cs
@@ -1,26 +1,27 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.IO.Compression;
using System.Linq;
+using System.Xml.Linq;
+using Axios.Engine.Extensions;
+using Axios.Engine.File;
+using Axios.Engine.Gleed2D;
using Axios.Engine.Interfaces;
using Axios.Engine.Log;
using Axios.Engine.Structures;
using Axios.Engine.UI;
using FarseerPhysics.Dynamics;
+using FarseerPhysics.Factories;
using FarseerPhysics.SamplesFramework;
+using GameStateManagement;
+using Gleed2D.Core;
+using Gleed2D.InGame;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
-using GameStateManagement;
using Microsoft.Xna.Framework.Input;
-using Axios.Engine.Extensions;
-using System.IO;
-using System.IO.Compression;
-using Gleed2D.InGame;
-using Axios.Engine.File;
-using System.Xml.Linq;
-using Gleed2D.Core;
-using System.Diagnostics;
-using Axios.Engine.Gleed2D;
namespace Axios.Engine
{
@@ -547,7 +548,15 @@ namespace Axios.Engine
public virtual void LoadRectangleItem(RectangleItemProperties rectangleitem, Layer l)
{
-
+ if (l.Properties.CustomProperties.Keys.Contains("Collision") && (bool)l.Properties.CustomProperties["Collision"].Value)
+ {
+ Body b = BodyFactory.CreateRectangle(this.World, ConvertUnits.ToSimUnits(rectangleitem.Width), ConvertUnits.ToSimUnits(rectangleitem.Height), 1f);
+ b.Position = rectangleitem.getSimPosition();
+ //b.Position.X +=
+ b.IsStatic = true;
+ b.BodyType = BodyType.Static;
+ b.UserData = this;
+ }
}
public virtual void LoadTextureItem(TextureItemProperties textureitem, Layer l)
diff --git a/axios/Engine/Extensions/RectangleItemProperties.cs b/axios/Engine/Extensions/RectangleItemProperties.cs
new file mode 100644
index 0000000..5541fcc
--- /dev/null
+++ b/axios/Engine/Extensions/RectangleItemProperties.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Gleed2D.InGame;
+using FarseerPhysics.SamplesFramework;
+
+namespace Axios.Engine.Extensions
+{
+ public static class AxiosExtensions_RectangleItemProperties
+ {
+ public static Vector2 getSimPosition(this RectangleItemProperties prop)
+ {
+ Vector2 pos = ConvertUnits.ToSimUnits(prop.Position);
+ pos.X += ConvertUnits.ToSimUnits(prop.Width / 2);
+ pos.Y += ConvertUnits.ToSimUnits(prop.Height / 2);
+ return pos;
+ }
+ }
+}
diff --git a/axios/Engine/Extensions/Vector2.cs b/axios/Engine/Extensions/Vector2.cs
new file mode 100644
index 0000000..3fe494b
--- /dev/null
+++ b/axios/Engine/Extensions/Vector2.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Gleed2D.InGame;
+using FarseerPhysics.SamplesFramework;
+
+namespace Axios.Engine.Extensions
+{
+ public static class AxiosExtensions_Vector2
+ {
+ public static Vector2 toSimUnits(this Vector2 vec)
+ {
+ return ConvertUnits.ToSimUnits(vec);
+ }
+
+ public static Vector2 toDisplayUnits(this Vector2 vec)
+ {
+ return ConvertUnits.ToDisplayUnits(vec);
+ }
+ }
+}