你好! 能不能把 box2d愤怒的小鸟鸟 分享给我啊

Cocos2d-x&Box2d笔记:&愤怒的小鸟demo&弹弓和轨迹实现
先上图,源码不多,直接上
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.my.csdn.net/uploads//_2246.jpg" ALT=""
TITLE="Cocos2d-x&Box2d笔记:&愤怒的小鸟demo&弹弓和轨迹实现" />
#ifndef&__HELLOWORLD_SCENE_H__&&
#define&__HELLOWORLD_SCENE_H__&&
#include&"cocos2d.h"&&
#include&"GLES-Render.h"&&
#include&"Box2D/Box2D.h"&&
using&namespace&cocos2d;&&
class&HelloWorld&:&public&cocos2d::CCLayer&&
&&&&//&Here's&a&difference.&Method&'init'&in&cocos2d-x&returns&bool,&instead&of&returning&'id'&in&cocos2d-iphone&&
&&&&virtual&bool&init();&&&&
&&&&//&there's&no&'id'&in&cpp,&so&we&recommand&to&return&the&exactly&class&pointer&&
&&&&static&cocos2d::CCScene*&scene();&&
&&&&virtual&void&draw();&&
&&&&virtual&void&ccTouchesBegan(CCSet&*pTouches,&CCEvent&*pEvent);&&
&&&&virtual&void&ccTouchesMoved(CCSet&*pTouches,&CCEvent&*pEvent);&&
&&&&virtual&void&ccTouchesEnded(CCSet&*pTouches,&CCEvent&*pEvent);&&
&&&&void&update(float&dt);&&
&&&&b2Body&*groundB&&
&&&&b2World&*&&
&&&&CCSpriteBatchNode&*&&
&&&&CCSprite&*&&
&&&&CCPoint&center,currentP&&
&&&&float&&&
&&&&int&r,canF&&
&&&&LAYER_CREATE_FUNC(HelloWorld);&&
#endif&&//&__HELLOWORLD_SCENE_H__&&
#include&"HelloWorldScene.h"&&
#define&&PTM_RATIO&32.0&&
using&namespace&cocos2d;&&
CCScene*&HelloWorld::scene()&&
&&&&CCScene&*&scene&=&NULL;&&
&&&&&&&&//&'scene'&is&an&autorelease&object&&
&&&&&&&&scene&=&CCScene::create();&&
&&&&&&&&CC_BREAK_IF(!&scene);&&
&&&&&&&&//&'layer'&is&an&autorelease&object&&
&&&&&&&&HelloWorld&*layer&=&HelloWorld::create();&&
&&&&&&&&CC_BREAK_IF(!&layer);&&
&&&&&&&&//&add&layer&as&a&child&to&scene&&
&&&&&&&&scene-&addChild(layer);&&
&&&&}&while&(0);&&
&&&&//&return&the&scene&&
&&&&return&&&
//&on&"init"&you&need&to&initialize&your&instance&&
bool&HelloWorld::init()&&
&&&&bool&bRet&=&false;&&
&&&&&&&&//////////////////////////////////////////////////////////////////////////&&
&&&&&&&&//&super&init&first&&
&&&&&&&&//////////////////////////////////////////////////////////////////////////&&
&&&&&&&&CC_BREAK_IF(!&CCLayer::init());&&
&&&&&&&&CCSize&winSize=CCDirector::sharedDirector()-&getWinSize();&&
&&&&&&&&//create&bg&&
&&&&&&&&CCSprite&*bg=CCSprite::create("bg.png");&&
&&&&&&&&ratio=winSize.height/bg-&getContentSize().&&
&&&&&&&&bg-&setAnchorPoint(ccp(0,0));&&
&&&&&&&&bg-&setPosition(ccp(0,0));&&
&&&&&&&&bg-&setScaleY(ratio);&&
&&&&&&&&this-&addChild(bg,-2);&&
&&&&&&&&//load&source&&
&&&&&&&&batch=CCSpriteBatchNode::create("bird2.png");&&
&&&&&&&&this-&addChild(batch);&&
&&&&&&&&CCTexture2D&*batchTexture=batch-&getTexture();&&
&&&&&&&&//init&slingshot&&
&&&&&&&&CCSprite*slingshot1=CCSprite::create(batchTexture,CCRectMake(1,1,38,199));&&
&&&&&&&&slingshot1-&setScale(ratio*0.7);&&
&&&&&&&&slingshot1-&setPosition(ccp(90,ratio*130));&&
&&&&&&&&batch-&addChild(slingshot1);&&
&&&&&&&&CCSprite*slingshot2=CCSprite::create(batchTexture,CCRectMake(833,1,43,124));&&
&&&&&&&&slingshot2-&setScale(ratio*0.7);&&
&&&&&&&&slingshot2-&setPosition(ccp(78,ratio*155));&&
&&&&&&&&batch-&addChild(slingshot2);&&
&&&&&&&&//init&bird&&
&&&&&&&&bird=CCSprite::create(batchTexture,CCRectMake(1,379,31,30));&&
&&&&&&&&bird-&setScale(ratio);&&
&&&&&&&&bird-&setPosition(ccp((slingshot1-&getPositionX()+slingshot2-&getPositionX())/2,slingshot1-&getPositionY()*1.4));&&
&&&&&&&&center=bird-&getPosition();&&
&&&&&&&&this-&addChild(bird);&&
&&&&&&&&//define&the&world&&
&&&&&&&&b2Vec2&&&
&&&&&&&&gravity.Set(0.0f,&-10.0f);&&
&&&&&&&&world&=&new&b2World(gravity);&&
&&&&&&&&//&Do&we&want&to&let&bodies&sleep?&&
&&&&&&&&world-&SetAllowSleeping(true);&&
&&&&&&&&world-&SetContinuousPhysics(true);&&
&&&&&&&&//&Define&the&ground&body.&&
&&&&&&&&b2BodyDef&groundBodyD&&
&&&&&&&&groundBodyDef.position.Set(0,&0);&//&bottom-left&corner&&
&&&&&&&&//&Call&the&body&factory&which&allocates&memory&for&the&ground&body&&
&&&&&&&&//&from&a&pool&and&creates&the&ground&box&shape&(also&from&a&pool).&&
&&&&&&&&//&The&body&is&also&added&to&the&world.&&
&&&&&&&&b2Body*&groundBody&=&world-&CreateBody(&groundBodyDef);&&
&&&&&&&&//&Define&the&ground&box&shape.&&
&&&&&&&&b2EdgeShape&groundB&&
&&&&&&&&CCSize&s=CCSize(bg-&getContentSize().width,bg-&getContentSize().height*ratio);&&
&&&&&&&&//&bottom&&
&&&&&&&&groundBox.Set(b2Vec2(0,slingshot2-&getPositionY()/PTM_RATIO/2.1),&b2Vec2(s.width/PTM_RATIO,slingshot2-&getPositionY()/PTM_RATIO/2.1));&&
&&&&&&&&groundBody-&CreateFixture(&groundBox,0);&&
&&&&&&&&//&top&&
&&&&&&&&groundBox.Set(b2Vec2(0,s.height/PTM_RATIO),&b2Vec2(s.width/PTM_RATIO,s.height/PTM_RATIO));&&
&&&&&&&&groundBody-&CreateFixture(&groundBox,0);&&
&&&&&&&&//&left&&
&&&&&&&&groundBox.Set(b2Vec2(0,s.height/PTM_RATIO),&b2Vec2(0,0));&&
&&&&&&&&groundBody-&CreateFixture(&groundBox,0);&&
&&&&&&&&//&right&&
&&&&&&&&groundBox.Set(b2Vec2(s.width/PTM_RATIO,s.height/PTM_RATIO),&b2Vec2(s.width/PTM_RATIO,0));&&
&&&&&&&&groundBody-&CreateFixture(&groundBox,0);&&
&&&&&&&&GLESDebugDraw*m_debugDraw&=&new&GLESDebugDraw(&PTM_RATIO&);&&
&&&&&&&&world-&SetDebugDraw(m_debugDraw);&&
&&&&&&&&uint32&flags&=&0;&&
&&&&&&&&//flags&+=&b2Draw::e_shapeB&&
&&&&&&&&//flags&+=&b2Draw::e_jointB&&
&&&&&&&&//flags&+=&b2Draw::e_aabbB&&
&&&&&&&//&flags&+=&b2Draw::e_pairB&&
&&&&&&&//&flags&+=&b2Draw::e_centerOfMassB&&
&&&&&&&&m_debugDraw-&SetFlags(flags);&&
&&&&&&&&//init&&
&&&&&&&&r=60;//活动范围&&
&&&&&&&&canFly=0;&&
&&&&&&&&setTouchEnabled(true);&&
&&&&&&&&scheduleUpdate();&&
&&&&&&&&this-&runAction(CCFollow::create(bird,CCRectMake(0,0,bg-&getContentSize().width,bg-&getContentSize().height*ratio)));&&
&&&&&&&&bRet&=&true;&&
&&&&}&while&(0);&&
&&&&return&bR&&
void&HelloWorld::ccTouchesBegan(CCSet&*touches,&CCEvent&*pEvent)&&
void&HelloWorld::ccTouchesMoved(CCSet&*touches,&CCEvent&*pEvent)&&
&&&&CCTouch&*touch=(CCTouch*)touches-&anyObject();&&
&&&&CCPoint&pt1=touch-&locationInView();&&
&&&&pt1=CCDirector::sharedDirector()-&convertToGL(pt1);&&
&&&&CCSize&s=CCDirector::sharedDirector()-&getWinSize();&&
&&&&if(CCRect::CCRectContainsPoint(bird-&boundingBox(),pt1)==false)&&
&&&&&&&&return;&&
&&&&canFly=1;&&
&&&&float&distance=ccpDistance(pt1,center);&&
&&&&if(distance&r)&&
&&&&&&&&CCPoint&&&
&&&&&&&&float&cos=(pt1.x-center.x)/distance,sin=(pt1.y-center.y)/&&
&&&&&&&&pos.x=center.x+r*&&
&&&&&&&&pos.y=center.y+r*&&
&&&&&&&&bird-&setPosition(pos);&&
&&&&}else&&
&&&&&&&&bird-&setPosition(pt1);&&
void&HelloWorld::ccTouchesEnded(CCSet&*touches,&CCEvent&*pEvent)&&
&&&&CCTouch&*touch=(CCTouch*)touches-&anyObject();&&
&&&&CCPoint&pt1=touch-&locationInView();&&
&&&&pt1=CCDirector::sharedDirector()-&convertToGL(pt1);&&
&&&&if(canFly==0)&&
&&&&&&&&return;&&
&&&&}else&&
&&&&&&&&canFly=0;&&
&&&&float&distance=ccpDistance(pt1,center);&&
&&&&float&cos=(pt1.x-center.x)/distance,sin=(pt1.y-center.y)/&&
&&&&//add&box2d&body&&
&&&&b2CircleShape&birdS&&
&&&&birdShape.m_radius=ratio*bird-&getContentSize().width/PTM_RATIO/2;&&
&&&&//CCLOG("%f",birdShape.m_radius);&&
&&&&b2FixtureDef&birdFixtureD&&
&&&&birdFixtureDef.shape=&birdS&&
&&&&birdFixtureDef.density=1;&&
&&&&birdFixtureDef.friction=0.3;&&
&&&&birdFixtureDef.restitution=0.1;&&
&&&&b2BodyDef&birdBodyD&&
&&&&birdBodyDef.type=b2_dynamicB&&
&&&&birdBodyDef.position.Set(bird-&getPositionX()/PTM_RATIO,bird-&getPositionY()/PTM_RATIO);&&
&&&&b2Body&*birdBody=world-&CreateBody(&birdBodyDef);&&
&&&&birdBody-&SetUserData(bird);&&
&&&&birdBody-&CreateFixture(&birdFixtureDef);&&
&&&&birdBody-&ApplyForce(b2Vec2(-5.5f*distance*cos,-5.5f*distance*sin),birdBody-&GetWorldCenter());&&
&&&&birdBody-&SetLinearDamping(0.2f);&&
void&HelloWorld::update(float&dt)&&
&&&&int32&velocityIterations&=&8;&&
&&&&int32&positionIterations&=&8;&&
&&&&//&Instruct&the&world&to&perform&a&single&step&of&simulation.&&
&&&&world-&Step(dt,&velocityIterations,&positionIterations);&&
&&&&for&(b2Body*&b&=&world-&GetBodyList();&b;&b&=&b-&GetNext())&&
&&&&&&&&CCSprite&*myActor&=&(CCSprite*)b-&GetUserData();&&
&&&&&&&&if&(myActor)&&
&&&&&&&&{&&
&&&&&&&&&&&&//Synchronize&the&AtlasSprites&position&and&rotation&with&the&corresponding&body&&
&&&&&&&&&&&&myActor-&setPosition(CCPointMake(&b-&GetPosition().x&*&PTM_RATIO,&b-&GetPosition().y&*&PTM_RATIO));&&
&&&&&&&&&&&&myActor-&setRotation(-1&*&CC_RADIANS_TO_DEGREES(b-&GetAngle()));&&
&&&&&&&&}&&&&&
&&&&//CCLOG("%f",dt);&&
&&&&static&float&countTime=0.0f;&&
&&&&countTime+=&&
&&&&if((countTime&0.08f)&&(bird-&getPositionX()&center.x+r)&&(bird-&getPositionY()&center.y))&&
&&&&&&&&countTime=0;&&
&&&&&&&&//show&the&route&&
&&&&&&&&CCSprite&*route=CCSprite::create(batch-&getTexture(),CCRectMake(0,345,35,33));&&
&&&&&&&&route-&setScale(0.4*ratio);&&
&&&&&&&&batch-&addChild(route);&&
&&&&&&&&route-&setPosition(bird-&getPosition());&&
void&HelloWorld::draw()&&
&&&&//&IMPORTANT:&&
&&&&//&This&is&only&for&debug&purposes&&
&&&&//&It&is&recommend&to&disable&it&&
&&&&CCLayer::draw();&&
&&&&ccGLEnableVertexAttribs(&kCCVertexAttribFlag_Position&);&&
&&&&kmGLPushMatrix();&&
&&&&glLineWidth(3.0f);&&
&&&&world-&DrawDebugData();&&
&&&&kmGLPopMatrix();&&
&&&&//draw&line&&
&&&&if(canFly==1)&&
&&&&&&&&CHECK_GL_ERROR_DEBUG();&&
&&&&&&&&//&line:&color,&width,&aliased&&
&&&&&&&&//&glLineWidth&&&1&and&GL_LINE_SMOOTH&are&not&compatible&&
&&&&&&&&//&GL_SMOOTH_LINE_WIDTH_RANGE&=&(1,1)&on&iPhone&&
&&&&&&&&//&&&&glDisable(GL_LINE_SMOOTH);&&
&&&&&&&&glLineWidth(&4.0f&);&&
&&&&&&&&ccDrawColor4B(0,0,0,255);&&
&&&&&&&&ccDrawLine(&ccpAdd(center,ccp(bird-&getContentSize().width/3,0)),&bird-&getPosition()&);&&
&&&&&&&&ccDrawLine(&ccpAdd(center,ccp(-bird-&getContentSize().width/3,0)),&bird-&getPosition()&);&&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。原来《愤怒的小鸟》是因为这个才“愤怒”的!_新疆伊犁金棕榈影城-爱微帮
&& &&& 原来《愤怒的小鸟》是因为这个才“愤怒”的…
《愤怒的小鸟》 & & & & & & &&类型:动画,奇幻,冒险版本:2D/3D地区:美国,芬兰时长:97分钟上映时间:日“愤怒的小鸟”为啥发怒有这样的一群生物,五颜六色,圆圆的肚肚,时而呆萌可爱,时而闯祸无数安逸的生活让他们自由自在他们自称为“鸟”,、可是飞行能里却已经不在,尽管这样,它们自称自己是恐龙的后代三大主角:炸弹黑、愤怒红、飞镖黄家族介绍:首先看下面这几只小毛球(旁边的两只干横么呢)什么?太小太萌没看清?再往前站站!还没看清?我已站到你跟前,请你睁开眼,看我多可怜,不对,看我值多少钱兄台啊,是不是眼镜上霜啦!来我给你哈哈气我们小家伙一起来给你们“萌一个“小鸟们过着安静,祥和的日子,虽然没事总会欺负“愤怒红”嘲笑他搞笑的眉毛,更没有女孩子喜欢它,直到有一天……可是,岛上是和谐的,欢乐的鸟儿有着自己生活,当然最珍贵的当然是鸟蛋啦直到有一天岛上来了一群陌生的东西打破了这里的宁静,它们叫自己是“猪”!它们很欢乐,它们也很奇怪,它们和岛上达成共识,在一起愉快的玩耍热情的鸟儿们也热情的接受它们,然而……当鸟儿们发现:哎呀我x!蛋呢?蛋没了!&愤怒的小鸟&曝终极预告海报神还原游戏画面玩法&到底谁能获得最终的胜利?《愤怒的小鸟》3D 大电影5月20日隆重上映!-------------------------------------感谢有您的支持!点击右上角按钮即可分享到朋友圈,更多资讯关注官微信
点击展开全文
引领伊犁网络时代生活新方式:最新影视资讯、休闲娱乐信息! 这里有时尚的脉动、有文化的交流、有超越视频的放松、亲近和享受……
您的【关注和订阅】是作者不断前行的动力
本站文章来自网友的提交收录,如需删除可发送邮件到 bang@ 或联系QQ ,
(C)2014&&版权所有&&&|&&&
京ICP备号-2&&&&京公网安备34愤怒的小鸟的由来!_百度知道
愤怒的小鸟的由来!
《愤怒的小鸟》是由Rovio Entertainment Ltd.开发的一款休闲益智类游戏,于2009年12月首发于iOS,而后在其他平台发行。这款游戏的故事相当有趣,为了报复偷走鸟蛋的肥猪们,鸟儿以自己的身体为武器,仿佛炮弹一样去攻击肥猪们的堡垒。游戏是十分卡通的2D画面,看着愤怒的红色小鸟,奋不顾身的往绿色的肥猪的堡垒砸去,那种奇妙的感觉还真是令人感到很欢乐。而游戏的配乐同样充满了欢乐的感觉,轻松的节奏,欢快的风格。不过在进行游戏的时候却没有这样的音乐。在游戏中,为了报复偷走鸟蛋的绿皮猪们,各种颜色的小鸟以自己的身体为武器,去攻击肥猪们的堡垒。游戏总共分为11大章节,包括9个普通章节和1个金蛋章节以及1个麦当劳专用章节(不可以玩)。
其他类似问题
为您推荐:
核心人员谈《愤怒的小鸟》创意来源 行业:玩具 信息来源:游戏邦 发布时间: 打印 转发 关闭   无论是在坐飞机、地铁的途中,还是在超市排队买单时,我们随处都能看到不少人在玩《愤怒的小鸟》(注:它已成为继《英雄本色》之后的又一芬兰电子游戏代表作)。这款手机游戏目前下载量已经超过3.5亿次,它的遍及度如此之高并不令人意外。该游戏芬兰开发商Rovio最广为人知的面孔当属号称“通关神鹰”的Peter Vesterbacka(注:他是在这款游戏成为热门大作之后才正式加入了Rovio团队),但鲜有人了解这款游戏背后的核心创意人员――创造了小鸟、游戏概念的Jaakko isalo。      Iisalo的职业生涯始于制作音频、图像和编写代码,然后才进入游戏设计领域,他在日前的媒体采访中讲述了这款游戏的起源以及...
核心人员谈《愤怒的小鸟》创意来源
行业:玩具 信息来源:游戏邦 发布时间:
打印 转发 关闭
  无论是在坐飞机、地铁的途中,还是在超市排队买单时,我们随处都能看到不少人在玩《愤怒的小鸟》(注:它已成为继《英雄本色》之后的又一芬兰电子游戏代表作)。这款手机游戏目前下载量已经超过3.5亿次,它的遍及度如此之高并不令人意外。该游戏芬兰开发商Rovio最广为人知的面孔当属号称“通关神鹰”的Peter Vesterbacka(注:他是在这款游戏成为热门大作之后才正式加入了Rovio团队),但鲜有人了解这款游戏背后的核心创意人员――创造了小鸟、游戏概念的Jaakko isalo。
  Iisalo的职业生涯始于制作音频、图像和编写代码,然后才进入游戏设计领域,他在日前的媒体采访中讲述了这款游戏的...
突发奇想想到的呗
愤怒的小鸟的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁你好 , 能不能把用友通u8给我发一下 谢谢_百度知道
你好 , 能不能把用友通u8给我发一下 谢谢
我有更好的答案
用友通t3或是u8都太大了,只有到网上搜一下,
你是要会计电算化的吧,这个看看是不是你想要的!这是我上传的《初级会计电算化教学》光盘镜像。
来自:求助得到的回答
其他类似问题
为您推荐:
用友通的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 愤怒的小鸟捣蛋猪 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信