Ejemplo n.º 1
0
        protected override async void OnAppearing()
        {
            base.OnAppearing();

            if (FreeApples.Count() == 0)
            {
                StartGameAsync().FireAndForget();
            }
            else
            {
                var rustleSoundTask = Sounds.RustleSound.PlayAsync();
                using (CancellationTokenSource wobbleCancel = new CancellationTokenSource())
                {
                    IEnumerable <Task> wobbleAppleTasks;
                    wobbleAppleTasks = (from apple in FreeApples
                                        select AnimateAppleWobbleAsync(apple, wobbleCancel.Token)).ToList();
                    await rustleSoundTask;
                    wobbleCancel.Cancel();
                    await Task.WhenAll(wobbleAppleTasks);
                }
            }
            AddBoxViewToLayout();
        }
Ejemplo n.º 2
0
        private async Task ImageTapped(DraggableImage apple)
        {
            if (!FreeApples.Contains(apple))
            {
                return;
            }
            highestZIndex += 1;
            SetZIndex(apple, highestZIndex);
            var endpt = await DragAsync(apple, Point.Zero, BasketCatchmentArea.Bounds);

            if (!BasketCatchmentArea.Bounds.Contains(endpt))
            {
                return;
            }

            var soundTask   = Sounds.WhooshSound.PlayAsync();
            var animateTask = AnimateAppleWhooshAsync(apple);
            await Task.WhenAll(soundTask, animateTask);

            if (FreeApples.Count() == 0)
            {
                EndGameAsync().FireAndForget();
            }
        }