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"?>
<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')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@ -36,6 +37,27 @@
<Reference Include="Xamarin.UITest">
<HintPath>..\packages\Xamarin.UITest.3.0.3\lib\net45\Xamarin.UITest.dll</HintPath>
</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>
<Compile Include="Tests.cs" />
@ -45,4 +67,5 @@
<None Include="packages.config" />
</ItemGroup>
<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>

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<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" />
</packages>

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

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

@ -135,6 +135,9 @@
<PackageReference Include="SkiaSharp.Views.Forms">
<Version>1.68.0</Version>
</PackageReference>
<PackageReference Include="TouchTracking.Forms">
<Version>1.1.0</Version>
</PackageReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
<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.Essentials" Version="1.3.1" />
<PackageReference Include="SkiaSharp.Views.Forms" Version="1.68.0" />
<PackageReference Include="TouchTracking.Forms" Version="1.1.0" />
</ItemGroup>
<ItemGroup>
<Folder Include="model\event\" />
@ -19,6 +20,8 @@
<Folder Include="model\gameActions\" />
<Folder Include="model\gameActions\extreme\" />
<Folder Include="model\gameActions\classic\" />
<Folder Include="Media\" />
<Folder Include="view\Image\" />
</ItemGroup>
<ItemGroup>
<Compile Remove="model\effect\StopColm.cs" />
@ -29,11 +32,11 @@
</ItemGroup>
<ItemGroup>
<None Remove="AppRessources.config" />
<None Remove="view\Image\thegame.jpg" />
<None Remove="view\MultiPlayerMode.xaml" />
<None Remove="Media\thegame.jpg" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="view\Image\thegame.jpg" />
<EmbeddedResource Include="Media\thegame.jpg" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="AppRessource.resx">

@ -5,6 +5,8 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
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"
x:Class="TheGameExtreme.view.MainPage">
@ -15,20 +17,28 @@
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.Effects>
<tt:TouchEffect
Capture="True"
TouchAction="OnTouchEffectAction" />
</Grid.Effects>
<Label x:Name="pseudo"
<Label
x:Name="pseudo"
Text="Pseudo"
HorizontalTextAlignment="Center"
VerticalTextAlignment="Start"
TextColor="{DynamicResource WhiteColor}"
Margin="30"
FontSize="28" Grid.Row="0"
/>
FontSize="28" Grid.Row="0"/>
<ImageButton Source="HomeIcon.png"
<ImageButton
Source="HomeIcon.png"
HorizontalOptions="Start"
VerticalOptions="Start"
WidthRequest="45"
@ -38,9 +48,39 @@
Grid.Row="0"
Clicked="PlayToHome"/>
<Button Text="End Turn" HorizontalOptions="End"
VerticalOptions="Start" BackgroundColor="{DynamicResource SkyBlueColor}"
HeightRequest="35" Margin="0,30,20,0" Grid.Row="0"/>
<Button
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

@ -4,6 +4,11 @@ using System.ComponentModel;
using Xamarin.Forms;
using TheGameExtreme.model.@event;
using TheGameExtreme.viewmodel;
using SkiaSharp;
using System.IO;
using System.Reflection;
using SkiaSharp.Views.Forms;
using TouchTracking;
namespace TheGameExtreme.view
{
@ -12,13 +17,20 @@ namespace TheGameExtreme.view
[DesignTimeVisible(false)]
public partial class MainPage : ContentPage
{
private bool isFirst = true;
private Main viewmodel;
private List<CheckBox> stacks = new List<CheckBox>();
Button button = new Button();
//private bool isFirst = true;
//private Main viewmodel;
//private List<CheckBox> stacks = new List<CheckBox>();
//Button button = new Button();
List<string> playersNames;
SKBitmap bitmap;
SKMatrix matrix = SKMatrix.MakeIdentity();
// Touch information
long touchId = -1;
SKPoint previousPoint;
public MainPage(List<string> playersNames)
{
this.playersNames = playersNames;
@ -26,6 +38,17 @@ namespace TheGameExtreme.view
InitializeComponent();
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(checkbox1);
stacks.Add(checkbox2);
@ -45,6 +68,72 @@ namespace TheGameExtreme.view
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)
//{
// inflateHand();

Loading…
Cancel
Save