Extended range of possible symbols to display
This commit is contained in:
Dwayne 2019-04-01 16:20:13 -07:00
Родитель ca9dce611b
Коммит 861f5c926f
42 изменённых файлов: 76 добавлений и 61 удалений

Двоичные данные
Games/Memory/Assets/LargeTile.scale-100.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 8.6 KiB

После

Ширина:  |  Высота:  |  Размер: 46 KiB

Двоичные данные
Games/Memory/Assets/LargeTile.scale-125.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 11 KiB

После

Ширина:  |  Высота:  |  Размер: 68 KiB

Двоичные данные
Games/Memory/Assets/LargeTile.scale-150.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 15 KiB

После

Ширина:  |  Высота:  |  Размер: 88 KiB

Двоичные данные
Games/Memory/Assets/LargeTile.scale-200.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 23 KiB

После

Ширина:  |  Высота:  |  Размер: 141 KiB

Двоичные данные
Games/Memory/Assets/LargeTile.scale-400.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 65 KiB

После

Ширина:  |  Высота:  |  Размер: 84 KiB

Двоичные данные
Games/Memory/Assets/SmallTile.scale-100.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.7 KiB

После

Ширина:  |  Высота:  |  Размер: 4.3 KiB

Двоичные данные
Games/Memory/Assets/SmallTile.scale-125.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.1 KiB

После

Ширина:  |  Высота:  |  Размер: 6.1 KiB

Двоичные данные
Games/Memory/Assets/SmallTile.scale-150.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.7 KiB

После

Ширина:  |  Высота:  |  Размер: 9.6 KiB

Двоичные данные
Games/Memory/Assets/SmallTile.scale-200.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 3.6 KiB

После

Ширина:  |  Высота:  |  Размер: 14 KiB

Двоичные данные
Games/Memory/Assets/SmallTile.scale-400.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 7.7 KiB

После

Ширина:  |  Высота:  |  Размер: 42 KiB

Двоичные данные
Games/Memory/Assets/SplashScreen.scale-100.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 9.1 KiB

После

Ширина:  |  Высота:  |  Размер: 26 KiB

Двоичные данные
Games/Memory/Assets/SplashScreen.scale-125.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 12 KiB

После

Ширина:  |  Высота:  |  Размер: 36 KiB

Двоичные данные
Games/Memory/Assets/SplashScreen.scale-150.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 16 KiB

После

Ширина:  |  Высота:  |  Размер: 48 KiB

Двоичные данные
Games/Memory/Assets/SplashScreen.scale-200.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 25 KiB

После

Ширина:  |  Высота:  |  Размер: 73 KiB

Двоичные данные
Games/Memory/Assets/SplashScreen.scale-400.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 69 KiB

После

Ширина:  |  Высота:  |  Размер: 217 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 3.8 KiB

После

Ширина:  |  Высота:  |  Размер: 16 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 4.8 KiB

После

Ширина:  |  Высота:  |  Размер: 23 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 5.9 KiB

После

Ширина:  |  Высота:  |  Размер: 29 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 8.3 KiB

После

Ширина:  |  Высота:  |  Размер: 45 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 22 KiB

После

Ширина:  |  Высота:  |  Размер: 137 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 972 B

После

Ширина:  |  Высота:  |  Размер: 2.3 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.2 KiB

После

Ширина:  |  Высота:  |  Размер: 3.2 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.5 KiB

После

Ширина:  |  Высота:  |  Размер: 4.0 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.1 KiB

После

Ширина:  |  Высота:  |  Размер: 6.0 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 4.5 KiB

После

Ширина:  |  Высота:  |  Размер: 20 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 379 B

После

Ширина:  |  Высота:  |  Размер: 700 B

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 507 B

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 6.8 KiB

После

Ширина:  |  Высота:  |  Размер: 35 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 630 B

После

Ширина:  |  Высота:  |  Размер: 1.5 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.0 KiB

После

Ширина:  |  Высота:  |  Размер: 2.6 KiB

Двоичные данные
Games/Memory/Assets/StoreLogo.scale-100.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.1 KiB

После

Ширина:  |  Высота:  |  Размер: 2.8 KiB

Двоичные данные
Games/Memory/Assets/StoreLogo.scale-125.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.4 KiB

