✅ Collision in Avalonia
Hello, I am trying to find out how Collisions can be detected through Avalonia, i tested these things alerady:
Here my Cs Code of the Window I use:
using Avalonia;
using Avalonia.Controls;
using Avalonia.Media.Imaging;
using Avalonia.Threading;
using MsBox.Avalonia;
using MsBox.Avalonia.Enums;
using System;
using System.Threading.Tasks;
namespace CollidingObjects
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Image1.Source = new Bitmap("red.png");
Image2.Source = new Bitmap("green.png");
SetupPhysics();
}
private async Task SetupPhysics()
{
Rect Object1 = new Rect(Canvas.GetLeft(Image1), Canvas.GetTop(Image1), Image1.Width, Image1.Height);
Rect Object2 = new Rect(Canvas.GetLeft(Image2), Canvas.GetTop(Image2), Image2.Width, Image2.Height);
if (Object1.Intersects(Object2))
{
Console.Write("Collision");
var COllisionMedia = MessageBoxManager.GetMessageBoxStandard("Collision", "", ButtonEnum.Ok, MsBox.Avalonia.Enums.Icon.None, WindowStartupLocation.CenterScreen);
await COllisionMedia.ShowAsync();
}
}
}
}
and here the AXAML code of my window:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compat<Window xmlns="https://github.com/avaloniaui"
ibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="CollidingObjects.MainWindow"
Title="CollidingObjects">
<Canvas Name="GameCanvas">
<Image
Name="Image1"
Canvas.Top="0"
Canvas.Left="20"
/>
<Image
Name="Image2"
Canvas.Top="30"
Canvas.Left="-20"
/>
</Canvas>
</Window>
Here my Cs Code of the Window I use:
using Avalonia;
using Avalonia.Controls;
using Avalonia.Media.Imaging;
using Avalonia.Threading;
using MsBox.Avalonia;
using MsBox.Avalonia.Enums;
using System;
using System.Threading.Tasks;
namespace CollidingObjects
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Image1.Source = new Bitmap("red.png");
Image2.Source = new Bitmap("green.png");
SetupPhysics();
}
private async Task SetupPhysics()
{
Rect Object1 = new Rect(Canvas.GetLeft(Image1), Canvas.GetTop(Image1), Image1.Width, Image1.Height);
Rect Object2 = new Rect(Canvas.GetLeft(Image2), Canvas.GetTop(Image2), Image2.Width, Image2.Height);
if (Object1.Intersects(Object2))
{
Console.Write("Collision");
var COllisionMedia = MessageBoxManager.GetMessageBoxStandard("Collision", "", ButtonEnum.Ok, MsBox.Avalonia.Enums.Icon.None, WindowStartupLocation.CenterScreen);
await COllisionMedia.ShowAsync();
}
}
}
}
and here the AXAML code of my window:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compat<Window xmlns="https://github.com/avaloniaui"
ibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="CollidingObjects.MainWindow"
Title="CollidingObjects">
<Canvas Name="GameCanvas">
<Image
Name="Image1"
Canvas.Top="0"
Canvas.Left="20"
/>
<Image
Name="Image2"
Canvas.Top="30"
Canvas.Left="-20"
/>
</Canvas>
</Window>