Ajout du drag and drop

master
cldupland 6 years ago
parent 081459cb85
commit 42a13211d7

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Xamarin.Forms.3.0.0.446417\build\netstandard2.0\Xamarin.Forms.props" Condition="Exists('..\packages\Xamarin.Forms.3.0.0.446417\build\netstandard2.0\Xamarin.Forms.props')" />
<Import Project="..\packages\NUnit.3.12.0\build\NUnit.props" Condition="Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" /> <Import Project="..\packages\NUnit.3.12.0\build\NUnit.props" Condition="Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@ -36,6 +37,27 @@
<Reference Include="Xamarin.UITest"> <Reference Include="Xamarin.UITest">
<HintPath>..\packages\Xamarin.UITest.3.0.3\lib\net45\Xamarin.UITest.dll</HintPath> <HintPath>..\packages\Xamarin.UITest.3.0.3\lib\net45\Xamarin.UITest.dll</HintPath>
</Reference> </Reference>
<Reference Include="TouchTracking">
<HintPath>..\packages\TouchTracking.1.1.0\lib\netstandard1.3\TouchTracking.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Core.Design">
<HintPath>..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Design\Xamarin.Forms.Core.Design.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Xaml.Design">
<HintPath>..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Design\Xamarin.Forms.Xaml.Design.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Core">
<HintPath>..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Xamarin.Forms.Core.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Platform">
<HintPath>..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Xamarin.Forms.Platform.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Xaml">
<HintPath>..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Xamarin.Forms.Xaml.dll</HintPath>
</Reference>
<Reference Include="TouchTracking.Forms">
<HintPath>..\packages\TouchTracking.Forms.1.1.0\lib\netstandard1.3\TouchTracking.Forms.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Tests.cs" /> <Compile Include="Tests.cs" />
@ -45,4 +67,5 @@
<None Include="packages.config" /> <None Include="packages.config" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\Xamarin.Forms.3.0.0.446417\build\netstandard2.0\Xamarin.Forms.targets" Condition="Exists('..\packages\Xamarin.Forms.3.0.0.446417\build\netstandard2.0\Xamarin.Forms.targets')" />
</Project> </Project>

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="NUnit" version="3.12.0" targetFramework="net472" /> <package id="NUnit" version="3.12.0" targetFramework="net472" />
<package id="TouchTracking" version="1.1.0" targetFramework="net472" />
<package id="TouchTracking.Forms" version="1.1.0" targetFramework="net472" />
<package id="Xamarin.Forms" version="3.0.0.446417" targetFramework="net472" />
<package id="Xamarin.UITest" version="3.0.3" targetFramework="net472" /> <package id="Xamarin.UITest" version="3.0.3" targetFramework="net472" />
</packages> </packages>

@ -58,6 +58,9 @@
<PackageReference Include="SkiaSharp.Views.Forms"> <PackageReference Include="SkiaSharp.Views.Forms">
<Version>1.68.0</Version> <Version>1.68.0</Version>
</PackageReference> </PackageReference>
<PackageReference Include="TouchTracking.Forms">
<Version>1.1.0</Version>
</PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="MainActivity.cs" /> <Compile Include="MainActivity.cs" />

