首页 技术 正文
技术 2022年11月18日
0 收藏 829 点赞 3,705 浏览 3136 个字
var cols:int = ;//列数
var rows:int = ;//行数
var totalCards:int = ;//所有卡片的数量
var matchesNeededToWin:int = totalCards*0.5;//最大匹配数,用来判断游戏是否胜利
var matchesMade:int = ;
var cardW:int = ;
var cardH:int = ;
var aCards:Array;//用来保存所有的牌,要洗的时候,所有的东西放到这个里面
var aGrid:Array;
var aCardsFlipped:ArrayList;//翻开的牌的序列
var playerCanClick:boolean;//能否翻拍(开始的时刻木有翻牌,所以开的牌是0
//,翻开第一张的时候,可以翻开第二张,但是翻开第二张的时候,那么不可以再翻牌)
var playerHasWon:boolean = false;//用户是否胜利//创建一个类
class Card extends System.Object{
var isFaceUp:boolean = false;
var isMatched:boolean = false;
var img:String;
var id:int; function Card(img:String,id:int){
this.img = img;
this.id = id;
//img = "robot";
}
}//洗牌
function BuildDeck(){
var totalRobots:int = ;//一共有四种机器人,红绿蓝黄
var card:Object;
var id:int = ;
for(i=; i<totalRobots; i++)//一共四轮
{
var aRobotParts:Array = ["Head", "Arm", "Leg"];
for(j=; j<; j++)
{
var someNum:int = Random.Range(, aRobotParts.length);//生成一个0到3的随机数
var theMissingPart:String = aRobotParts[someNum];//拼凑一个字符串,用来表示一张图片
aRobotParts.RemoveAt(someNum);//这个已经用过了,就从数组中移除
card = new Card("robot" + (i+) + "Missing" + theMissingPart,id);
aCards.Add(card);
card= new Card("robot" + (i+) + theMissingPart,id);
aCards.Add(card);
id++;
}
}
}function Start(){ //可以翻牌
playerCanClick = true;
aCards = new Array();
aGrid = new Array();
aCardsFlipped = new ArrayList();
BuildDeck();//开始洗牌 //就一直在这里产生,产生一个,移除一个,再产生一个再移除一个。知道为空 for(i=; i<rows; i++)
{
aGrid[i] = new Array();//数组初始化1维
for(j=; j<cols; j++)
{
//aGrid[i][j] = new Card();//数组初始化2维
var someNum:int = Random.Range(,aCards.length);
aGrid[i][j] = aCards[someNum];
aCards.RemoveAt(someNum);
}
}
}//翻牌function FlipCardFaceUp(card:Object){
card.isFaceUp = true;
if(aCardsFlipped.IndexOf(card)<)
{
aCardsFlipped.Add(card); if(aCardsFlipped.Count == )
{
playerCanClick = false; yield WaitForSeconds();
if(aCardsFlipped[].id == aCardsFlipped[].id)
{
aCardsFlipped[].isMatched = true;
aCardsFlipped[].isMatched = true; matchesMade++; if(matchesMade>=matchesNeededToWin)
{
playerHasWon = true;
}
}
else
{
aCardsFlipped[].isFaceUp = false;
aCardsFlipped[].isFaceUp = false;
}
aCardsFlipped = new ArrayList(); playerCanClick = true;
}
}
}function BuildGrid(){
GUILayout.BeginVertical();
GUILayout.FlexibleSpace(); for(i=; i<rows; i++)
{
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
for(j=; j<cols;j++)
{
var card:Object = aGrid[i][j];
var img:String; //如果图片已经匹配了,那么就做成空白
if(card.isMatched)
{
img = "blank";
}
else
{
if(card.isFaceUp)
{
img = card.img;
}
else
{
img = "wrench";//牌的背面
}
}
GUI.enabled = !card.isMatched; //点击了某一个按钮
if(GUILayout.Button(Resources.Load(img),GUILayout.Width(cardW)))
{
if(playerCanClick)
{
//翻牌
FlipCardFaceUp(card);
}
Debug.Log(card.img);
}
GUI.enabled = true;
}
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
}
GUILayout.FlexibleSpace();
GUILayout.EndVertical();
}//创建赢的时候的画面(就是两个正方形,让后让用户看的)
function BulidWinPrompt(){ var winPromptW:int = ;
var winPromptH:int = ; var halfScreenW:float = Screen.width/;
var halfScreenH:float = Screen.height/;
var halfPromptW:int = winPromptW/;
var halfPromptH:int = winPromptH/; GUI.BeginGroup(Rect(halfScreenW-halfPromptW,halfScreenH-halfPromptH, winPromptW, winPromptH));
GUI.Box (Rect (,,winPromptW,winPromptH),"You Win!!"); if(GUI.Button(Rect(,,,),"Play Again"))
{
Application.LoadLevel();
}
GUI.EndGroup();
}//这种布局类似于htmlfunction OnGUI(){
GUILayout.BeginArea(Rect(,,Screen.width,Screen.height)); BuildGrid();
if(playerHasWon) BulidWinPrompt(); GUILayout.EndArea();
print("building grid!");
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,104
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,580
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,428
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,835
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,918