我们需要在游戏开始前,进行洗牌,或者是按下Enter键后,洗牌。这个功能,需要在代码的不同地方被执行,也会执行很多次。那么我们就要用到function函数。
在GML里,建立一个function,就是指创建一个脚本。我们就建立一个名叫shuffle_cards的脚本。为了洗一桌牌,我们让这个脚本接受一个参数名叫my_deck。下面是洗牌,发牌的代码。
var gamedeck=argument0; var cards_x=130; var cards_y=160; //开始洗牌 randomize(); ds_list_shuffle(deck); //开始发牌 var deck_size=ds_list_size(gamedeck); //position cards on the table var cards=1; for(var i=0;i<deck_size;i+=1) { deck[| i].x=cards_x; deck[| i].y=cards_y; deck[| i].index=i; deck[| i].visible=true; if(cards%4==0) { cards_x=130; cards_y+=160; } else { cards_x+=110; } cards+=1; }
录入上面的代码,我们在obj_controller对象里增加一个Key Press事件,按键为Enter,里面写上这段代码
shuffle_cards(deck);
这样每次按下Enter,都会洗牌。在游戏运行前,把放在room0里的obj_card 删除掉,把obj_controller拖到里面,来代替obj_card.按F5执行,按Enter键,出现下面的画面。
这是纸牌的背面,点击后,就会翻过来。
暂无关于此日志的评论。