@ -22,7 +22,8 @@ namespace TheGameExtreme.iOS
// //
public override bool FinishedLaunching(UIApplication app, NSDictionary options) public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{ {
global::Xamarin.Forms.Forms.Init(); global::Xamarin.Forms.Forms.Init();
var _ = new TouchTracking.Forms.iOS.TouchEffect();
LoadApplication(new App()); LoadApplication(new App());
return base.FinishedLaunching(app, options); return base.FinishedLaunching(app, options);

@ -135,6 +135,9 @@
<PackageReference Include="SkiaSharp.Views.Forms"> <PackageReference Include="SkiaSharp.Views.Forms">
<Version>1.68.0</Version> <Version>1.68.0</Version>
</PackageReference> </PackageReference>
<PackageReference Include="TouchTracking.Forms">
<Version>1.1.0</Version>
</PackageReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" /> <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
<ItemGroup> <ItemGroup>

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

@ -9,6 +9,7 @@
<PackageReference Include="Xamarin.Forms" Version="4.3.0.947036" /> <PackageReference Include="Xamarin.Forms" Version="4.3.0.947036" />
<PackageReference Include="Xamarin.Essentials" Version="1.3.1" /> <PackageReference Include="Xamarin.Essentials" Version="1.3.1" />
<PackageReference Include="SkiaSharp.Views.Forms" Version="1.68.0" /> <PackageReference Include="SkiaSharp.Views.Forms" Version="1.68.0" />
<PackageReference Include="TouchTracking.Forms" Version="1.1.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="model\event\" /> <Folder Include="model\event\" />
@ -19,6 +20,8 @@
<Folder Include="model\gameActions\" /> <Folder Include="model\gameActions\" />
<Folder Include="model\gameActions\extreme\" /> <Folder Include="model\gameActions\extreme\" />
<Folder Include="model\gameActions\classic\" /> <Folder Include="model\gameActions\classic\" />
<Folder Include="Media\" />
<Folder Include="view\Image\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Remove="model\effect\StopColm.cs" /> <Compile Remove="model\effect\StopColm.cs" />
@ -29,11 +32,11 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Remove="AppRessources.config" /> <None Remove="AppRessources.config" />
<None Remove="view\Image\thegame.jpg" />
<None Remove="view\MultiPlayerMode.xaml" /> <None Remove="view\MultiPlayerMode.xaml" />
<None Remove="Media\thegame.jpg" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="view\Image\thegame.jpg" /> <EmbeddedResource Include="Media\thegame.jpg" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Update="AppRessource.resx"> <EmbeddedResource Update="AppRessource.resx">

@ -5,6 +5,8 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design" xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:skia="clr-namespace:SkiaSharp.Views.Forms;assembly=SkiaSharp.Views.Forms"
xmlns:tt="clr-namespace:TouchTracking.Forms;assembly=TouchTracking.Forms"
mc:Ignorable="d" mc:Ignorable="d"
x:Class="TheGameExtreme.view.MainPage"> x:Class="TheGameExtreme.view.MainPage">
@ -13,35 +15,73 @@
<RowDefinition Height="*"></RowDefinition> <RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition> <RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition> <RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.Effects>
<tt:TouchEffect
Capture="True"
TouchAction="OnTouchEffectAction" />
</Grid.Effects>
<Label x:Name="pseudo" <Label
Text="Pseudo" x:Name="pseudo"
HorizontalTextAlignment="Center" Text="Pseudo"
VerticalTextAlignment="Start" HorizontalTextAlignment="Center"
TextColor="{DynamicResource WhiteColor}" VerticalTextAlignment="Start"
Margin="30" TextColor="{DynamicResource WhiteColor}"
FontSize="28" Grid.Row="0" Margin="30"
/> FontSize="28" Grid.Row="0"/>
<ImageButton Source="HomeIcon.png" <ImageButton
HorizontalOptions="Start" Source="HomeIcon.png"
VerticalOptions="Start" HorizontalOptions="Start"
WidthRequest="45" VerticalOptions="Start"
Margin="20,20,0,0" WidthRequest="45"
HeightRequest="45" Margin="20,20,0,0"
BackgroundColor="{DynamicResource BlackColor}" HeightRequest="45"
Grid.Row="0" BackgroundColor="{DynamicResource BlackColor}"
Clicked="PlayToHome"/> Grid.Row="0"
Clicked="PlayToHome"/>
<Button Text="End Turn" HorizontalOptions="End"
VerticalOptions="Start" BackgroundColor="{DynamicResource SkyBlueColor}" <Button
HeightRequest="35" Margin="0,30,20,0" Grid.Row="0"/> Text="End Turn"
HorizontalOptions="End"
VerticalOptions="Start"
BackgroundColor="{DynamicResource SkyBlueColor}"
HeightRequest="35"
Margin="0,30,20,0"
Grid.Row="0"/>
<skia:SKCanvasView
x:Name="canvasView"
PaintSurface="OnCanvasViewPaintSurface"
Grid.Row="1"
Grid.RowSpan="2"/>
<!--<StackLayout> <!--<StackLayout>
<StackLayout <StackLayout
Orientation="Vertical"> Orientation="Vertical">

@ -4,6 +4,11 @@ using System.ComponentModel;
using Xamarin.Forms; using Xamarin.Forms;
using TheGameExtreme.model.@event; using TheGameExtreme.model.@event;
using TheGameExtreme.viewmodel; using TheGameExtreme.viewmodel;
using SkiaSharp;
using System.IO;
using System.Reflection;
using SkiaSharp.Views.Forms;
using TouchTracking;
namespace TheGameExtreme.view namespace TheGameExtreme.view
{ {
@ -12,12 +17,19 @@ namespace TheGameExtreme.view
[DesignTimeVisible(false)] [DesignTimeVisible(false)]
public partial class MainPage : ContentPage public partial class MainPage : ContentPage
{ {
private bool isFirst = true; //private bool isFirst = true;
private Main viewmodel; //private Main viewmodel;
private List<CheckBox> stacks = new List<CheckBox>(); //private List<CheckBox> stacks = new List<CheckBox>();
Button button = new Button(); //Button button = new Button();
List<string> playersNames; List<string> playersNames;
SKBitmap bitmap;
SKMatrix matrix = SKMatrix.MakeIdentity();
// Touch information
long touchId = -1;
SKPoint previousPoint;
public MainPage(List<string> playersNames) public MainPage(List<string> playersNames)
{ {
@ -26,6 +38,17 @@ namespace TheGameExtreme.view
InitializeComponent(); InitializeComponent();
NavigationPage.SetHasNavigationBar(this, false); NavigationPage.SetHasNavigationBar(this, false);
string resourceID = "TheGameExtreme.Media.thegame.jpg";
Assembly assembly = GetType().GetTypeInfo().Assembly;
using (Stream stream = assembly.GetManifestResourceStream(resourceID))
{
bitmap = SKBitmap.Decode(stream);
}
/*stacks.Add(checkbox0); /*stacks.Add(checkbox0);
stacks.Add(checkbox1); stacks.Add(checkbox1);
stacks.Add(checkbox2); stacks.Add(checkbox2);
@ -45,6 +68,72 @@ namespace TheGameExtreme.view
inflateHand();*/ inflateHand();*/
} }
void OnCanvasViewPaintSurface(object sender, SKPaintSurfaceEventArgs args)
{
SKImageInfo info = args.Info;
SKSurface surface = args.Surface;
SKCanvas canvas = surface.Canvas;
canvas.Clear();
// Display the bitmap
canvas.SetMatrix(matrix);
canvas.DrawBitmap(bitmap, new SKPoint());
}
void OnTouchEffectAction(object sender, TouchActionEventArgs args)
{
// Convert Xamarin.Forms point to pixels
TouchTrackingPoint pt = args.Location;
SKPoint point =
new SKPoint((float)(canvasView.CanvasSize.Width * pt.X / canvasView.Width),
(float)(canvasView.CanvasSize.Height * pt.Y / canvasView.Height));
switch (args.Type)
{
case TouchActionType.Pressed:
// Find transformed bitmap rectangle
SKRect rect = new SKRect(0, 0, bitmap.Width, bitmap.Height);
rect = matrix.MapRect(rect);
// Determine if the touch was within that rectangle
if (rect.Contains(point))
{
touchId = args.Id;
previousPoint = point;
}
break;
case TouchActionType.Moved:
if (touchId == args.Id)
{
// Adjust the matrix for the new position
matrix.TransX += point.X - previousPoint.X;
matrix.TransY += point.Y - previousPoint.Y;
previousPoint = point;
canvasView.InvalidateSurface();
}
break;
case TouchActionType.Released:
case TouchActionType.Cancelled:
touchId = -1;
break;
}
}
//private void OnPlayerChanged(object sender, PlayerChangedEventArgs args) //private void OnPlayerChanged(object sender, PlayerChangedEventArgs args)
//{ //{
// inflateHand(); // inflateHand();

Loading…
Cancel
Save