真受不了一群人一点这种技术也要拿出来卖钱,真是恶心。
原理是cocos2dx 剪裁结点,遮罩技术,可以去工程的test目录看实例。
原理,搓牌时用牌的正面盖住背面,同时两边用两张白片图片盖住,模拟弯曲角度。
自己运行一下就全明白了。
使用方法
local GameCuoCardLayer=require("GameCuoCardLayer")
self._layer:addChild(GameCuoCardLayer:create())
正文
--初始偏移
local beginoffset =70
local GameCuoCardLayer = class("GameCuoCardLayer", function()
local gameLayer = cc.LayerColor:create(cc.c4b(0, 0, 0, 125))
return gameLayer
end)
function GameCuoCardLayer:create()
local layer = GameCuoCardLayer:new(self);
self.m_pListenerNodes = {}; -- 监听的牌
self.m_pShowedNode = {}; -- 已经显示出来的牌
layer:init()
return layer;
end
function GameCuoCardLayer:init()
self.widget = {};
self.m_endRub = false;
local clipper = cc.ClippingNode:create();
clipper:setPosition(0, 50 );
self.widget.Panel_out = clipper;
self.widget.Panel_out.m_srcPosition = cc.p( 0, 50 )
--牌
local faceNode = cc.Node:create()
local cardImg = ccui.ImageView:create()
cardImg:loadTexture(string.format("big_card/%d (%d).png",1,10) ); --牌的颜色和大小
cardImg:setPosition(cc.p( 640,-268 ))--268
cardImg:setRotation(90 );
faceNode:addChild( cardImg,10)
cardImg:setScale( 1.2 );
self.widget.Panel_out[ "Image_card" ] = cardImg;
self.widget.Panel_out[ "Image_card" ].m_srcPositionY = -268;
--白片
local writeImg = ccui.ImageView:create()
writeImg:loadTexture("big_card/zhedang.png");--
writeImg:setAnchorPoint(cc.p(0, 1));
writeImg:setPosition(cc.p( 0, 680 ))
cardImg:addChild( writeImg, 11 )
self.widget.Panel_out[ "Image_card" ].writeImg1 = writeImg;