silverlight5开发的翻牌游戏

扑克牌用了一个自定义控件,代码如下
public class CardButton : Button
{
public int state;//是否翻转0是未翻转,1是已翻转
private static CardButton button;
public CardButton()
{
this.DefaultStyleKey = typeof(CardButton);
// this.Click += CardButton_Click;
}
主要是继承了button控件然后增加了一个属性,记录牌是否翻转,然后修改了样式
<Style TargetType="local:CardButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:CardButton">
<!--<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
</Border>-->
<Grid x:Name="RootElement">
<!--<Rectangle x:Name="BodyElement" Width="260" Height="100"
Fill="Lavender" Stroke="Purple" RadiusX="16" RadiusY="16" />-->
<!--<TextBlock Text="{TemplateBinding Content}" HorizontalAlignment="Center"
VerticalAlignment="Center" />-->
<Image Source="{TemplateBinding Content}" Width="100" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
页面上使用了一个wrappanel控件,实现流布局来展示牌
主页面核心代码如下
private void InitData()
{ count = ;
int[] j = new int[] { , , , , , , , , , , , , , , , };
Random r=new Random();
List<int> arr= j.OrderBy(x=>r.Next()).ToList<int>(); for (int i = ; i < ; i++)
{ CardButton button = new CardButton();
button.state = ;
button.Name = "btn" + i;
button.Content = "image/card.jpg"; button.Tag = arr[i].ToString();
button.Click += button_Click;
Content.Children.Add(button);
list.Add(button); }
}
然后定义图片点击事件,两张相同的图片则消失,当点开第3张的时候,前2张翻转过来
void button_Click(object sender, RoutedEventArgs e)
{
CardButton b = (CardButton)sender; b.state = ;
b.Content = "image/" + b.Tag + ".jpg"; ;
if (list.Count(btn => btn.state == ) >= )
{
foreach (CardButton item in list.Where(btn => btn.state == || btn.state == ))
{
item.Content = "image/card.jpg";
item.state = ;
} b.state = ;
return;
} foreach (CardButton item in list.Where(btn=>btn.state==))
{
if (b.Tag.ToString()==item.Tag.ToString()&&b.Name!=item.Name)
{ count = count - ;
b.Dispose();
item.Dispose();
}
}
#region 游戏结束
if (count<=)
{
MessageBox.Show("恭喜你,太聪明了,闯关成功"); }
#endregion
}
silverlight5开发的翻牌游戏的更多相关文章
- 使用Html5+C#+微信 开发移动端游戏详细教程 :(三)使用html5引擎搭建游戏框架
教程里的案例我们是通过H5游戏引擎开发,目前H5的游戏引擎比较好用的是白鹭,不过对于新手来说白鹭的开发环境和工具使用过于复杂,这里推荐一个国内大神编写的游戏引擎:lufylegend. 直接在页面引入 ...
- 【读书笔记《Android游戏编程之从零开始》】19.游戏开发基础(游戏音乐与音效)
在一款游戏中,除了华丽的界面 UI 直接吸引玩家外,另外重要的就是游戏的背景音乐与音效:合适的背景音乐以及精彩的音效搭配会令整个游戏上升一个档次. 在 Android 中.常用于播放游戏背景音乐的类是 ...
- Unity 4.2.0 官方最新破解版(Unity3D 最新破解版,3D游戏开发工具和游戏引擎套件)
Unity是一款跨平台的游戏开发工具,从一开始就被设计成易于使用的产品.作为一个完全集成的专业级应用,Unity还包含了价值数百万美元的功能强大的游戏引擎.Unity作为一个游戏开发工具,它的设计主旨 ...
- Swift - 跑酷游戏开发(SpriteKit游戏开发)
一,下面演示了如何开发一个跑酷游戏,实现的功能如下: 1,平台工厂会不断地生成平台,并且向左移动.当平台移出游戏场景时就可将其移除. 2,生成的平台宽度随机,高度随机.同时短平台踩踏的时候会下落. 3 ...
- 怎样在Android开发中FPS游戏实现的两种方式比较
怎样在Android开发中FPS游戏实现的两种方式比较 如何用Android平台开发FPS游戏,其实现过程有哪些方法,这些方法又有哪些不同的地方呢?首先让我们先了解下什么是FPS 英文名:FPS (F ...
- pygame开发滑雪者游戏
pygame开发滑雪者游戏 一.实验说明 下述介绍为实验楼默认环境,如果您使用的是定制环境,请修改成您自己的环境介绍. 1. 环境登录 无需密码自动登录,系统用户名 shiyanlou,该用户具备 s ...
- 斗牛app上架应用宝、牛牛手机游戏推广、百人牛牛app应用开发、棋牌游戏上传、手游APP优化
联系QQ:305-710439斗牛app上架应用宝.牛牛手机游戏推广.百人牛牛app应用开发.棋牌游戏上传.手游APP优化 iOS开发iPhone/iPad平台安卓手机软件开发机型覆盖范围 超过113 ...
- JavaScript案例开发之扑克游戏
随着时代的发展,知识也在日益更新,但是基础知识永远不会过时,它是新时代的基石,更是我们进一步学习的保障,下面带着大家用JavaScript开发一款真正的扑克游戏,和大家一起分享,希望你们能够喜欢:闲话 ...
- 【转】利用 three.js 开发微信小游戏的尝试
前言 这是一次利用 three.js 开发微信小游戏的尝试,并不能算作是教程,只能算是一篇笔记吧. 微信 WeChat 6.6.1 开始引入了微信小游戏,初期上线了一批质量相当不错的小游戏.我在查阅各 ...
随机推荐
- ActionBarSherlock
https://github.com/JakeWharton/ActionBarSherlock https://github.com/ddewaele/GoogleMapsV2WithActionB ...
- [Javascript] Object.freeze() vs Object.seal()
let person = { firstName: "Zhentian", lastName: "Wan" }; /*Object.freeze() makes ...
- [React] React Fundamentals: First Component
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Linux软连接和硬链接(摘录)
1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引节点 ...
- ajax异步传输
2015.12.7 ajax异步传输 1.ajax :不是一个新的技术. js(XMLHTTPRequest) html css dom xml 这里只是一个新的js的内置对象.这算是js想要变得流行 ...
- javascript进击(九)参考手册
完整的 Number 对象参考手册 如需可用于 Number 对象的所有属性和方法的完整参考,请访问我们的 Number 对象参考手册. 该参考手册包含每个属性和方法的描述和实例. 完整的 Strin ...
- wap上传图片跨域发送post请求
wap和接口交互是跨域请求,一般只能通过Jsonp来进行数据的吞吐,然而jsonp只是GET请求,不能发送post请求,所以会对项目需求有所限制. 需求:wap跨域通过接口上传图片. 条件:接口是C# ...
- 使用T4模板为EF框架添加实体根据数据库自动生成字段注释的功能
转自http://jeffblog.sinaapp.com/archives/501 首先我们先下载一个文件GetSummery,这里我提供了,大家可以直接下载:下载 我们在数据库建立一个表,并给表中 ...
- 20151213Jquery学习笔记--插件
插件(Plugin)也成为 jQuery 扩展(Extension),是一种遵循一定规范的应用程序接口编 写出来的程序.目前 jQuery 插件已超过几千种,由来自世界各地的开发者共同编写.验证 和完 ...
- python中关于正则表达式一
ab+,描述一个'a'和任意个'b',那么'ab','abb','abbbbb' 正则表达式可以:1.验证字符串是否符合指定特征,比如验证是否是合法的邮件地址 2.用来查找字符串,从一个长的文本中查找 ...