- 浏览: 262019 次
- 性别:
- 来自: 大连
文章分类
最新评论
实现原理:
画直线
在一个 list 列表里记录所有的触摸点,在 draw 函数里开始画线,线段逐渐加粗,在末端逐渐减细。可以直接用 Cocos2d 里的 box2d 模板,添加了少量代码即可。
//使用list列表保存所有点
画直线
在一个 list 列表里记录所有的触摸点,在 draw 函数里开始画线,线段逐渐加粗,在末端逐渐减细。可以直接用 Cocos2d 里的 box2d 模板,添加了少量代码即可。
//使用list列表保存所有点
std::list<CGPoint> pointl; -(void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint start = [touch locationInView: [touch view]]; start = [[CCDirector sharedDirector] convertToGL: start]; CGPoint end = [touch previousLocationInView:[touch view]]; end = [[CCDirector sharedDirector] convertToGL:end]; float distance = ccpDistance(start, end); if (distance > 1) { int d = (int)distance; for (int i = 0; i < d; i++ ) { float difx = end.x - start.x; float dify = end.y - start.y; float delta = (float)i / distance; CGPoint p; p.x = start.x + (difx * delta); p.y = start.y + (dify * delta); pointl.push_back(p); } } pointcount = pointl.size(); } //************************************* draw函数核心代码 -(void) draw { CGPoint pr; glPointSize( 0.3f ); list <CGPoint>::iterator b = pointl.begin(); glColor4ub(255,255,255,32); for(;b!=pointl.end();b++) { CGPoint pt = *b; ps++; //控制线段的粗细,使达到两头细中间粗的效果 if (ps > (pl -30 )) // initlw > 5 ) { initlw=initlw-lwc; } else { if (initlw < 6 ) { initlw =initlw+lwc; } } glLineWidth( initlw); if (pr.x > 1 && pr.y > 1 ) { //画线段,也可以使用点 ccDrawLine(pr, pt ); } pr = *b; } } //********************************************** //自动缩短线段 -(void) tick: (ccTime) dt { //It is recommended that a fixed time step is used with Box2D for stability //of the simulation, however, we are using a variable time step here. //You need to make an informed choice, the following URL is useful //http://gafferongames.com/game-physics/fix-your-timestep/ int32 velocityIterations = 8; int32 positionIterations = 1; // Instruct the world to perform a single step of simulation. It is // generally best to keep the time step and iterations fixed. world->Step(dt, velocityIterations, positionIterations); //********************************************* //** for (int i=0; i<12 ; i++) { if (pointl.size() >0) { pointl.pop_front(); pointcount--; } else { break; } } //为了使线段不过长 while (pointcount >200) { pointl.pop_front(); //pointcount--; pointcount=pointl.size(); } //******************************************** }
发表评论
-
cocos2d 在玩游戏的时候不进入待机模式
2012-04-11 10:19 923[UIApplication sharedApplicatio ... -
如何设置touch的响应层或吸收终端层
2012-03-07 22:44 0[[CCTouchDispatcher sharedDis ... -
将UIImage中像素的黑色转成透明色
2012-03-07 22:22 0void ProviderReleaseData ... -
cocos2d添加输入框
2012-02-23 17:33 0添加输入框,因此搜了一下找了这个方法 [[[[CCDirec ... -
debug模式调试
2012-02-20 10:59 0-(void) dealloc{ CCLOG(@&qu ... -
随机在屏幕上产生一个坐标点
2012-02-20 10:28 0//根据某个数字随机产生一个坐标点 - (CGPoint ... -
判断触摸点是否与精灵碰撞
2012-02-20 10:28 0//碰撞检测 - (BOOL) circle:(CGPo ... -
iphone开发基础:【object-c系列教程完毕】
2011-10-25 11:11 1383iphone开发基础:【object-c系列教程完毕】 接下来 ... -
(转)把两个Layer融合成一个UIImage的截图方法
2011-09-27 10:15 3486//layer1 CCLay ... -
cocos2d 使用 NSThread
2011-09-26 14:43 848-(void)toR_therd:(id) sender ... -
NSNotificationCenter
2011-09-26 14:23 1078定义一个消息中心 [[NSNotification ... -
COCOS2D 事件冒泡规律 和 CCMenu一直响应事件的解决办法
2011-09-09 12:50 2289cocos2d把响应事件的对像放入一个栈中,用先进后出的规率来 ... -
box2d 中设置界面大小的函数
2011-09-09 10:52 868-(void)activePageWhenEnterIn; ... -
设置 cocos2d 的音效回放参数
2011-09-09 00:05 1473cocos2d 回放音效的默认设置是 44Khz,但 iPho ... -
CCLayer
2011-09-08 23:52 3138一个场景(Scene)上可能有多个Layer 引用CCLaye ... -
Scene
2011-09-08 23:50 1014scene永远是一个场景上的根节点 引用scene(即 CCS ... -
定时消息 update:方法
2011-09-08 23:48 1596scheduleUpdate方法会执行update:方法,每帧 ... -
CCAction
2011-09-08 23:46 1082Node可以执行Action 声明并运行action CC ... -
CCNode
2011-09-08 23:44 1144CCNode是所有节点的父类包括(Layer, Sprite, ... -
CCDirector
2011-09-08 23:43 2561首先接触到的是CCDirector类,顾名思义是2d动画的导演 ...
相关推荐
山东第三届acm大赛Fruit Ninja 内有详细注释。好运
Fruit Ninja水果忍者VR.apk(oculus quest 游戏) 这个就不用多介绍了吧,喜欢玩的自然就喜欢,在VR的世界里挥动双刀切水果。 送给正在研究安卓开发的朋友们做参考。
scratch Fruit Ninja 游戏,用scratch图形化平台编辑。
fruit-ninja-master
Fruit Ninja.rp
水果忍者-Fruit Ninja.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码水果忍者-Fruit Ninja.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码水果忍者-Fruit Ninja.zipscratch2.0 3.0编程...
Unity开发的,国外的fruit ninja 水果忍者 项目
fruit ninja 游戏源代码很有意思的。
Fruit ninja with action script 3
Simple Fruit Ninja Game using JavaScript with Free Source
水果忍者 风靡iphone android版
仿水果忍者代码,可以用来学习,cocos2d写的
Windows Phone 7上的水果忍者。 XAP包。部署到手机上即可使用。
这个是远古版本哦开心(*^o^)人(^o^*)
水果忍者网页版空闲时间做着玩的,纯属娱乐!clone下来,打开index.html即可
ninja.1.9.0.tar
青龙2.12.1 最新版 ninja 余量0 不可用解决办法 https://blog.csdn.net/qq_34909804/article/details/124918932?spm=1001.2014.3001.5501 由于某些原因,需要升级到最新版本的青龙,但是发现ninja不可以用 ninja的...
水果忍者这是一款单人游戏,其中玩家使用由鼠标滑动控制的刀片来切水果。 当将水果扔到屏幕上时,玩家在屏幕上滑动鼠标以进行切片动作,尝试将水果切成薄片。...程序将启动另一个分数为0的高分数。
ninja.exe 用于构建工具,替代Makefile
ninjaripper 1.6.0版本,可以用于截取模型,进行后续处理,中文版包含32位与64位