如何在box2d世界中正确实现水平和垂直滚动?

问题描述

| 我已经实现了水平滚动,但是垂直滚动却很麻烦,而且这种麻烦很难解释。因此,如果从场景的原点(即ccp(0,0))开始,我可以垂直和水平滚动
scene
。但是,当完成向X的滚动并停在中间时,如果我垂直滚动它,它实际上会沿对角线滚动,回到原点(x),并回到y的新位置。 我知道理解起来很复杂,但是如何实现从向下滚动的位置垂直滚动它。     

解决方法

        如果有人收到我的问题,那么这里是他的答案
//NAVIGATION TOWARDS X AND Y WhenEver and how ever you want         
            if (abs(diffX) > abs(diffY))
            {
                CCLOG(@\"yScrlFlag=%d\",yScrlFlag);
                if(diffX > 0)
                {
                    xScrlFlag=1;
                    [self.parent runAction:[CCMoveTo actionWithDuration:round(-(-3112-self.parent.position.x)/250) position:ccp((-3112-self.position.x),self.parent.position.y)]];
                }
                else
                {
                    [self.parent runAction:[CCMoveTo actionWithDuration:(-self.parent.position.x/250) position:ccp(0,self.parent.position.y)]];
                    xScrlFlag=0;
                }
            }
            else
            {   
                if (1) 
                {
                    if(diffY < 0)
                    {
                        yScrlFlag=1;
                        //CCLOG(@\"\\n nodePosition.x=%f \\n nodePosition.y=%f\",nodePosition.x,nodePosition.y);
                        [self.parent runAction:[CCMoveTo actionWithDuration:(-(-500-self.parent.position.y)/250) position:ccp(self.parent.position.x,(-self.position.y))]];
                    }
                    else
                    {   
                        yScrlFlag=0;
                        [self.parent runAction:[CCMoveTo actionWithDuration:(-(-500-self.parent.position.y)/250) position:ccp(self.parent.position.x,0)]];
                    }   
                    CCLOG(@\"yScrlFlag=%d\",yScrlFlag);                       
                }
            }
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...