android 翻牌动画,小玩怡情----Android翻牌小游戏

前言

小侄女近日粉上一款儿童版卡牌配对游戏

规则如下:

展示随机摆放的多张卡牌,瞬间记忆后翻回背面;

点击翻牌,三秒内连续翻开两张相同图案的卡牌则配对成功。

好像有点容易实现啊?!作为一枚负责的程序员,有了想法当然要说干就干~

话不多说先上图

5a919e95537f

game.gif

实现思路

规则

八张卡牌乱序排列,展示两秒后翻转回背面;

用户每次可翻开一张卡牌,需连续翻开两站卡牌进行配对;

匹配成功则播放正确提示音及动画,卡牌保持翻开状态

匹配失败则播放错误提示音及动画,卡牌翻回背面

配对限时三秒,若三秒内用户未翻开第二张卡牌则重新翻回第一张卡牌

定义

卡牌视图(正反面,动态加载)

卡牌翻转动画

正误提示动画

提示音

延迟触发类

卡牌数据模型

说说细节

上代码

1.序号数组乱序,每个对象包含两张卡牌元素,除2按结果分组求真实下标

private void initIndexList() {

if (cardNum <= 0)

return;

this.indexList.clear();

for (int i = 0; i < cardNum; i++) {

this.indexList.add(i);

}

Collections.shuffle(this.indexList);

}

final int currPosition = indexList.get(position); // 获取元素下标位置分组,每个对象包含一组元素

holder.position = position;

holder.realIndex = currPosition / CARD_GROUP_MEMBER_NUM; // 对象实际对应下标

holder.isFirst = currPosition % CARD_GROUP_MEMBER_NUM != 0;

CardBean realCardBean = cardList.get(holder.realIndex);

2.属性动画 动画开始和结束监听,卡牌两面禁止点击

android:propertyName="alpha"

android:valueFrom="1.0"

android:valueTo="0.0"/>

android:propertyName="rotationY"

android:valueFrom="-180"

android:valueTo="0"/>

android:propertyName="alpha"

android:startOffset="200"

android:valueFrom="0.0"

android:valueTo="1.0"/>

delayAction.valid();

removeActionById(IA_FLOP_BACK);

view1.setClickable(false);

view2.setClickable(false);

3.按位判断是否完成,避免重复记录

if (isMatched) {

mClickFlag = mClickFlag | (0x1 << selCardView1.realIndex);

}

private boolean checkEnd() {

return mClickFlag == (0x1 << cardList.size()) - 1;

}

4.禁止快速连续点击

if (!isAddAllowed() || delayAction.invalid()) {

return;

}

最后

感兴趣的盆友欢迎移步CardMatchGame,多多指教

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值