После

Ширина:  |  Высота:  |  Размер: 3.8 KiB

Двоичные данные
Games/Memory/Assets/StoreLogo.scale-150.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 1.8 KiB

После

Ширина:  |  Высота:  |  Размер: 4.8 KiB

Двоичные данные
Games/Memory/Assets/StoreLogo.scale-200.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.5 KiB

После

Ширина:  |  Высота:  |  Размер: 8.7 KiB

Двоичные данные
Games/Memory/Assets/StoreLogo.scale-400.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 5.1 KiB

После

Ширина:  |  Высота:  |  Размер: 25 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 4.1 KiB

После

Ширина:  |  Высота:  |  Размер: 33 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 5.2 KiB

После

Ширина:  |  Высота:  |  Размер: 49 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 6.3 KiB

После

Ширина:  |  Высота:  |  Размер: 66 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 9.1 KiB

После

Ширина:  |  Высота:  |  Размер: 105 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 25 KiB

После

Ширина:  |  Высота:  |  Размер: 195 KiB

Просмотреть файл

@ -24,7 +24,7 @@ namespace Memory
public sealed partial class GamePage : Page
{
const byte MIN_CHAR = 0x21;
const byte MAX_CHAR = 0xE8;
const byte MAX_CHAR = 0xff;
Random _rnd;
Button _firstButton;
@ -246,6 +246,67 @@ namespace Memory
_reverseAnimationActive = false;
}
private async void FlipCardFaceUp(Button btn)
{
//Flip button visual
var btnVisual = ElementCompositionPreview.GetElementVisual(btn);
var compositor = btnVisual.Compositor;
//Get a visual for the content
var btnContent = VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(btn, 0), 0);
var btnContentVisual = ElementCompositionPreview.GetElementVisual(btnContent as FrameworkElement);
var easing = compositor.CreateLinearEasingFunction();
if (_flipBatchAnimation != null)
{
_flipBatchAnimation.Completed -= FlipBatchAnimation_Completed;
_flipBatchAnimation.Dispose();
}
_flipBatchAnimation = compositor.CreateScopedBatch(CompositionBatchTypes.Animation);
_flipBatchAnimation.Completed += FlipBatchAnimation_Completed;
ScalarKeyFrameAnimation flipAnimation = compositor.CreateScalarKeyFrameAnimation();
flipAnimation.InsertKeyFrame(0.000001f, 180);
flipAnimation.InsertKeyFrame(1f, 0, easing);
flipAnimation.Duration = TimeSpan.FromMilliseconds(800);
flipAnimation.IterationBehavior = AnimationIterationBehavior.Count;
flipAnimation.IterationCount = 1;
btnVisual.CenterPoint = new Vector3((float)(0.5 * btn.ActualWidth), (float)(0.5f * btn.ActualHeight), 0f);
btnVisual.RotationAxis = new Vector3(0.0f, 1f, 0f);
ScalarKeyFrameAnimation appearAnimation = compositor.CreateScalarKeyFrameAnimation();
appearAnimation.InsertKeyFrame(0.0f, 0);
appearAnimation.InsertKeyFrame(0.599999f, 0);
appearAnimation.InsertKeyFrame(0.6f, 0.5f);
appearAnimation.InsertKeyFrame(1f, 1);
appearAnimation.Duration = TimeSpan.FromMilliseconds(800);
appearAnimation.IterationBehavior = AnimationIterationBehavior.Count;
appearAnimation.IterationCount = 1;
btnVisual.StartAnimation(nameof(btnVisual.RotationAngleInDegrees), flipAnimation);
btnContentVisual.StartAnimation(nameof(btnContentVisual.Opacity), appearAnimation);
_flipBatchAnimation.End();
if (_usePictures)
{
var file = await StorageFile.GetFileFromPathAsync(btn.Tag.ToString());
using (var stream = await file.OpenAsync(FileAccessMode.Read))
{
var image = new Image();
var bmp = new BitmapImage();
await bmp.SetSourceAsync(stream);
image.Source = bmp;
btn.Content = image;
}
}
else
{
btn.Content = btn.Tag.ToString();
}
}
private void FlipCardFaceDown(Button card)
{
if (card.Content == null) return;
@ -449,7 +510,16 @@ namespace Memory
}
}
private async void OnButtonClick(object sender, RoutedEventArgs e)
private void RevealBoard() //For debuging purposes
{
List<Button> listButtons = GetButtonList();
foreach (Button button in listButtons)
{
FlipCardFaceUp(button);
}
}
private void OnButtonClick(object sender, RoutedEventArgs e)
{
if (_animationActive || _reverseAnimationActive) return;
@ -483,63 +553,8 @@ namespace Memory
_secondButton = btn;
}
//Flip button visual
var btnVisual = ElementCompositionPreview.GetElementVisual(btn);
var compositor = btnVisual.Compositor;
FlipCardFaceUp(btn);
//Get a visual for the content
var btnContent = VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(btn, 0), 0);
var btnContentVisual = ElementCompositionPreview.GetElementVisual(btnContent as FrameworkElement);
var easing = compositor.CreateLinearEasingFunction();
if (_flipBatchAnimation != null)
{
_flipBatchAnimation.Completed -= FlipBatchAnimation_Completed;
_flipBatchAnimation.Dispose();
}
_flipBatchAnimation = compositor.CreateScopedBatch(CompositionBatchTypes.Animation);
_flipBatchAnimation.Completed += FlipBatchAnimation_Completed;
ScalarKeyFrameAnimation flipAnimation = compositor.CreateScalarKeyFrameAnimation();
flipAnimation.InsertKeyFrame(0.000001f, 180);
flipAnimation.InsertKeyFrame(1f, 0, easing);
flipAnimation.Duration = TimeSpan.FromMilliseconds(800);
flipAnimation.IterationBehavior = AnimationIterationBehavior.Count;
flipAnimation.IterationCount = 1;
btnVisual.CenterPoint = new Vector3((float)(0.5 * btn.ActualWidth), (float)(0.5f * btn.ActualHeight), 0f);
btnVisual.RotationAxis = new Vector3(0.0f, 1f, 0f);
ScalarKeyFrameAnimation appearAnimation = compositor.CreateScalarKeyFrameAnimation();
appearAnimation.InsertKeyFrame(0.0f, 0);
appearAnimation.InsertKeyFrame(0.599999f, 0);
appearAnimation.InsertKeyFrame(0.6f, 0.5f);
appearAnimation.InsertKeyFrame(1f, 1);
appearAnimation.Duration = TimeSpan.FromMilliseconds(800);
appearAnimation.IterationBehavior = AnimationIterationBehavior.Count;
appearAnimation.IterationCount = 1;
btnVisual.StartAnimation(nameof(btnVisual.RotationAngleInDegrees), flipAnimation);
btnContentVisual.StartAnimation(nameof(btnContentVisual.Opacity), appearAnimation);
_flipBatchAnimation.End();
if (_usePictures)
{
var file = await StorageFile.GetFileFromPathAsync(btn.Tag.ToString());
using (var stream = await file.OpenAsync(FileAccessMode.Read))
{
var image = new Image();
var bmp = new BitmapImage();
await bmp.SetSourceAsync(stream);
image.Source = bmp;
btn.Content = image;
}
}
else
{
btn.Content = btn.Tag.ToString();
}
}
private void FlipBatchAnimation_Completed(object sender, CompositionBatchCompletedEventArgs args)

Просмотреть файл

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="uap mp">
<Identity Name="58ad5d18-bbbc-4f4c-83c0-19bc082f4685" Publisher="CN=harishsk" Version="1.0.24.0" />
<Identity Name="58ad5d18-bbbc-4f4c-83c0-19bc082f4685" Publisher="CN=harishsk" Version="1.0.31.0" />
<mp:PhoneIdentity PhoneProductId="58ad5d18-bbbc-4f4c-83c0-19bc082f4685" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
<Properties>
<DisplayName>Memory</DisplayName>
@ -22,7 +22,7 @@
<uap:ShowOn Tile="wide310x150Logo" />
</uap:ShowNameOnTiles>
</uap:DefaultTile>
<uap:SplashScreen Image="Assets\SplashScreen.png" />
<uap:SplashScreen Image="Assets\SplashScreen.png" BackgroundColor="#9fc79f" />
</uap:VisualElements>
</Application>
</Applications>