首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XNA Pong碰撞

XNA Pong碰撞
EN

Stack Overflow用户
提问于 2013-05-30 16:03:44
回答 1查看 461关注 0票数 0

我正在用XNA做一个乒乓球游戏,我遇到了一个球-球拍碰撞的问题。球拍的一侧工作正常,但顶部和底部的动作很奇怪。我尝试了很多方法,但还是不起作用。这是我当前的代码:

代码语言:javascript
复制
        protected override void Update(GameTime gameTime)
        {

            //Intersection
            if (bPos.Intersects(p1Pos))
            {
                //top

                //bottom

                //middle
                if (bPos.X <= p1Pos.X + p1Pos.Width)
                    bSpd.X = -bSpd.X;
            }
            if (bPos.Intersects(p2Pos))
            {
                //top

                //bottom

                //middle
                if (bPos.X + bPos.Width >= p2Pos.X)
                    bSpd.X = -bSpd.X;
            }

            bPos.X = bPos.X + (int)bSpd.X;
            bPos.Y = bPos.Y + (int)bSpd.Y;

            if (bPos.Intersects(p1Pos))
            {
                //top

                //bottom

                //middle
                if (bPos.X <= p1Pos.X + p1Pos.Width)
                    bSpd.X = -bSpd.X;
            }
            if (bPos.Intersects(p2Pos))
            {
                //top

                //bottom

                //middle
                if (bPos.X + bPos.Width >= p2Pos.X)
                    bSpd.X = -bSpd.X;
            }

            base.Update(gameTime);
        }
EN

回答 1

Stack Overflow用户

发布于 2013-05-30 16:32:40

我可以假设关于你的程序的一些属性。当你调用时:

代码语言:javascript
复制
bPos.X <= p1Pos.X + p1Pos.Width

这将检查您的球的中心。这不会在球的表面上反射,而是在它的中心点上反射。

如果这不是你试图纠正的奇怪行为,你能澄清你遇到的行为吗?

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

https://stackoverflow.com/questions/16830920

复制
相关文章

相似问题

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