手把手教你学会使用Quick-Cocos2d-x制作横版过关游戏【上课中!!~】

— Begin quote from ____

引用第176楼pk27602017于2014-08-21 15:42发表的 :
老师这个问题你看漏了…

还有这种连着点的线是什么代码?

http://www.cocoachina.com/bbs/job.php?action=topost&tid=217304&pid=1035233

— End quote

这个效果应该是用的Cocos2d-x下的画线实现的,你可以看下Cocos2d-x下的画线是怎么画的,内容还比较多

— Begin quote from ____

引用第178楼pk27602017于2014-08-21 15:43发表的 回 175楼(yuezang) 的帖子 :
那老师.做拼图的话用什么办法比较好?求方法推荐. http://www.cocoachina.com/bbs/job.php?action=topost&tid=217304&pid=1035236

— End quote

你的拼图按道理应该也是矩形啊,为什么会是不规则的呢?你可以给每个图块标记一个id,id完全符合正确顺序的话拼图就对了

像这样的.我需要点击这些区域查看信息

— Begin quote from ____

引用第182楼pk27602017于2014-08-21 15:50发表的 :
像这样的.我需要点击这些区域查看信息 http://www.cocoachina.com/bbs/job.php?action=topost&tid=217304&pid=1035251

— End quote

每张图片点击不同的位置会有不同的信息么?如果只是一张图片是一段相同的信息的话你可以给每张图片一个touch的响应就可以了;然后你拼图其实就是不停的换图片的次序,其实每张图片的边都是挨着的对吧?

不是这个意思.我点击图片以后他的透明区域也是可以被点击到的.我希望无视掉透明区域.像是上面第7张图片他的本身并没有这么大.可是照样可以点击到…

我用的quick-cocos2d-x3.0 为什么我这样写:

-- 这是在Player的构造函数里初始化的
     self.fsm = {};
    cc.GameObject.extend(self.fsm)
        :addComponent("components.behavior.StateMachine")
        :exportMethods()
    
    self.fsm:setupState({
        --初始状态
        initial="idle",
        --事件和状态转化
        evnets = {
            {name="clickScreen",from={"idle","attack"},to="walk"},
            {name="clickEnemy",from={"idle","walk"},to="attack"},
            {name="beKilled",from={"idle","walk","attack"},to="dead"},
            {name="stop",from={"walk","attack"},to="idle"}
        },
        --状态发生回调函数
        callbacks = {
            onidle = function(event)
                print("***********静止状态************");                           
            end,
            onwalk = function(event)
                print("***********行走状态************");
            end,
            onattack = function(event)
                print("***********攻击状态************");
            end,
            ondead = function(event)
                print("***********死亡状态************");
            end
        }
    });


--这是更改状态函数
function Player:doEvent(event)
    if(self.fsm:isReady())then
        self.fsm:doEvent(event);
    end
end

-- 在MainScene的onTouch函数里,这样写,
 index = index or 1;  -- 取事件字符串的索引
 local fsmEvents = {"clickScreen", "clickEnemy", "beKilled", "stop"};
 self.player:doEvent(fsmEvents);
 index = index + 1;


