begin_project_view
nico-dev 1 year ago
parent c55e1ba3d1
commit 28cda89dc7

@ -125,27 +125,23 @@ namespace PenaltyMaster3000.Helpers
}
/// <summary>
/// Sets the visibility of the elements for the start of the game.
/// Checks if two elements on the same position are visible.
/// </summary>
public void GameStartedVisibility()
/// <returns></returns>
public bool GetResult()
{
// Starter attributes visible
StarterBall = Visibility.Visible;
StarterGoal = Visibility.Visible;
return AreElementsVisible(BallTopRightVisibility, GoalTopRightVisibility) ||
AreElementsVisible(BallTopMiddleVisibility, GoalTopMiddleVisibility) ||
AreElementsVisible(BallTopLeftVisibility, GoalTopLeftVisibility) ||
AreElementsVisible(BallDownRightVisibility, GoalDownRightVisibility) ||
AreElementsVisible(BallDownMiddleVisibility, GoalDownMiddleVisibility) ||
AreElementsVisible(BallDownLeftVisibility, GoalDownLeftVisibility);
}
// Rest should be hidden
BallTopRightVisibility = Visibility.Hidden;
GoalTopRightVisibility = Visibility.Hidden;
BallTopMiddleVisibility = Visibility.Hidden;
GoalTopMiddleVisibility = Visibility.Hidden;
BallTopLeftVisibility = Visibility.Hidden;
GoalTopLeftVisibility = Visibility.Hidden;
BallDownRightVisibility = Visibility.Hidden;
GoalDownRightVisibility = Visibility.Hidden;
BallDownMiddleVisibility = Visibility.Hidden;
GoalDownMiddleVisibility = Visibility.Hidden;
BallDownLeftVisibility = Visibility.Hidden;
GoalDownLeftVisibility = Visibility.Hidden;
// Méthode utilitaire pour vérifier si deux éléments sont visibles
private bool AreElementsVisible(Visibility element1, Visibility element2)
{
return element1 == Visibility.Visible && element2 == Visibility.Visible;
}
/// <summary>
@ -153,11 +149,17 @@ namespace PenaltyMaster3000.Helpers
/// </summary>
/// <param name="shotPosition"></param>
/// <param name="defensePosition"></param>
public void SetResult(string shotPosition, string defensePosition)
public async Task SetResult(string shotPosition, string defensePosition)
{
updateBall(shotPosition);
// Delay to add some drama to the game
await Task.Delay(500);
updateKeeper(defensePosition);
await Task.Delay(3000);
}
/// <summary>
@ -166,6 +168,11 @@ namespace PenaltyMaster3000.Helpers
/// <param name="shotPosition"></param>
private void updateBall(string shotPosition)
{
if(StarterBall == Visibility.Visible)
{
StarterBall = Visibility.Hidden;
}
switch (shotPosition)
{
case "HandUpRight":
@ -194,6 +201,11 @@ namespace PenaltyMaster3000.Helpers
/// <param name="defensePosition"></param>
private void updateKeeper(string defensePosition)
{
if(StarterGoal == Visibility.Visible)
{
StarterGoal = Visibility.Hidden;
}
switch (defensePosition)
{
case "HandUpRight":
@ -215,5 +227,29 @@ namespace PenaltyMaster3000.Helpers
default: return;
}
}
/// <summary>
/// Sets the visibility of the elements for the start of the game.
/// </summary>
public void GameStartedVisibility()
{
// Starter attributes visible
StarterBall = Visibility.Visible;
StarterGoal = Visibility.Visible;
// Rest should be hidden
BallTopRightVisibility = Visibility.Hidden;
GoalTopRightVisibility = Visibility.Hidden;
BallTopMiddleVisibility = Visibility.Hidden;
GoalTopMiddleVisibility = Visibility.Hidden;
BallTopLeftVisibility = Visibility.Hidden;
GoalTopLeftVisibility = Visibility.Hidden;
BallDownRightVisibility = Visibility.Hidden;
GoalDownRightVisibility = Visibility.Hidden;
BallDownMiddleVisibility = Visibility.Hidden;
GoalDownMiddleVisibility = Visibility.Hidden;
BallDownLeftVisibility = Visibility.Hidden;
GoalDownLeftVisibility = Visibility.Hidden;
}
}
}

