今天给大家带来一个wpf的新项目,叫做脑力风暴,具体就是考验你记忆力的一个应用,一个格子刚开始时有四张图片,并且两个两个相同,当点击相同的时候,会消失,当通过之后就会成为九张图片,以此类推,玩法就介绍到这!废话不说上代码。前台界面界面不多说,有一个Name值,用来在后台引用这个Canvas
    <Window x:Class="_0607.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="MainWindow" Height="350" Width="525"><Canvas Name="back" Opacity="0.5" Background="Purple"></Canvas>
</Window>

主要的代码还是在后台写着。
首先是名称空间的导入,博客上面就有好多代码,没有命名空间,导致下载下来的代码不能使用,所以我这边会详细一点。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;//导入时间引用
using System.Windows.Media.Animation;//导入动画版引用

主要是我加注释的名称空间的导入
接下来是主要的代码。

namespace _0607
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{int[] num;//存放数字int zu = 0;//过关条件Image[] imgclick;//存放图片Random r = new Random();DispatcherTimer dt = new DispatcherTimer();//时间Storyboard sto = new Storyboard();Storyboard sto1 = new Storyboard();int x = 2;//刚开始的行数int click = 0;//点击的次数bool isTr = false;//区分添加还是移除public MainWindow(){InitializeComponent();this.Width = SystemParameters.FullPrimaryScreenWidth;//设置全宽度this.Height = SystemParameters.FullPrimaryScreenHeight;//设置全频高度this.Left=0;this.Top=0;this.WindowStyle = System.Windows.WindowStyle.None;//去边框this.AllowsTransparency = true;//透明this.Background = Brushes.Transparent;//背景透明5this.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;//剧中create();}private void create(){num = new int[x * x];//imgclick = new Image[x];//生成数字for (int i = 0; i < num.Length; i++){num[i] = r.Next(1, x + 1);//产生具有两个相同的图片。int temp = 0;for (int j = 0; j < i; j++){if (num[i] == num[j]){temp++;if (temp == x){i--;break;}}}}//生成图片for (int i = 0; i < num.Length; i++){Image img = new Image();img.Source = new BitmapImage(new Uri("Image/animal/" + num[i] + ".png", UriKind.Relative));img.Width = 100;img.Height = 100;img.Tag = num[i];Canvas.SetLeft(img, this.Width / 2 - x / 2 * img.Width + img.Width * (i % x));Canvas.SetTop(img, this.Height / 2 - x / 2 * img.Height + img.Height * (i / x));back.Children.Add(img);}dt.Interval = TimeSpan.FromSeconds(2);dt.Tick += new EventHandler(dt_Tick);dt.Start();}void dt_Tick(object sender, EventArgs e){Turn();dt.Stop();}private void Turn(){foreach (Image img in back.Children){RotateTransform ro = new RotateTransform();img.RenderTransform = ro;img.RenderTransformOrigin = new Point(0.5, 1);img.MouseDown -= new MouseButtonEventHandler(img_MouseDown);img.MouseDown += new MouseButtonEventHandler(img_MouseDown);img.Source = new BitmapImage(new Uri("Image/faces/" + r.Next(1, 8) + ".png", UriKind.Relative));DoubleAnimation da = new DoubleAnimation(-20, 20, TimeSpan.FromMilliseconds(500));Storyboard.SetTarget(da, img);da.AutoReverse = true;da.RepeatBehavior = RepeatBehavior.Forever;Storyboard.SetTargetProperty(da, new PropertyPath("RenderTransform.Angle"));sto.Children.Add(da);sto.Begin();}}string ss = "";//用来存放void img_MouseDown(object sender, MouseButtonEventArgs e){sto1.Children.Clear();//清除动画版Image img = (Image)sender;img.MouseDown -= new MouseButtonEventHandler(img_MouseDown);imgclick[click] = img;click++;//点击的次数int temp = 0;//统计相同数字if (click == 1){ss = img.Tag.ToString();//将图片Tag给ss}else if (click == x){click = 0;foreach (Image imm in imgclick){if (imm.Tag.ToString() == ss){temp++;}}if (temp == x){isTr = true;sto1.Completed += new EventHandler(sto1_Completed);}else{isTr = false;sto1.Completed+=new EventHandler(sto1_Completed);}}dong(img);}void sto1_Completed(object sender, EventArgs e){sto1.Completed -= new EventHandler(sto1_Completed);if(isTr==true){foreach (Image im in imgclick){back.Children.Remove(im);}zu++;if (zu == x){zu = 0;x++;create();}}else{Turn();}}private void dong(Image img){RotateTransform ra = new RotateTransform();//关联动画img.RenderTransform = ra;img.RenderTransformOrigin = new Point(0.5, 0.5);//设置旋转坐标img.Source = new BitmapImage(new Uri("Image/animal/" + img.Tag.ToString() + ".png", UriKind.Relative));DoubleAnimation da = new DoubleAnimation(0, 360, TimeSpan.FromMilliseconds(200));//创建动画Storyboard.SetTarget(da, img);da.RepeatBehavior = new RepeatBehavior(3);Storyboard.SetTargetProperty(da, new PropertyPath("RenderTransform.Angle"));sto1.Children.Add(da);sto1.Begin();}}
}

