eoe 移动开发者论坛

 找回密码
 加入eoe

QQ登录

只需一步,快速开始

查看: 1090|回复: 4
收起左侧

~~新手求指教,迷茫了,关于一个精灵碰到世界边框的问题~~

[复制链接]

该用户从未签到

4

主题

746

帖子

5027

e币
发表于 2015-1-24 20:20:15 | 显示全部楼层 |阅读模式
10e币
本帖最后由 woolcool 于 2015-1-26 10:45 编辑

新手求指教,迷茫了,关于一个精灵碰到世界边框的问题,
刚开始学习cocos2dx,现在遇到一个问题,比较迷茫,创建了一个简单的世界(四边形),有一个精灵来回弹跳,请问,我如何判断精灵和世界的边界碰撞时 碰到的是哪一条边界。
世界的代码如下:
        b2BodyDef groundBodyDef;
        groundBodyDef.position.Set(0,0);
        b2FixtureDef groundBoxDef;

        b2Body* groundBody = world->CreateBody(&groundBodyDef);
        
        b2EdgeShape groundBox;
        b2PolygonShape groundBox2;
        //bottom
        groundBox.Set(b2Vec2(0,0),b2Vec2(480/PTM_RATIO,0));
        groundBody->CreateFixture(&groundBox,0);
        
        //top
        groundBox.Set(b2Vec2(0,320/PTM_RATIO),b2Vec2(480/PTM_RATIO,320/PTM_RATIO));
        groundBody->CreateFixture(&groundBox,0);

        //left
        groundBox.Set(b2Vec2(0,0),b2Vec2(0,320/PTM_RATIO));
        groundBody->CreateFixture(&groundBox,0);

        //right
        groundBox.Set(b2Vec2(480/PTM_RATIO,0),b2Vec2(480/PTM_RATIO,320/PTM_RATIO));
        groundBody->CreateFixture(&groundBox,0);


本人小白,请高手不吝赐教!!! 万分感谢!!!

最佳答案

查看完整内容

方法很多种啊,我举几个方法: 一:你可以根据碰撞点的x和y坐标确定啊!!!!! 二:body可以setUserData啊,你可以把上下左右的body非别设置不同的UserData,然后碰撞时getUserData来确定碰撞的是哪条边啊!!!! 三:你可以继承Sprite类然后设置自己的sprite类在里面添加自己的数据,然后每一条边的sprite分别设置不同的数据,再把对应的sprite设置进body的UserData,在碰撞的时候取出sprite再获取数据也可以判断的啊!!!! ...

该用户从未签到

9

主题

40

帖子

352

e币
发表于 2015-1-24 20:20:16 | 显示全部楼层
方法很多种啊,我举几个方法:
一:你可以根据碰撞点的x和y坐标确定啊!!!!!
二:body可以setUserData啊,你可以把上下左右的body非别设置不同的UserData,然后碰撞时getUserData来确定碰撞的是哪条边啊!!!!
三:你可以继承Sprite类然后设置自己的sprite类在里面添加自己的数据,然后每一条边的sprite分别设置不同的数据,再把对应的sprite设置进body的UserData,在碰撞的时候取出sprite再获取数据也可以判断的啊!!!!
四五六七八九十.....就太多了啊!!!!

点评

昨天上午通过 二,三 两种方法实现了,还是要谢谢你的提示  详情 回复 发表于 2015-1-26 10:35

评分

参与人数 1e币 +10 收起 理由
woolcool + 10 精彩主题,感谢分享

查看全部评分

该用户从未签到

4

主题

746

帖子

5027

e币
 楼主| 发表于 2015-1-24 21:45:59 | 显示全部楼层
各位大神有什么思路可以指点下吗?

该用户从未签到

4

主题

746

帖子

5027

e币
 楼主| 发表于 2015-1-26 10:35:48 | 显示全部楼层
oldpanda 发表于 2015-1-25 22:14
方法很多种啊,我举几个方法:
一:你可以根据碰撞点的x和y坐标确定啊!!!!!
二:body可以setUserData ...

昨天上午通过 二,三 两种方法实现了,还是要谢谢你的提示

该用户从未签到

0

主题

0

帖子

18

e币
发表于 2015-5-8 15:38:54 | 显示全部楼层



   交流贴。。。。
*滑动验证:
您需要登录后才可以回帖 登录 | 加入eoe

本版积分规则

推荐阅读
赞助商们

QQ|联系我们|小黑屋|手机版|eoe 移动开发者论坛 ( 京ICP备11018032 京公网安11010802020210  

GMT+8, 2017-5-30 19:14 , Processed in 0.554876 second(s), 22 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表
关闭

扫一扫 关注eoe官方微信