我们不希望飞出屏幕的物体有很多。比如飞机大战中的飞机,我们不想让用户在屏幕上拖动很长一段距离之后飞机就飞出了屏幕。这种情况怎么办呢?很简单。
当物体getPositon后坐标如果大于或小于屏幕的边框那么自动让它等于屏幕的尺寸就好了。具体如下:
if (plane->px<0) {
plane->moveTo(0, plane->py);
}
if (plane->px>Director::getInstance()->getWinSize().width) {
plane->moveTo(Director::getInstance()->getWinSize().width, plane->py);
}
if (plane->py<0) {
plane->moveTo(plane->px, 0);
}
if (plane->py>Director::getInstance()->getWinSize().height) {
plane->moveTo(plane->px, Director::getInstance()->getWinSize().height);
}
注意一定要用moveTo,而不能setPosition。如果强行直接setPosition的话会出现物体颤抖的情况,有兴趣的朋友可以试一下。