给大家看一看运行的效果

`

图片会有一个左右摆动的动画效果,非常好看。
下面是代码的下载地址
下载地址

希望大家喜欢,谢谢大家<我是守护明天>!

Wpf 脑力风暴游戏开发相关推荐

  1. 寒假——练车、脑力风暴和辅导初中生

    今年寒假除了完成寒假作业,我将大部分时间都用在了练车上,练车是轮流上车练习,那么在很长的等待时间我每天都会玩一个名叫脑力风暴,这两件事是我寒假几乎每天都在坚持的事情. 1.练车因为我家距离驾校比较远, ...

  2. 颠覆游戏开发,虚幻引擎 UE5 正式发布

    整理 | 章雨铭 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 4月6日,UE5正式发布! 体验完UE5的新功能后,3D游戏狂热爱好者感叹:"惊呆了,老铁!"美工直 ...

  3. 世界顶级音效公司_世界顶级游戏开发公司

    世界顶级音效公司 The game industry is growing, especially among small, independent development companies. If ...

  4. Html5 Egret游戏开发 成语大挑战(三)开始界面

    Html5 Egret游戏开发 成语大挑战(三)开始界面 本篇需要在前面的素材准备完毕,才可以开始,使用egret的eui结合代码编辑,快速完成基本的界面搭建,这里写的可能比较细,目的是减少大家对于其 ...

  5. 《Unity 3.x游戏开发实例》一第2章 让我们从天空开始

    本节书摘来异步社区<Unity 3.x游戏开发实例>一书中的第2章,第2.1节,作者: [加]Ryan Henson Creighton 译者: 师蓉 责编: 陈冀康,更多章节内容可以访问 ...

  6. 【读书笔记】游戏开发原理

    游戏开发原理读书笔记 Contents 游戏开发原理读书笔记 一.游戏与游戏设计 1 游戏类型与平台 1.1 类型和子类型 1.2 出品类型 1.3 平台 1.4 图形类型 1.5 交付方式 1.6 ...

  7. 1.15 从0开始学习Unity游戏开发--游戏UI

    上一章中,我们剩下最后一个任务,需要支持鼠标控制准心来进行设计,那么准心本质上就是一个始终呈现在屏幕上的一个图片,你当然可以用一个3D物体来制作,之前讲解渲染概念的时候也提到过,我们的屏幕就是相机的近 ...

  8. Silverlight游戏设计(Game Design):(二)场景编辑器让游戏开发更美好

    如果哪天光荣告诉我:<三国志>系列将终结,我会义无返顾的用余下那点青春继续诠释这部中国历史经典题材游戏,已无法细数它占据了我多少童年的回忆,就好比曾有那么一群满腔热血的<梦幻模拟战& ...

  9. Unity 3D游戏开发项目《战斗吧!勇士》

    目录 版权声明:本博客涉及的内容是对本人游戏作品<战斗吧!勇士>项目的总结,发布在网络上,旨在大家交流学习.互相促进.严禁用于其他一切用途. 摘要 游戏开发技术概述 Unity 3D 游戏 ...

最新文章

  1. ES doc_values介绍2——本质是field value的列存储,做聚合分析用,ES默认开启,会占用存储空间...
  2. Django实现对数据库数据增删改查(一)
  3. 我在神策做研发 | 成长中的成都研发中心
  4. PAT (Basic Level) Practice (中文)1008 数组元素循环右移问题 (20 分)
  5. [NOIP2010]关押罪犯(二分+二分图染色)
  6. Spark基础学习笔记08:Scala简介与安装
  7. 云端调用android函数,【探坑】Bmob的云端逻辑
  8. ITFriend创业败局(五):创业可以停止,公司必须注销,不然后果很严重
  9. 从零开始的Unity萌导书#1:Hello,Unity!
  10. FreeBSD从零开始---Web服务器搭建(二)
  11. 树莓派c语言读取dht11,树莓派直接读取 DHT11 温湿度的方法
  12. 360p2刷无线打印服务器,360P2路由器怎么修改无线信道?-360安全路由P2的WiFi信道修改教程?...
  13. 图灵机和通用计算机,数学的不完美之美——阿兰?图灵与图灵机
  14. 【Redux】异步action与同步action
  15. vue3 + tsx + pinia + jest开发模板整理
  16. 绿色下载:CYY屏幕截图助手1.3
  17. 计算机处理器缓存参数,如何查看CPU型号和主频、缓存、接口等参数
  18. 用Django编写邮箱注册以及验证码
  19. SAML 协议-简单的SAML
  20. Java面向对象与代码编写

热门文章

  1. Python := 符号解析
  2. 让电影尖叫:京东众筹试水跳板时代
  3. 有些话,那么悲伤,那么简短_伤感唯美日志
  4. 苹果ipad颜色失真,变得和底片一样,怎么调
  5. 用 python 分析了微信上所有的微信好友,发现了一个秘密...
  6. 年龄标签html,js+html实现周岁年龄计算器
  7. Java 事务的传播性(Transactional)
  8. HTTP协议常见考点
  9. springboot毕业设计 基于springboot家政服务预约网站系统毕业设计设计与实现参考
  10. linux登录pg数据库命令,postgreSql基础命令及linux下postgreSql命令