#pragma mark 初始化玩家-(void)initPlayer{ //创建对象层 获得对象的产生点 CCTMXObjectGroup *objects=[_gameMap objectGr" name="description" />

cocos2d(CCSprite绑定不规则刚体与精灵一起移动)(2)

来源:未知 责任编辑:责任编辑 发表时间:2014-04-20 03:36 点击:

\



<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+Mi6z9cq8u6++q8Hpus241czlvLC80L7fPC9wPgo8cD48cHJlIGNsYXNzPQ=="brush:java;">#pragma mark 初始化玩家 -(void)initPlayer{ //创建对象层 获得对象的产生点 CCTMXObjectGroup *objects=[_gameMap objectGroupNamed:@"objects"]; NSMutableDictionary *spawnPoint=[objects objectNamed:@"StartPoint"]; //获得出生点坐标 float x=[[spawnPoint valueForKey:@"x"] floatValue]; float y=[[spawnPoint valueForKey:@"y"] floatValue]; _player=[CCSprite spriteWithFile:@"Player1.png"]; _player.position=ccp(x,y); _player.anchorPoint=CGPointZero; //设置描点为0,0 否则与刚体不能重合 b2BodyDef playerBodyDef; //定义刚体结构体的定义 [self addChild:_player]; playerBodyDef.type=b2_dynamicBody; playerBodyDef.fixedRotation=true; //不会旋转 playerBodyDef.position.Set(x/PTM_RATIO, y/PTM_RATIO); _playBody=world->CreateBody(&playerBodyDef); _playBody->SetUserData(_player); [[GB2ShapeCache sharedShapeCache] addFixturesToBody:_playBody forShapeName:@"Player1"]; //为刚体设置夹具 }
3.在update函数中添加更新位置方法

for(b2Body *b = world->GetBodyList(); b; b=b->GetNext()) {
        
        
        if (b->GetUserData() != NULL) {
            CCSprite *sprite = (CCSprite *)b->GetUserData(); //获得精灵对象
            if (sprite != nil) {
                b2Vec2 bodyPos = b->GetPosition();  //获得刚体的位置
                CGPoint pos = CGPointMake(bodyPos.x * PTM_RATIO, bodyPos.y * PTM_RATIO);  //变换为坐标
                float32 rotation = -1 * CC_RADIANS_TO_DEGREES(b->GetAngle());
                sprite.position = pos;
                sprite.rotation = rotation;
            }
        }
    }

效果图:







发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • cocos2d-x学习笔记(19)--label 、label atlas
  • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
  • Cocos2d-x学习(一):HelloWorld
  • cocos2dx在xcode下开发,编译到android上(2)
  • cocos2d 设置屏幕默认方向
  • Cocos2d-x 2.0 之 Actions “三板斧” 之一
  • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
  • cocos2d-x学习笔记(18)--游戏打包(windows平台)
  • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1