愤怒的小鸟游戏济南有2d的吗

最新汉化|||||||||
热门补丁|||||||||
热门专题||||||||
热门单机||||||||
游戏分类||||||||
当前位置:>>>Box 2D开发者要求《愤怒的小鸟》承认其贡献
Box 2D开发者要求《愤怒的小鸟》承认其贡献
时间:编辑:游乐园小编来源:网络
  在本周的GDC大会,芬兰开发商Rovio公司董事长Peter Vesterbacka介绍《愤怒的小鸟》项目发展情况的过程中发生了一段小插曲:有位观众突然在问答环节中站出来,声称他创造了《愤怒的小鸟》物理开发引擎,要求Rovio在功劳簿上给他记上一笔。
lego_angry_birds
  据了解,该观众名为Erin Catto,他创建了开源物理引擎Box 2D。这件事始于去年12月,当时就有不少游戏开发者好奇Erin究竟能否从Rovio的营收中分得一杯羹,或者至少在游戏创作者名单中提到他的名字。
  事实上,Rovio并不需要补偿Erin任何费用,或者在该游戏创作者名单中提到他的名字,这一点可以从Box 2D的授权使用声明中获得答案:
  &&&您不可宣称自己编写了原版的Box 2D软件,如果您将其用于产品开发,并在产品鸣谢中提到Box 2D,我们会很赞赏这种行为,但不会强制要求这种做法。&
  Rovio可亲可近的品牌形象,该公司又一直勤快地更新游戏,再加上Rovio团队普遍都是精英开发者,所以Rovio一直是以积极正面的形象示人。该公司应该不希望因与Erin Catto发生争执(更何况对方并没有提出经济补偿要求)而自毁形象,在这种情况下,Rovio更应该谨慎行事,所以如果有人要求获得一些肯定,那么尽快答应他的要求才是最好的选择。
  所以,Rovio给Erin Catto的答复也相当直截了当:如果对方可以在会谈后与Rovio接触,他们可以再针对此事进行协商。
