Kivy使用篇之翻牌游戏
RecycleView
RecycleGridLayout
RecycleDataViewBehavior
使用示例Popup
的使用示例FocusBehavior
使用示例canvas
使用random.shuffle
打乱列表
翻牌游戏
有一个卡牌矩阵,依次翻开2个卡牌,如果2卡牌相同,则消除改2处的卡牌。依次类推,直到所有卡牌都被消除。
可翻转卡牌实现
<SelectableCard>:
# 背景色来指示卡牌类型
canvas.before:
Color:
rgba:
(1, 0, 0, 1) if self.mode == 0 \
else (0, 1, 0, 1) if self.mode == 1 \
else (0, 0, 1, 1) if self.mode == 2 \
else (1, 0, 1, 1)
Ellipse:
size: self.size
pos: self.pos
# 前景色 选中时透明
canvas.after:
Color:
rgba:
(0, 0, 0, 1) if not self.selectable \
else (1, 1, 1, .1) if self.selected \
else (.1, .8, .5, 1)
Rectangle:
pos: self.pos
size: self.size
font_size: sp(30)
每个卡牌有三种颜色,红、绿、蓝。当被选中时,前景色透明,可显示背景图颜色和文字信息。当无法被选中时,即not self.selectable
时,前景为全黑且不透明。
在python
中SelectableCard
的定义如下
class SelectableCard(RecycleDataViewBehavior, Label):
""" 可翻转的卡牌"""
i