diff --git a/Wpf_AiSportsMicrospace/MyUserControl/PopSilder.xaml b/Wpf_AiSportsMicrospace/MyUserControl/PopSilder.xaml
index 638efd1..899be53 100644
--- a/Wpf_AiSportsMicrospace/MyUserControl/PopSilder.xaml
+++ b/Wpf_AiSportsMicrospace/MyUserControl/PopSilder.xaml
@@ -12,20 +12,19 @@
-
-
+
-
-
+
+
+ BorderThickness="3"
+ CornerRadius="5"
+ Padding="0"
+ Margin="10">
diff --git a/Wpf_AiSportsMicrospace/MyUserControl/PopSilder.xaml.cs b/Wpf_AiSportsMicrospace/MyUserControl/PopSilder.xaml.cs
index edaa56b..86e009f 100644
--- a/Wpf_AiSportsMicrospace/MyUserControl/PopSilder.xaml.cs
+++ b/Wpf_AiSportsMicrospace/MyUserControl/PopSilder.xaml.cs
@@ -171,7 +171,8 @@ namespace Wpf_AiSportsMicrospace.MyUserControl
var hideTimer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(200) };
hideTimer.Tick += (s, e) =>
{
- //head_m.Visibility = Visibility.Hidden;
+ head_m.Visibility = Visibility.Hidden;
+ miss.Visibility = Visibility.Hidden;
//_isMiss = true;
hideTimer.Stop();
};
diff --git a/Wpf_AiSportsMicrospace/MyUserControl/WxProgressBar.xaml b/Wpf_AiSportsMicrospace/MyUserControl/WxProgressBar.xaml
index 2c0a062..b8f5718 100644
--- a/Wpf_AiSportsMicrospace/MyUserControl/WxProgressBar.xaml
+++ b/Wpf_AiSportsMicrospace/MyUserControl/WxProgressBar.xaml
@@ -4,10 +4,10 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
x:Name="root"
- Width="1206">
+ >
-
+
diff --git a/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/jump_u.gif b/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/jump_u.gif
new file mode 100644
index 0000000..490e8a4
Binary files /dev/null and b/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/jump_u.gif differ
diff --git a/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/jump_u.png b/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/jump_u.png
new file mode 100644
index 0000000..2457f51
Binary files /dev/null and b/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/jump_u.png differ
diff --git a/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/out_u.png b/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/out_u.png
new file mode 100644
index 0000000..2db0a32
Binary files /dev/null and b/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/out_u.png differ
diff --git a/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/play_bg.png b/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/play_bg.png
index a464956..1d43fec 100644
Binary files a/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/play_bg.png and b/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/play_bg.png differ
diff --git a/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/title.png b/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/title.png
index 0261698..8406c46 100644
Binary files a/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/title.png and b/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/title.png differ
diff --git a/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/vs.png b/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/vs.png
new file mode 100644
index 0000000..f359b5f
Binary files /dev/null and b/Wpf_AiSportsMicrospace/Resources/Img/play_img/music_rope/vs.png differ
diff --git a/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/out_user.png b/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/out_user.png
index c5c66a9..9bd983b 100644
Binary files a/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/out_user.png and b/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/out_user.png differ
diff --git a/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/out_user1.png b/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/out_user1.png
new file mode 100644
index 0000000..c5c66a9
Binary files /dev/null and b/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/out_user1.png differ
diff --git a/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/pre_user.png b/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/pre_user.png
index 7369350..3d3c4c6 100644
Binary files a/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/pre_user.png and b/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/pre_user.png differ
diff --git a/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/pre_user1.png b/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/pre_user1.png
new file mode 100644
index 0000000..7369350
Binary files /dev/null and b/Wpf_AiSportsMicrospace/Resources/Img/test_img/one_rope/pre_user1.png differ
diff --git a/Wpf_AiSportsMicrospace/Views/JumpRope/MusicJumpRope.xaml b/Wpf_AiSportsMicrospace/Views/JumpRope/MusicJumpRope.xaml
index f2f7598..3d93c14 100644
--- a/Wpf_AiSportsMicrospace/Views/JumpRope/MusicJumpRope.xaml
+++ b/Wpf_AiSportsMicrospace/Views/JumpRope/MusicJumpRope.xaml
@@ -5,6 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Wpf_AiSportsMicrospace.MyUserControl"
mc:Ignorable="d"
+ xmlns:gif="http://wpfanimatedgif.codeplex.com"
Height="1080" Width="1920" Loaded="UserControl_Loaded" Unloaded="UserControl_Unloaded">
@@ -15,15 +16,16 @@
HorizontalAlignment="Center"
VerticalAlignment="Top"
Width="905"
- Margin="0,70,0,0"
+ Margin="0,50,0,0"
MouseDown="Image_MouseDown"
/>
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Wpf_AiSportsMicrospace/Views/JumpRope/MusicJumpRope.xaml.cs b/Wpf_AiSportsMicrospace/Views/JumpRope/MusicJumpRope.xaml.cs
index d054b6c..693feab 100644
--- a/Wpf_AiSportsMicrospace/Views/JumpRope/MusicJumpRope.xaml.cs
+++ b/Wpf_AiSportsMicrospace/Views/JumpRope/MusicJumpRope.xaml.cs
@@ -62,7 +62,7 @@ namespace Wpf_AiSportsMicrospace.Views.JumpRope
DrawCirclesWithText();
// 播放音乐
PlayMusic("raisehand.mp3");
- PkBar.LeftProgress = 0.5;
+ PkBar.LeftProgress = 1;
popSilder1.MusicBeats = _musicJumpRopeContext.MusicBeats["1"];
popSilder2.MusicBeats = _musicJumpRopeContext.MusicBeats["1"];
@@ -219,12 +219,13 @@ namespace Wpf_AiSportsMicrospace.Views.JumpRope
private int _currentCountdown = 3;
private DateTime _lastUpdateTime = DateTime.Now;
- private void StartCountdown(int start = 3)
+ private void StartCountdown(int start = 4)
{
_currentCountdown = start;
countdownText.Text = _currentCountdown.ToString();
countdownGrid.Visibility = Visibility.Visible;
_lastUpdateTime = DateTime.Now;
+ _mainWin.ShowCountDownAnimation();
Utils.PlayBackgroundMusic("countdown_3.mp3", false);
}
@@ -461,22 +462,24 @@ namespace Wpf_AiSportsMicrospace.Views.JumpRope
double y = pos.YNorm * imgHeight;
// 绘制发光圆
- var userItem = AddUserItem(x, y, i);
+ //var userItem = AddUserItem(x, y, i);
// 绑定运动对象
var sport = SportBase.Create("rope-skipping");
int indexCopy = i;
- var currentItem = userItem;
+ //var currentItem = userItem;
// 订阅事件
sport.OnTicked += (count, times) =>
{
// 更新UI
- userItem.NumberText = count.ToString();
+ //userItem.NumberText = count.ToString();
// 更新数字源
_musicJumpRopeContext.UserNumberList[indexCopy] = count.ToString();
- if (userItem.ImageState != "2")
- userItem.ImageState = "2";
+ //if (userItem.ImageState != "2")
+ // userItem.ImageState = "2";
+ ChangeImgState(indexCopy, "2"); //改变当前图的状态
+
var currentTime = Utils.GetMusicCurrentTime();
int currentSecond = (int)Math.Floor(currentTime);
@@ -488,32 +491,22 @@ namespace Wpf_AiSportsMicrospace.Views.JumpRope
{
_musicJumpRopeContext.UserBeatSyncList[indexCopy]++;
_musicBeatTextBlock[indexCopy].Text = $"卡点 x{_musicJumpRopeContext.UserBeatSyncList[indexCopy]}";
- if (indexCopy == 0)
- {
- popSilder1.IsMiss = false;
- }
- else
- {
- popSilder2.IsMiss = false;
- }
double left = _musicJumpRopeContext.UserBeatSyncList[0];
double right = _musicJumpRopeContext.UserBeatSyncList[1];
double total = left + right;
PkBar.LeftProgress = total == 0 ? 0 : Math.Round(left / total, 2);
-
- //if (indexCopy == 0)
- // LeftBeats.SetSelected(currentSecond, true);
- //else
- // RightBeats.SetSelected(currentSecond, true);
-
- //Application.Current.Dispatcher.BeginInvoke(() =>
- //{
- // if (indexCopy == 0)
- // LeftBeats.SetSelected(currentSecond, true);
- // else
- // RightBeats.SetSelected(currentSecond, true);
- //});
+ if (indexCopy == 0)
+ {
+ popSilder1.IsMiss = false;
+ UpdateScore(left, score1);
+ }
+ else
+ {
+ UpdateScore(right,score2);
+ popSilder2.IsMiss = false;
+ }
+
}
};
@@ -522,6 +515,34 @@ namespace Wpf_AiSportsMicrospace.Views.JumpRope
}
}
+ private void UpdateScore(double to , TextBlock score)
+ {
+ DoubleAnimation animation = new DoubleAnimation
+ {
+ From = double.Parse(score1.Text),
+ To = to,
+ Duration = TimeSpan.FromSeconds(0.2),
+ EasingFunction = new QuadraticEase { EasingMode = EasingMode.EaseOut },
+ FillBehavior = FillBehavior.HoldEnd
+ };
+ score.BeginAnimation(TextBlock.TextProperty, animation);
+ }
+
+ private void ChangeImgState(int index , string state)
+ {
+ if(index== 0)
+ {
+ left1.Visibility = state == "1" ? Visibility.Visible : Visibility.Hidden;
+ left2.Visibility = state == "2" ? Visibility.Visible : Visibility.Hidden;
+ left3.Visibility = state == "3" ? Visibility.Visible : Visibility.Hidden;
+ }else if (index == 1)
+ {
+ right1.Visibility = state == "1" ? Visibility.Visible : Visibility.Hidden;
+ right2.Visibility = state == "1" ? Visibility.Visible : Visibility.Hidden;
+ right3.Visibility = state == "1" ? Visibility.Visible : Visibility.Hidden;
+ }
+ }
+
private void UpdateCircleCounts(List humans)
{
double radiusNormX = 0.07;
@@ -564,7 +585,9 @@ namespace Wpf_AiSportsMicrospace.Views.JumpRope
bool hasHuman = humanInCircle != null;
lock (_updateLock)
{
- _musicJumpRopeContext.UserList[i].ImageState = GetJumpState(i, hasHuman);
+ //_musicJumpRopeContext.UserList[i].ImageState = GetJumpState(i, hasHuman);
+ var state = GetJumpState(i, hasHuman);
+ ChangeImgState(i, state);
}
// 推送计数
@@ -608,46 +631,6 @@ namespace Wpf_AiSportsMicrospace.Views.JumpRope
return lastState;
}
- private SportUserItem AddUserItem(double centerX, double centerY, int index)
- {
- var userItem = new SportUserItem();
- userItem.Width = 270;
- userItem.Height = 560;
- userItem.DisplayText = _musicJumpRopeContext.UseNameList[index];
- userItem.VerticalAlignment = VerticalAlignment.Top;
- userItem.HorizontalAlignment = HorizontalAlignment.Left;
- userItem.ImageState = "1";
- userItem.Margin = new Thickness(centerX + 120, centerY - 700, 0, 0);
-
- // ----------- 创建上方 TextBlock ------------
- var textBlock = new TextBlock
- {
- Text = "0", // 卡点个数
- FontSize = 50,
- FontWeight = FontWeights.Bold,
- Foreground = Brushes.Red,
- HorizontalAlignment = HorizontalAlignment.Left,
- VerticalAlignment = VerticalAlignment.Top,
- TextAlignment = TextAlignment.Center,
- Width = userItem.Width // 文本宽度和 userItem 一样
- };
-
- // 设置 TextBlock 的 Margin,使其在 userItem 上方居中
- double textLeft = userItem.Margin.Left;
- double textTop = userItem.Margin.Top - 50; // 50 可以根据需要调整高度
- textBlock.Margin = new Thickness(textLeft, textTop, 0, 0);
-
- // 添加控件
- userBox.Children.Add(userItem);
- userBox.Children.Add(textBlock);
-
- _musicJumpRopeContext.UserList.Add(userItem);
- _musicJumpRopeContext.UserNumberList.Add("0");
- _musicJumpRopeContext.UserBeatSyncList.Add(0);
- _musicBeatTextBlock.Add(textBlock);
-
- return userItem;
- }
private void Image_MouseDown(object sender, MouseButtonEventArgs e)
{
diff --git a/Wpf_AiSportsMicrospace/Wpf_AiSportsMicrospace.csproj b/Wpf_AiSportsMicrospace/Wpf_AiSportsMicrospace.csproj
index 720ca25..f39f301 100644
--- a/Wpf_AiSportsMicrospace/Wpf_AiSportsMicrospace.csproj
+++ b/Wpf_AiSportsMicrospace/Wpf_AiSportsMicrospace.csproj
@@ -47,10 +47,14 @@
+
+
+
+
@@ -65,8 +69,10 @@
+
+
@@ -99,6 +105,12 @@
Always
+
+ Always
+
+
+ Always
+
Always
@@ -245,6 +257,9 @@
Always
+
+ Always
+
Always
@@ -254,6 +269,9 @@
Always
+
+ Always
+
Always
@@ -296,12 +314,18 @@
Always
+
+ Always
+
Always
Always
+
+ Always
+
Always