《愤怒的小鸟》游乐园专题站:
游戏制作:FromSoftWare
游戏发型:BANDAINAMCON FromSoftWare
游戏品台:WinXP,Win7,Win8,Win8.1
上市时间:
更新时间:
游戏大小:481 MB
游戏类型:动作冒险
12345678910
更新日期:
游戏类型:第一人称射击FPS
游戏语言:简体中文版
游戏大小:1.3 GB
更新日期:
游戏类型:角色扮演
游戏语言:简体中文版
游戏大小:206 MB
更新日期:
游戏类型:即时战略类RTS
游戏语言:英文
游戏大小:4.4GB
更新日期:
游戏类型:动作冒险类ACT
游戏语言:简体中文版
游戏大小:1.4GB
扫面二维码添加微信公众账号,关注游乐园公众号,最新游戏动态资讯尽在掌中!打开微信扫一扫,添加关注,赢取每月粉丝奖。
浙ICP备号-5 Copyright 2013 游乐园手机游戏下载基地
我们致力于为您提供更多好玩的单机游戏下载大全中文版下载
游乐园手机游戏下载基地温馨提示:适度游戏娱乐,沉迷游戏伤身,合理安排时间,享受健康生活愤怒的小鸟专题介绍:为了报复偷走鸟蛋的肥猪们,鸟儿以自己的身体为武器,仿佛炮弹一样去攻击肥猪们的堡垒,那种有趣的画面还真是令人感到欢乐呐!4399愤怒的小鸟专题,收录国内外愤怒的小鸟相关游戏,让我们拉满弹弓,选好角度,发射小鸟吧!
愤怒的小鸟手机游戏推荐
愤怒的小鸟小游戏排行
第 1 页 / 共 2 页
作品版权归作者所有,如果侵犯了您的版权,请,本站将在3个工作日内删除。温馨提示:抵制不良游戏,拒绝盗版游戏,注意自我保护,谨防受骗上当,适度游戏益脑,沉迷游戏伤身,合理安排时间,享受健康生活
| | |||||&关注:
||||&法律顾问:北京盛峰律师事务所
文明办网文明上网举报电话:&|&举报邮箱:&||
Copyright & 2004 -
All Rights Reserved. 四三九九网络股份有限公司 版权所有《愤怒的小鸟》下载
angrybirds
1、如果您未安装91盒子,请选择“游戏高速下载”。2、安装好91盒子客户端后,请重启浏览器,点击“高速下载”按钮盒子将自动下载游戏。
愤怒的小鸟游戏介绍
配置要求操作系统Win Xp/Win 7/Win Vista运行环境&=DirectX 9.0CPUIntel Core2 Duo E4600 @ 2.40Hz / AMD Athlon 64 X2 Dual Core 5000+内存256 MB显卡GeForce 8800 GT / Radeon HD 3870硬盘50 MB FREE  《愤怒的小鸟电脑版》是款游戏的故事相当有趣,为了报复偷走鸟蛋的肥猪们,鸟儿以自己的身体为武器,仿佛炮弹一样去攻击肥猪们的堡垒。游戏是十分卡通的2D画面,看着愤怒的红色小鸟,奋不顾身的往绿色的肥猪的堡垒砸去,那种奇妙的感觉还真是令人感到很欢乐。而游戏的配乐同样充满了欢乐的感觉,轻松的节奏,欢快的风格。不过在进行游戏的时候却没有这样的音乐,有点可惜。但是将鸟儿们弹射出去时,鸟儿的叫声倒是给人很好笑的感觉。  游戏的玩法很简单,将弹弓上的小鸟弹出去,砸到绿色的肥猪,将肥猪全部砸到就能过关。鸟儿的弹出角度和力度由你的手指来控制,要注意考虑好力度和角度的综合计算,这样才能更准确的砸到肥猪。而被弹出的鸟儿会留下弹射轨迹,可供参考角度和力度的调整。另外每个关卡的分数越多,评价将会越高,来试试自己的计算水平吧~
其他版本下载
181499人气
愤怒的小鸟游戏截图
电信下载点
联通/网通下载点
移动/长宽网络下载点
一、下载软件务必使用迅雷7,下载前建议查看配置要求、游戏说明和网友评论,下载后请点击游戏安装教学视频在线学习。
二、游戏安装运行的时候出现缺少dll、内存不能读、配置不正确等,请下载对应的。注意:资源可能被360等杀毒软件提示,部分报毒与补丁有关。但软件不会危及电脑,请用户放心下载。
猜你喜欢的游戏
你可能喜欢的游戏
神圣的奥林匹斯山上本
《决斗》是一款可以你
代替玛丽莎做一个渔夫
《眼不见身不残》很有
《小女巫与勇士》是一
《五个护身符》是一款
《伟大旅程:圣诞节版
该作是一款科幻射击游
时差愿意是由于时区的
这是一款基于物理模拟
游戏类别:益智解谜
游戏大小:22.95 MB
游戏类别:益智解谜
游戏大小:56.17 MB
游戏类别:益智解谜
游戏大小:55.00 MB
游戏类别:益智解谜
游戏大小:58.40 MB
游戏类别:益智解谜
游戏大小:237.49 MB
游戏类别:益智解谜
游戏大小:179.19 MB
游戏类别:益智解谜
游戏大小:3.00 MB
游戏类别:益智解谜
游戏大小:0.00 MB
游戏类别:益智解谜
游戏大小:85.00 MB
游戏类别:益智解谜
游戏大小:42.00 MB
不愤怒的小鸟这款小游..
《炮打愤怒的小鸟3》..
《愤怒的小鸟炮弹球3..
游戏类别:益智解谜
游戏大小:67.00 MB
游戏类别:益智解谜
游戏大小:166.23 MB
游戏类别:益智解谜
游戏大小:70.82 MB
游戏类别:益智解谜
游戏大小:58.31 MB
游戏类别:益智解谜
游戏大小:8.00 MB
游戏类别:益智解谜
游戏大小:47.00 MB1675人阅读
经过摸索, 终于实现了angry birds中的橡皮筋.
首先要知道它用Weld Joint(焊接关节),&Mouse Joint(鼠标关节)和Distance Joint(距离关节).
Weld Joint: 把小鸟固定在弹弓上.
Mouse Joint: 用来拖拽小鸟.这个好理解.
Distance Joint: 用来保持小鸟和弹弓之间的距离. 但是用的时候得有技巧.
1. init:先用weldJoing把小鸟固定在弹弓中间位置. 可以是地面, 固定点在弹弓上, 这样Box2D可以少处理弹弓这个Body.
2. TouchBegan: 把weldJoint摧毁, 创建一个MouseJoint, 让小鸟跟随手指移动.
3. TouchMove: 如果小鸟被拖出弹弓一定距离, 创建一个Distance Joint, 让小鸟跟弹弓保持一定距离不变. 相当于给了一个弹弓最大拉伸度. 同时画两条线模仿皮筋.
4. TouchEnd: 手放开, 小鸟要飞了.这时要摧毁Distance Joint 和 Weld Joint, 让小鸟不再受限制, 同时给小鸟一个直线速度朝着弹弓中间飞出去.
#import &cocos2d.h&
#import &box2d.h&
#import &PauseLayer.h&
#import &LevelScene.h&
#import &EKSprite.h&
USING_NS_CC;
class Level1Layer : public LevelScene {
Level1Layer();
~Level1Layer();
CC_SYNTHESIZE(PauseLayer*, _pauseLayer, PauseLayer);
CREATE_FUNC(Level1Layer);
virtual void levelInit();
virtual void ccTouchesBegan(cocos2d::CCSet *touches, cocos2d::CCEvent *event);
virtual void ccTouchesMoved(cocos2d::CCSet *touches, cocos2d::CCEvent *event);
virtual void ccTouchesEnded(cocos2d::CCSet *touches, cocos2d::CCEvent *event);
virtual void ccTouchesCancelled(cocos2d::CCSet *touches, cocos2d::CCEvent *event);
virtual void update(float dt);
EKSprite *_currB
CCSprite *_
CCSpriteBatchNode *_
b2World *_
b2Body *_groundB
b2MouseJoint *_mouseJ
b2DistanceJoint *_disJ
b2WeldJoint *_weldJ
#import &Level1Layer.h&
#include &EKShapeCache.h&
#include &EKHelper.h&
#include &LineLayer.h&
#define FLOOR_HEIGHT 49.0f
#define FACTOR 20.0f
Level1Layer::Level1Layer() {
CCLOG(&Level1Layer&);
Level1Layer::~Level1Layer() {
CCLOG(&~Level1Layer&);
EKEngine::sharedInstance()-&deleteAllObjects();
CCTextureCache::sharedTextureCache()-&purgeSharedTextureCache();
void Level1Layer::levelInit() {
setTouchMode(kCCTouchesAllAtOnce);
setTouchEnabled(true);
_mouseJoint = NULL;
_disJoint = NULL;
_isPulling =
CCSpriteFrameCache::sharedSpriteFrameCache()-&addSpriteFramesWithFile(&level1.plist&);
EKShapeCache::sharedEKShapeCache()-&addShapesWithFile(&level1-shape.plist&);
CCSize s = CCDirector::sharedDirector()-&getWinSize();
_world = EKEngine::sharedInstance()-&getworld();
_groundBody = EKEngine::sharedInstance()-&setEdge(ccp(0, FLOOR_HEIGHT), 960, 480);
CCSprite *bg = CCSprite::createWithSpriteFrameName(&bg-1.png&);
bg-&setScale(1.34);
bg-&setAnchorPoint(CCPointZero);
bg-&setPosition(CCPointZero);
addChild(bg);
_slingshot = CCSprite::createWithSpriteFrameName(&slingshot.png&);
float y = _slingshot-&boundingBox().size.height / 2.0f;
_slingshot-&setPosition(ccp(78.0f, FLOOR_HEIGHT + y));
addChild(_slingshot);
_currBird = EKSprite::createWithFrameName(&bird-1.png&, &bird&, true);
_currBird-&setPosition(ccp(78.0f, FLOOR_HEIGHT + _slingshot-&getContentSize().height * 0.81f));
_currBird-&getBody()-&SetBullet(true);
addChild(_currBird);
b2WeldJointD
wjd.Initialize(_groundBody, _currBird-&getBody(), _currBird-&getBody()-&GetWorldCenter());
wjd.collideConnected =
CCLOG(&create _weldJoint&);
_weldJoint = (b2WeldJoint *) _world-&CreateJoint(&wjd);
scheduleUpdate();
void Level1Layer::ccTouchesBegan(cocos2d::CCSet *touches, cocos2d::CCEvent *event) {
CCSize s = CCDirector::sharedDirector()-&getWinSize();
if (touches-&count() == 1) {
if (_mouseJoint != NULL) {
CCTouch *touch = (CCTouch *) touches-&anyObject();
CCPoint location = touch-&getLocationInView();
location = CCDirector::sharedDirector()-&convertToGL(location);
if (location.x & _currBird-&getPositionX() - 50.0f && location.x & _currBird-&getPositionX() + 50.0f && location.y & _currBird-&getPositionY() - 50.0f && location.y & _currBird-&getPositionY() + 50.0f) {
b2MouseJointD
mjd.bodyA = _groundB
mjd.bodyB = _currBird-&getBody();
mjd.target = b2Vec2FromCCPoint(location);
mjd.collideConnected = //
mjd.maxForce = 1000.0f * _currBird-&getBody()-&GetMass(); //给一个拖动的力
CCLOG(&create _mouseJoint&);
_mouseJoint = (b2MouseJoint *) _world-&CreateJoint(&mjd);
_currBird-&getBody()-&SetFixedRotation(true);
if (_weldJoint != NULL) {
CCLOG(&destroy _weldJoint&);
_world-&DestroyJoint(_weldJoint);
_weldJoint = NULL;
_isPulling =
stopActionByTag(1);
void Level1Layer::ccTouchesMoved(cocos2d::CCSet *touches, cocos2d::CCEvent *event) {
CCSize s = CCDirector::sharedDirector()-&getWinSize();
CCTouch *touch = (CCTouch *) touches-&anyObject();
CCPoint location = touch-&getLocationInView();
location = CCDirector::sharedDirector()-&convertToGL(location);
if (_isPulling) {
if (ccpDistance(ccp(_slingshot-&getPosition().x, _slingshot-&getContentSize().height * 0.81f + FLOOR_HEIGHT), location) & 80.0f) {
if (_disJoint == NULL) {
b2DistanceJointD
djd.Initialize(_groundBody, _currBird-&getBody(), b2Vec2FromCCPoint(ccp(_slingshot-&getPositionX(), FLOOR_HEIGHT + _slingshot-&getPositionY() * 0.81f)), _currBird-&getBody()-&GetWorldCenter());
djd.collideConnected =
djd.frequencyHz = 4.0f;
djd.dampingRatio = 0.5f;
CCLOG(&create _disJoint&);
_disJoint = (b2DistanceJoint *) _world-&CreateJoint(&djd);
_disJoint-&SetLength(80.0f / 32.0f);
} else if (_disJoint != NULL) {
CCLOG(&destroy _disJoint&);
_world-&DestroyJoint(_disJoint);
_disJoint = NULL;
removeChildByTag(77);
CCLayer *line = LineLayer::createWithPoints(_currBird-&getPosition(), ccp(_slingshot-&getPositionX() - 10, FLOOR_HEIGHT + _slingshot-&getPositionY() * 0.81f), ccp(_slingshot-&getPositionX() + 10, FLOOR_HEIGHT + _slingshot-&getPositionY() * 0.81f));
addChild(line, 1000, 77);
_mouseJoint-&SetTarget(b2Vec2FromCCPoint(location));
void Level1Layer::ccTouchesEnded(cocos2d::CCSet *touches, cocos2d::CCEvent *event) {
if (_isPulling && _mouseJoint != NULL ) {
CCLOG(&destroy _mouseJoint&);
EKEngine::sharedInstance()-&getworld()-&DestroyJoint(_mouseJoint);
_mouseJoint = NULL;
_isPulling =
if (_disJoint != NULL) {
CCLOG(&destroy _disJoint&);
EKEngine::sharedInstance()-&getworld()-&DestroyJoint(_disJoint);
_disJoint = NULL;
_currBird-&getBody()-&SetFixedRotation(false);
CCPoint point = ccpSub(ccp(_slingshot-&getPositionX(), FLOOR_HEIGHT + _slingshot-&getPositionY()), _currBird-&getPosition());
b2Vec2 direct = b2Vec2FromCCPoint(point);
b2Vec2 dd(direct.x * FACTOR, direct.y * FACTOR);
CCLOG(&%f, %f&, point.x, point.y);
CCLOG(&%f, %f&, direct.x, direct.y);
_currBird-&getBody()-&ApplyLinearImpulse(dd, _currBird-&getBody()-&GetWorldCenter());
removeChildByTag(77);
void Level1Layer::ccTouchesCancelled(cocos2d::CCSet *touches, cocos2d::CCEvent *event) {
CCLOG(&ccTouchesCancelled&);
ccTouchesEnded(touches, event);
void Level1Layer::update(float dt) {
EKEngine::sharedInstance()-&update(dt);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3577次
排名:千里之外}

我要回帖

更多关于 愤怒的小鸟大战僵尸 的文章

更多推荐

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

点击添加站长微信