@ -75,7 +75,7 @@
Grid.Column="0"
Visibility="{Binding VsMgr.BallDownRightVisibility}"/>
<Image Source="{Binding VsMgr.CurrentImageSource}"
<Image Source="{Binding CurrentImageSource}"
Grid.Row="1"
Grid.RowSpan="2"
Grid.Column="1"
@ -111,7 +111,7 @@
Width="50"
Height="50"
VerticalAlignment="Bottom"
Visibility="{Binding VsMgr.Starterball}"/>
Visibility="{Binding VsMgr.StarterBall}"/>
<Grid>
<Grid.RowDefinitions>

@ -114,8 +114,8 @@ namespace PenaltyMaster3000.ViewModel
}
// ---
private BitmapImage CurrentImageSource
public BitmapImage CurrentImageSource
{
get
{
@ -242,10 +242,7 @@ namespace PenaltyMaster3000.ViewModel
// Read a gesture for 5 seconds
// Save the shot on the ShotHolder attribute
ShotHolder = await ReadAGesture(5);
// Hide starter ball
VsMgr.StarterBall = Visibility.Hidden;
ShotHolder = await ReadAGesture(2);
// IsShootCompleted = false;
// Call the save method
@ -257,7 +254,7 @@ namespace PenaltyMaster3000.ViewModel
await DisplayActionText("GoalKeeper's turn. Get ready !", 3);
await DisplayActionText("Choose an angle to defend.", 5);
DefenseHolder = await ReadAGesture(5);
DefenseHolder = await ReadAGesture(2);
// Arrêter le timer du déplacement automatique du Goal
goalTimer.Stop();
@ -267,16 +264,15 @@ namespace PenaltyMaster3000.ViewModel
Result();
}
private void Result()
private async void Result()
{
VsMgr.SetResult(ShotHolder, DefenseHolder);
// Update the view with shot and defense.
await VsMgr.SetResult(ShotHolder, DefenseHolder);
// get the result (goal or not goal).
bool isBallAndGoalVisible = VsMgr.GetResult();
bool isBallAndGoalVisible = AreElementsVisible(VsMgr.BallTopRightVisibility, VsMgr.GoalTopRightVisibility) ||
AreElementsVisible(VsMgr.BallTopMiddleVisibility, VsMgr.GoalTopMiddleVisibility) ||
AreElementsVisible(VsMgr.BallTopLeftVisibility, VsMgr.GoalTopLeftVisibility) ||
AreElementsVisible(VsMgr.BallDownRightVisibility, VsMgr.GoalDownRightVisibility) ||
AreElementsVisible(VsMgr.BallDownMiddleVisibility, VsMgr.GoalDownMiddleVisibility) ||
AreElementsVisible(VsMgr.BallDownLeftVisibility, VsMgr.GoalDownLeftVisibility);
// Update the score
// Vérifiez si toutes les paires d'éléments Ball et Goal sont visibles
if (!isPlayer1Goalkeeper && !isBallAndGoalVisible)
@ -329,17 +325,6 @@ namespace PenaltyMaster3000.ViewModel
IsResultCompleted = false;
}
// Méthode utilitaire pour vérifier si deux éléments sont visibles
private bool AreElementsVisible(Visibility element1, Visibility element2)
{
return element1 == Visibility.Visible && element2 == Visibility.Visible;
}
private void StartupVisibility()
{
VsMgr.GameStartedVisibility();
}
private void GameEnded()
{
if(player1Score > player2Score)
@ -353,6 +338,14 @@ namespace PenaltyMaster3000.ViewModel
FinalResultVisibility = Visibility.Visible;
}
/// <summary>
/// Sets the starting visibility for the game.
/// </summary>
private void StartupVisibility()
{
VsMgr.GameStartedVisibility();
}
// new stuff
/// <summary>
@ -400,7 +393,7 @@ namespace PenaltyMaster3000.ViewModel
// load all
GestureManager.AddGestures(this.GestureFactory);
// subscirbe to the OnGestureRecognized event
/*// subscirbe to the OnGestureRecognized event
foreach (var gesture in GestureManager.KnownGestures)
{
gesture.GestureRecognized += (sender, args) =>
@ -423,9 +416,10 @@ namespace PenaltyMaster3000.ViewModel
foreach (var gesture in GestureManager.KnownGestures)
{
gesture.GestureRecognized = null;
}
}*/
return gestureRead;
// return gestureRead;
return "HandUpRight";
}
}
}

Loading…
Cancel
Save