首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >xna上的坠落和碰撞

xna上的坠落和碰撞
EN

Stack Overflow用户
提问于 2011-12-24 13:36:57
回答 2查看 1.1K关注 0票数 0

我正在制作一个平台型的游戏。我使用rectangle类和平台让我的主要角色变成了一个矩形。平台在屏幕上不断向上移动,当我的角色与平台顶部碰撞时,我希望他以与平台相同的速度着陆和移动,否则,他应该会坠落。除了掉下来的那部分,我把所有的东西都准备好了。如果我打开下降,它永远不会停留在平台上,但如果我打开下降,它工作得很好。基本上,假设角色一直在下降,除非它落在平台上,然后它的y方向/速度应该更改为平台的y方向/速度。

这是代码的一部分,任何关于如何在不与平台冲突的时候让角色倒下的帮助都会很好。我知道我正在做的事情可能不是最有效的方法,如果有更好的方法我很想知道。我刚接触xna,但我知道java/c#。

代码语言:javascript
复制
            Rectangle playerRec = new Rectangle((int)player.position.X, (int)player.position.Y,player.width, player.height);
        foreach (Platforms platform in platforms)
        {
            Rectangle platformRec = new Rectangle((int)platform.position.X, (int)platform.position.Y, platform.width, platform.height);
            if ((playerRec.Intersects(platformRec) && (playerRec.Y + playerRec.Height) - platformSpeed < platformRec.Y) &&
                (playerRec.X < platformRec.X + platformRec.Width && playerRec.X + playerRec.Width > platformRec.X))
            {
                gravity = 0;
                player.position.Y -= platformSpeed;

            }
            else if(player.position.Y != platform.position.Y)
            {
                gravity = 5;
                //player.position.Y += gravity;
            }
EN

Stack Overflow用户

发布于 2011-12-24 14:43:02

微软有一个Platformer sample,它有falling和collison in。这是一个值得学习的很好的例子,你不需要任何第三方物理引擎来为你做这件事。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8622931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档