首页 > 其他分享 >【项目二】WPF掷骰子

【项目二】WPF掷骰子

时间:2023-10-08 17:15:27浏览次数:60  
标签:动画 骰子 项目 int void 掷骰子 Uri new WPF

一、素材地址

https://icons8.com/icons/set/dice

二、需求分析:

WPF框架实现一个掷骰子动画:有6个点数的骰子图片,初始时图片默认为1点,当点击开始按钮后,随机变换图片,2s后定格到当前骰子点数。

三、代码实现:

1.需要将骰子的6张图片放在项目的"Images"文件夹下,并设置它们的Build Action为"Resource"。

2.完整代码:

MainWindow.xaml

 1         Title="掷骰子" Height="550" Width="750" WindowStartupLocation="CenterScreen">
 2     <Grid>
 3         <Grid.RowDefinitions>
 4             <RowDefinition Height="1*"/>
 5             <RowDefinition/>
 6         </Grid.RowDefinitions>
 7         <Grid.ColumnDefinitions>
 8             <ColumnDefinition Width="1*"/>
 9             <ColumnDefinition/>
10         </Grid.ColumnDefinitions>
11         <Image x:Name="diceImage" Source="Images/1.png" Width="150" Height="150" Grid.Row="0" Grid.Column="0"/>
12         <Button Content="开始掷骰" Click="StartButton_Click" Width="100" Height="50" Grid.Row="1" Grid.Column="0" FontSize="18" Background="#FFE6E6E6"/>
13     </Grid>

MainWindow.xaml.cs

 1         private void StartButton_Click(object sender, RoutedEventArgs e)
 2         {
 3             // 点击开始按钮时执行骰子动画
 4             AnimateDiceRoll();
 5         }
 6 
 7         private async void AnimateDiceRoll()
 8         {
 9             // 获取骰子图片资源的URI路径
10             Uri diceUri = new Uri("pack://application:,,,/Images/{0}.png");
11 
12             // 创建一个随机数生成器
13             Random random = new Random();
14 
15             // 骰子动画持续时间(毫秒)
16             int animationDuration = 2000;
17 
18             // 计算动画的帧数和每帧间隔时间
19             int numFrames = animationDuration / 70;
20             int frameDuration = animationDuration / numFrames;
21 
22             // 执行骰子动画
23             for (int i = 0; i < numFrames; i++)
24             {
25                 // 随机选择一个骰子点数  当前点数
26                 int diceNumber = random.Next(1, 7);
27 
28                 // 设置当前帧的骰子图片
29                 Uri currentDiceUri = new Uri(string.Format(diceUri.ToString(), diceNumber));
30                 BitmapImage currentDiceImage = new BitmapImage(currentDiceUri);
31                 diceImage.Source = currentDiceImage;
32 
33                 // 等待一段时间,模拟动画效果
34                 await Task.Delay(frameDuration);
35             }
36         }
37 
38         public void BoyMove()
39         {
40 
41         }
42         public void GirlMove()
43         {
44 
45         }
46         public void EndPoint()//终点
47         {
48 
49         }

 

标签:动画,骰子,项目,int,void,掷骰子,Uri,new,WPF
From: https://www.cnblogs.com/kamisamalz/p/17749619.html

相关文章

  • WPF实现语言切换
    本示例实现的是中英文语言切换。开发环境:VS2022、WIN10 一、新建中英文两个key-value对照文件。 二、添加到App.xaml文件。 三、在App.xaml代码文件中创建切换语言和根据key获取value值的方法。usingSystem.Collections;usingSystem.Configuration;usingSystem......
  • Kubernetes 部署 Python Flask 项目
    1、编写源代码及Dockerfiletest.pyfromflaskimportFlaskimportsocketapp=Flask(__name__)@app.route('/')defhello():returnsocket.gethostbyname(socket.gethostname())if__name__=='__main__':app.run(host='0.0.0.0......
  • 路飞项目需求、pip永久换源、虚拟环境
    路飞项目需求#线上销售课程的 -商城-知识付费类#需求 -首页功能 -轮播图接口 -推荐课程接口(没写)-用户功能 -用户名密码登录-手机号验证码登录-发送手机验证码-验证手机号是否注册过-注册接口-课程列表功能 -课程列......
  • 企业项目类型、项目开发流程
    企业项目类型1、面向互联网用户:商城类项目 -微信小程序商城-线上线下结合2、面向互联网用户:二手交易类的 -咸鱼 -转转-交友平台3、公司内部项目,给某些用户定制项目:python写的重点 -运维管理,监控平台,资产管理 -oa系统-打卡系统工资核算系统-第三方公司做的......
  • 起风了,NCC 云原生项目孵化计划
    时间回到2016年,彼时.NETCore1.0刚刚发布1.0版本,我跟几位好友共同发起.NETCore中文学习组(.NETCoreChinaStudyingGroup)和ASP.NETCore文档翻译项目。再之后,翻译贡献者中的几位开源爱好者为了将社区发展下去,我们在翻译项目的基础上又创建了.NETCoreCommunity开......
  • DEV_C++新建项目及多线程实现
    一、单个C++程序(多线程)//实现txt文件的读入并重写入另外一个txt文件中~#include<fstream>//ifstream#include<iostream>#include<string>//包含getline()#include<string.h>#include<pthread.h>#include<windows.h>//#include<cmath>usin......
  • .net6 webapi 项目注册为windows 服务后访问静态文件
    直接使用kestrel运行程序时,只需要http://localhost:port/file.html即可访问,但是将程序注册为windows服务后,http://localhost:port/file.html会报404的错误,此时要访问到这个文件,http://localhost:port/wwwroot/file.html才行,如果想要windows服务和web的url一致只需要加......
  • 【项目一】git命令
    1.设置全局使用的用户名和Email地址$gitconfig--globaluser.name"YourName"$gitconfig--globaluser.email"[email protected]"2.创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录$mkdirlearngit$cdlearngit$pwd/Users/michael/learngit第二步,通过......
  • 使用最短路径算法检查项目循环依赖
    最近项目组让我做一个自研的小工具,用来检查代码里的循环依赖,这里做下记录。思路由于工作是网络算路的,第一个想法就是通过路径计算来实现这个功能:把项目里test,resource等文件夹排除,剩下的每一个java文件可以算是对应一个类,把每个类看做是网络/路网里的节点,把类与类之间的依赖关......
  • Langchain-Chatchat项目:1-整体介绍
      基于Langchain与ChatGLM等语言模型的本地知识库问答应用实现。项目中默认LLM模型改为THUDM/chatglm2-6b[2],默认Embedding模型改为moka-ai/m3e-base[3]。一.项目介绍1.实现原理  本项目实现原理如下图所示,过程包括加载文件->读取文本->文本分割->文本向量化->问句向量化->......