笨木头与游戏开发
只有你足够强,别人才会和你讲道理。
文章:
280
浏览:
2,949,602
博主:
笨木头
关注:
Unity、Net Core、Blazor
邮箱:
musicvs@163.com
首页
|
留言
分类目录
其它
Cocos2d-x
创业路
Android
LGame
C++
Unity3D
近期评论
迷途的老菜鸟
在
留言...
回复给
笨木头
谢谢大佬的分享,可以学到很多...
笨木头
在
留言...
回复给
迷途的老菜鸟
哈哈,没有更好玩的,就是做其他领域的开发去了。...
迷途的老菜鸟
在
留言...
所以笨木头大佬现在研究啥了? 不做游戏开发,还有更好玩的?...
笨木头
在
[笨木头“创2”路]No.10...
回复给
kkk
唉,我这不知道咋的,年龄越大,感悟越少,都不知道写点什么好...
kkk
在
[笨木头“创2”路]No.10...
一年了,年更博主该更新了...
笨木头
在
[Game Framework...
回复给
牛马树下只有我
抱歉,很久没研究Unity3D了,我可能提供不了什么有用的建议。...
《Cocos2d-x3.x游戏开发之旅》已出版~!(附源码下载地址)
笨木头 2014-10-08 18:29
Cocos2d-x
阅读
(104588)
评论
(191)
转载请注明,原文地址:
http://www.benmutou.com/archives/1856
文章来源:
笨木头与游戏开发
其
实书早就印好了,只是因为遇上国庆,物流不发图书,只能等国庆之后才能陆续上架各大网店了~预计下周就能看到了。
由于之前2.0版本一书的光盘损坏的概率不够小,所以这次就不提供随书光盘了,而是采取官网下载的方式。
书
里可能提示得不够清楚,这里给各位读者提示一下,源码下载地址:
http://www.phei.com.cn/module/zygl/zxzyindex.jsp
找到我这本书的两个文件,下载就可以了~
另外,我自己也传了一些资料到云盘,都是些旧版本的东西,现在不好找到(2017.05.11更新):
书籍项目:
http://pan.baidu.com/s/1bRUWlK
NDK R9B :
http://pan.baidu.com/s/1i5hVILn
cocostudio1.2.0:
http://pan.baidu.com/s/1pLF92JL
Cocos2d-x3.0:
http://pan.baidu.com/s/1hsPrhGw
Android-SDK离线包:
http://pan.baidu.com/s/1o7MMOrS
最
后,感谢各位喜欢这本书的读者,所谓酒逢知己千杯少,知音难寻。
我能遇到这么多知音,实在是足够了。(小若:别傻了,他根本就不会喝酒,更不会弹琴~!)
对
于那些不喜欢我这本书的朋友,你们放心,我不会恨你们的。
只不过以后你们走路小心点,别让我在美国看见你。
部分购买地址如下:
china-pub购买
当当网购买
亚马逊购买
0
上一篇
【Cocos2d-x Lua】出乎意料的性能短板——那个getPosition的binding(原来是bug!)
下一篇
【1元开源计划】Cocos2d-x3.2+Lua 游戏源码公开(已结束)
191 条评论
甲虫
2018-04-02 16:42:55
你好请问,要是我对一个按钮使用了addTouchEventListenr注册监听事件,然后可以在监听函数里面找到这个按钮对象吗,如果可以要怎么做呢
0
回复
博主
笨木头
2018-04-03 08:47:10
对不起...我已经多年没有接触cocos引擎了,我凭印象猜测一下:
1. 一般在事件触发时,会有一个叫做sender的object,这个就是触发事件的对象,也就是那个按钮
2. 订阅事件的时候可以传递参数,在触发事件时可以获取到这个参数,你可以传递这个button对象进去
我倾向于第一种,我印象中cocos是有sender参数的。
0
回复
lengyue
2017-07-16 00:20:46
木头,你代码我已经全部跑了一遍,全部可测, 但是代码基本上没有defensive check,移植的时候稍稍修改就是一堆问题。
我最近在用你的塔防移植成一个自己设计的游戏(非塔防),所以移植的时候遇到很多问题,不继续在你网站上灌水啦,开个博客来填坑,大神你没事儿上去看看指导指导哈,谢谢谢谢。
比如今天的问题。本来我打算有一个story的时间去根据坐标动态实现八方向角色的跑动动画。本来很简单的事情,但是还是有问题。绕来绕去又跑回C++的基础了。所以,当我觉得当把自己的游戏写完的时候,不仅cocos2d-x掌握了,c++也能学到一个。
http://blog.163.com/leek_w/blog/#m=0&t=1&c=fks_085065093087081064087086082095085095081075084083083074085
0
回复
博主
笨木头
2017-07-16 08:17:59
加油,写博客是个好习惯(话说为什么不在CSDN写呢?)
0
回复
lengyueswork
2017-07-13 23:54:00
又发现塔防移植过程中bug一枚,mark
hero的atk speed是从csv文件里读出来的,子弹的速度是hardcode为0.5.
默认csv的atk speed是1s,子弹的atk speed是0.5s,那么子弹在0.5攻击完之后,hero需要额外等0.5s发射下一颗子弹。
子弹中包含了aim的地址,在子弹arrive之后,会调用aim的hert函数减hp。
那么问题来了,下面的一个scenaro会出现segv:
1. 设置子弹的speed为1.5s,设置hero的speed为1s。
2. 英雄会在第一颗子弹没有arrive时发射下一颗子弹,这样英雄会同时发射多颗子弹。
3. 在aim死掉之后,还有子弹没有arrive。
4. SegV。
Root Cause:
子弹存了aim的地址,这个地址会在aim死掉是被erase。当aim erease时,还有子弹正在飞,arrive之后,aim已经被free,继续调用会出现非法访问地址。作者已经加了defensive check,判断指针是否为null,然并卵。
Solution:
Option1: 只要子弹的速度不大于英雄一次攻击的速度,没问题。
Option2: 子弹到达后,遍历一遍aim list,判断当前aim是否存活。
用Option1吧先,mark mark,先这样吧,先这样吧,穷举各种rainy case没完没了,没完没了
0
回复
博主
笨木头
2017-07-14 08:37:50
哈哈哈,好喜欢你的专研精神,实话说,在创业公司待久了,连个像样的开发者都没有(没钱招),我现在真是求贤若渴啊(但是不招人不招人...)
0
回复
lengyue
2017-07-07 22:10:50
又发现作者bug一枚,fix花了两个小时, 啦啦啦。
基于作者塔防逻辑的移植实现一个新的逻辑,英雄检测到小怪之后,移动到小怪的点,进行攻击,攻击之后,接着按指定的路径接着走到终点。
Tollgate->heroMgr->checkAtkMonster->m_atkMonster->isDead->monsterList.eraseObject(m_atkMonster).
之后发现英雄打死小怪之后,卡在那里不动。
各种加log,发现monsterList在erase the monster of the died之后,在chooseAim里,monsterList的个数还是不变。
也就是删除没有起作用。
在checkAtkMonster的声明, checkAtkMonster(float ft, Vector monsterList), monsterList是copy的一个副本,应该声明成& monseterList).
之后调试还是不起作用。后来发现monsterList至少被嵌套了4层,从顶层一路路改成引用,终于work啦。
0
回复
博主
笨木头
2017-07-08 08:35:22
哈哈哈,谢谢谢谢,动手能力强的读者什么的,最让人舒心了。
0
回复
222
2017-05-11 17:06:58
cocos2dX 游戏开发之旅3.x的源码找不到了
0
回复
博主
笨木头
2017-05-11 19:35:28
抱歉,链接过时了。已更新最新下载链接。
0
回复
ZZK
2017-10-09 19:47:52
链接在哪里呀?
0
回复
博主
笨木头
2017-10-09 19:59:21
就是这篇文章的链接,已经是更新过的了。
书籍项目:http://pan.baidu.com/s/1bRUWlK
0
回复
ZZK
2017-10-14 17:06:19
VS2017 没有找到extionsion库怎么办。。
0
回复
博主
笨木头
2017-10-14 22:23:18
如果是运行3.0的引擎,还是建议和书上一样的版本的vs(有点麻烦,抱歉),新版本的vs,对旧版本的引擎似乎不太友好,总是有点错误。
0
回复
ZZK
2017-10-14 22:28:28
那个运行显示 无法打开包括文件: “Macros.h”: No such file or directory 是什么情况
0
回复
博主
笨木头
2017-10-15 08:51:10
好久没折腾这引擎了,我已经看不出是什么错误了╯︿╰
0
回复
wangyw
2018-01-21 11:06:43
为什么下载失败呢
0
回复
博主
笨木头
2018-01-22 08:32:11
下载失败?是打不开网址,还是下载过程中出错呢?
0
回复
傻圆傻圆
2017-05-07 23:33:06
- 。- helloworld 的我都不能运行 不知道为什么。。。
0
回复
博主
笨木头
2017-05-08 08:46:08
这,由于书籍对应的引擎版本比较老了,学习书上内容的话,建议用书上一致的版本(包括UI编辑器什么的),不然可能会有很多问题。
但是HelloWorld也运行不了,我就有点尴尬了...
0
回复
林先生
2016-01-03 21:16:20
14章,上篇,没有白色线框,加断点调试,反现应该是没有调用darw,反复对照你的源码,发现好多错漏的地方。希望作者调整。
0
回复
博主
糟糕_树叶的mut
2016-01-04 12:24:21
好,不过现在应该不会再重印了
0
回复
伊邪庭
2016-01-23 15:10:15
在哪里调用draw
0
回复
黑精
2016-01-23 16:13:47
在哪里调用draw
0
回复
lengyueswork
2017-06-10 19:46:03
是啊,我的版本是3.12, draw也没有被invoke
我在PosBase.c PosBase::init(Point pos)里自己绘制,同样的效果喽
bool PosBase::init(Point pos) {
log("Enter PosBase init 1 parameter");
bool bRet = false;
do {
setPos(pos);
auto rect = DrawNode::create();
rect->drawRect(Vec2(pos.x - 32, pos.y + 32), Vec2(pos.x + 32, pos.y - 32), Color4F(1.0, 0, 0, 1.0));
this->addChild(rect);
bRet = true;
} while (0);
return bRet;
}
测试works
0
回复
lengyueswork
2017-06-11 11:30:52
14章接着边读边调试,还是有问题,就是monster也会调用PosBase类,需要区分rect和circle。所以把图draw在tos和monster就可以了。
画线也有问题,测试DrawPrimitives类已经不再支持,workaround是在TowerPosEditorLayer::loadConfigFile()通过DrawNode来划线。
最后感谢一下作者:)
0
回复
博主
笨木头
2017-06-11 12:43:24
谢谢反馈,书籍引擎版本确实太旧了。
0
回复
asdasd
2015-10-04 22:45:55
我想问一下书里第四章的按钮监听事件,怎么我的代码在运行时总会出现写入某某某位置时发生访问冲突,而且左下方的窗口里this的值显示为null,是怎么回事?而且我运行书籍源码,游戏程序能打开,但是一点按钮就游戏卡死会跳到vs的窗口,左下角也是显示this。
0
回复
博主
糟糕_树叶的mut
2015-10-05 09:09:25
具体是哪一个源码?我运行看看,项目名称告诉我一下
0
回复
asdasd
2015-10-05 10:01:40
Chapter4_3_HelloUI
0
回复
博主
糟糕_树叶的mut
2015-10-05 16:14:29
我运行没问题吖..断点停在哪句代码了?
0
回复
asdasd
2015-10-05 16:18:25
CCScrollView.cpp,行393和HelloWorldScene.cpp,行81
0
回复
博主
糟糕_树叶的mut
2015-10-05 21:13:15
81行是这个东西:}你确定是这个么?
0
回复
博主
糟糕_树叶的mut
2015-10-05 21:15:18
另外,为什么你直接运行书里的项目也会报错?没修改任何东西?
0
回复
asdasd
2015-10-05 21:23:33
刚才从书里的网站重新下了一个cocostudio重新弄了一个helloui,结果没错了,重新用之前百度的cocostudiov1.4.0.1就会出错,晕.....
0
回复
陈玟予
2015-09-21 02:23:25
网站做的好棒哦
0
回复
陈小予
2015-09-20 07:46:07
网站棒棒哒
0
回复
发表评论
发表评论
1
2
3
4
5
粤ICP备16043700号
本博客基于
Blazor
和
Ant Design Blazor
开发