我在制作使用And Engine的游戏时遇到问题..在2辆汽车游戏中,两个障碍物从屏幕顶部落下,当一个人到达汽车高度* 4时,第二个障碍物开始下降。当第一个障碍物到达相机的最大高度时重置其位置......当第二个障碍物达到汽车的高度* 4时,再次第一个障碍物从屏幕顶部开始落下这里是一些代码..
new Timer().schedule(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
rt_left_obstacle1=new Rectangle(0,0,20,20,MainActivity.getSharedInstance().getVertexBufferObjectManager());
rt_left_obstacle2=new Rectangle(0,0,20,20,MainActivity.getSharedInstance().getVertexBufferObjectManager());
rt_left_obstacle1.setPosition((mCamera.getWidth()/5)/2,0);
rt_left_obstacle2.setPosition((mCamera.getWidth()/5)/2,-mCamera.getHeight());
rt_left_obstacle1.setColor(1,0,0);
rt_left_obstacle2.setColor(1,0,0);
for(int i=100;i<=mCamera.getHeight();i=i+100){
rt_left_obstacle1.registerEntityModifier(new MoveYModifier(3,rt_left_obstacle1.getY(),mCamera.getHeight()));
if(i==left_car.getHeight()*4){
rt_left_obstacle2.registerEntityModifier(new MoveYModifier(2,rt_left_obstacle2.getY(),mCamera.getHeight()));
}
if(i==mCamera.getHeight()){
rt_left_obstacle1.setPosition((mCamera.getWidth()/5)/2,0);
}
if(rt_left_obstacle2.getY()==mCamera.getHeight()){
rt_left_obstacle2.setPosition((mCamera.getWidth()/5)/2,-mCamera.getHeight());
}
}
}
}, 2000,200);
答案 0 :(得分:0)
使用andengine中的GenericPool类。它会创建精灵(在你的情况下说它是障碍物),当你用精灵完成时,当你想要再次使用精灵时,它会将精灵再循环到池中你只需从池中获取它......你不必一次又一次地创建精灵... google GenericPool你会发现很多例子和教程...... :)