棋牌平台制作教程之斗地主选牌算法

第一种:在牌的队列中只有自己被选中,会响应自己的可见区域,和前面一张牌的下部分可见区域。

这种是最简单的,自己被选中的时候,首先改变的正常的可见区域然后+选中之后的可见区域。

选中之后我们改变的就是牌的Y坐标:牌的Y坐标=牌的Y坐标-CheckHigh(选中之后的向上高度)

然后代入下面

NormalRect.setRect(牌的X坐标,牌的Y坐标,牌的X坐标+CardWidth,牌的Y坐标+CardHigh);//这个就是改变之后的正常可见区域。

下面是具体的4个点的坐标计算 (算法仅供参考!更多棋牌平台制作 www.yasewl.com

X1=牌的X坐标- CardSpacing(牌之间的间距)

Y1=牌的Y坐标

X2=牌的X坐标+CardWidth

Y2=Y1+CheckHigh(选中之后的向上高度)

选中之后的可见区域:TopOrDown.setRect(x1,y1,x2,y2);


然后改变前面一张牌下部分的可见区域。

X1=牌的X坐标+ CardSpacing(牌之间的间距)

Y1=牌的Y坐标+CheckHigh-CheckHigh(选中之后的向上高度)

X2=牌的X坐标+ CardSpacing(牌之间的间距)*2

Y2=牌的Y坐标+CheckHigh;

TopOrDown.setRect(x1,y1,x2,y2);

前面一张牌的正常可见区域不变。


第二种:在牌的队列中会影响其他牌的可见区域

这个可以分二种情况来讨论

1 前面三张牌有被选中的(选中之后前面牌的可见区域会被影响)

当前面3张牌中有选中状态的牌,它们的可见区域会被影响,正常的可见区域不会被影响。而影响的可见区域也只是X2被改变了,影响的可见区域我们可以用一个公式来表示

X2=((checkCardIndex(选中牌的索引) - forntCardindex(前面选中牌的索引))-1)*CardSpacing(牌之间的间距)。


2后面3张牌有被选中的(会影响自身得可见区域)

当我们选中牌的时候,后面三张牌有有被选中的时候。我们首先用第一种:在牌的队列中只有自己被选中的方法来计算出正常的可见区域和可见区域。而选中之后被后面影响的也只有X2,我们同样用一个公式来表示。

X2=( BackCardindex(后面选中牌的索引)-(checkCardIndex(选中牌的索引) )-1)*CardSpacing(牌之间的间距)。

这样当我们选中牌的时候既要改变自身得可见区域也要改变前面3张被选牌的可见区域。


这样在你点选牌的时候根据鼠标坐标,来判断和牌队列中的哪张牌的可见区域碰撞,然后确定牌的索引更改与之对应牌的可见区域就能实现选牌操作

转载于:https://www.cnblogs.com/bobpop/p/7249332.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值