```

遇到以下问题:
当我点击屏幕时,就报以下错误,
cocos2d:  LUA ERROR: :0: StateMachine:doEvent() - invalid event clickScreen

自己反查了quick的StateMachine.lua 发现是在doEvent() 函数的第一行,就报错了,说我传入的事件名称找不到相应的事件,望指教!

— Begin quote from ____

引用第184楼pk27602017于2014-08-21 16:01发表的 回 183楼(yuezang) 的帖子 :
不是这个意思.我点击图片以后他的透明区域也是可以被点击到的.我希望无视掉透明区域.像是上面第7张图片他的本身并没有这么大.可是照样可以点击到… http://www.cocoachina.com/bbs/job.php?action=topost&tid=217304&pid=1035261

— End quote

那你可以获取精灵被点钟的位置是否透明,如果透明的话就不响应

怎么检测透明…有没有比较简单的函数.上面那个函数太长了…

— Begin quote from ____

引用第185楼张大师于2014-08-21 16:08发表的 Re:手把手教你学会使用Quick-Cocos2d-x制作横版过关游戏【8.14答疑已更新!!~】 :
我用的quick-cocos2d-x3.0 为什么我这样写:

-- 这是在Player的构造函数里初始化的
     self.fsm = {};
....... http://www.cocoachina.com/bbs/job.php?action=topost&tid=217304&pid=1035273
![](p_w_picpath/back.gif)



*--- End quote*




光看代码好像什么问题啊,要不你把全部代码发上来看下?

— Begin quote from ____

引用第187楼pk27602017于2014-08-21 16:14发表的 回 186楼(yuezang) 的帖子 :
怎么检测透明…有没有比较简单的函数.上面那个函数太长了… http://www.cocoachina.com/bbs/job.php?action=topost&tid=217304&pid=1035279

— End quote

使用SpriteEx里面的Sprite:getColorAlpha

使用SpriteEx里面的Sprite:getColorAlpha 会报错吗。。我是这么写的。

Enemy1.lua 16行 (Enemy2.lua 也有写)

self:addNodeEventListener(cc.NODE_TOUCH_EVENT, function(event)
    print(event.x,event.y,"_",self:getColorAlpha(ccp(event.x,event.y)))
    local a = self:getColorAlpha(ccp(event.x,event.y))
    if a > 0 then
        return onTouch()
    end
end)

。结果点击( 点击速度很快) 血条后半部分会弹出一个调试框 (每次都这样)

— Begin quote from ____

引用第190楼yl32o于2014-08-21 17:27发表的 回 189楼(yuezang) 的帖子 :
使用SpriteEx里面的Sprite:getColorAlpha 会报错吗。。我是这么写的。

Enemy1.lua 16行 (Enemy2.lua 也有写)

self:addNodeEventListener(cc.NODE_TOUCH_EVENT, function(event)

http://www.cocoachina.com/bbs/job.php?action=topost&tid=217304&pid=1035379

— End quote

处理不过来了……你这操作算极限测试了,要自己处理下这种情况

能详细点吗, 那个操作其实不快一样会出现问题的。。。极限测试什么的没代码 也给个方案好吗。。不然,这问题会不了了之了。。

— Begin quote from ____

引用第192楼yl32o于2014-08-22 09:35发表的 回 191楼(yuezang) 的帖子 :
能详细点吗, 那个操作其实不快一样会出现问题的。。。极限测试什么的没代码 也给个方案好吗。。不然,这问题会不了了之了。。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=217304&pid=1035712

— End quote

获取图片是否透明这个操作比较耗时,所以会比较慢,你再真机上看下效果,如果这个问题很容易出现的话,可以像个其他的解决方案

对不起,我就是那个 请求发布能让手机用的教程的那个。。。因为。还没成功发布一次。真机调试什么的没试成功过

按钮能使用self:getColorAlpha这个嘛?
怎么用???能不能写个参数的用法?

求源码下载链接。。:3:

— Begin quote from ____

引用第194楼yl32o于2014-08-23 11:44发表的 回 193楼(yuezang) 的帖子 :
对不起,我就是那个 请求发布能让手机用的教程的那个。。。因为。还没成功发布一次。真机调试什么的没试成功过 http://www.cocoachina.com/bbs/job.php?action=topost&tid=217304&pid=1036576

— End quote

你到proj.android目录下执行./build_native,然后再在Eclipse下运行应用就可以了

— Begin quote from ____

引用第196楼zliuxingyu于2014-08-26 18:00发表的 :
求源码下载链接。。:3: http://www.cocoachina.com/bbs/job.php?action=topost&tid=217304&pid=1039188

— End quote

https://github.com/rainswan/Brave

— Begin quote from ____

引用第195楼pk27602017于2014-08-26 15:18发表的 :
按钮能使用self:getColorAlpha这个嘛?
怎么用???能不能写个参数的用法? http://www.cocoachina.com/bbs/job.php?action=topost&tid=217304&pid=1038936

— End quote

local color = sprite:getColorAtPoint(point)
if color.a == 255 then
– 完全透明