android - Need help regarding Sprite Movements in AndEngine -
developing game in have 1 player moving on screen using on screen analog control. enemy sprites getting added in scene periodically , move towards player. using below code enemies getting added.
public void addtarget() { random rand = new random(); float x = ( camera.getwidth() + resourcesmanager.evilone_region.getwidth()); float miny = resourcesmanager.evilone_region.getheight(); int maxy = (int) (camera.getheight() - resourcesmanager.evilone_region .getheight()); int rangey = (int) (maxy - miny); float y = rand.nextint(rangey) + miny; target = new animatedsprite(x, y, resourcesmanager.evilone_region.deepcopy(),vbom){ @override protected void predraw(glstate pglstate, photographic camera pcamera) { super.predraw(pglstate, pcamera); pglstate.enabledither(); } @override protected void onmanagedupdate(float psecondselapsed) { super.onmanagedupdate(psecondselapsed); if(isplayermoved){ this.registerentitymodifier(new movemodifier(2, target.getx(),player.getx(),target.gety(),player.gety())); } } }; attachchild(target); target.setcullingenabled(true); final long[] player_animate = new long[] {100, 100, 100}; target.animate(player_animate, 0, 2, true); int minduration = 2; int maxduration = 4; int rangeduration = maxduration - minduration; int actualduration = rand.nextint(rangeduration) + minduration; mod = new movemodifier(actualduration, target.getx(),player.getx(),target.gety(),player.gety()); target.registerentitymodifier(mod.deepcopy()); targetstobeadded.add(target); } private void createspritespawntimehandler() { float meffectspawndelay = 1f; evilonetimerhandler = new timerhandler(meffectspawndelay, true, new itimercallback() { @override public void ontimepassed(timerhandler ptimerhandler) { if(ispaused){ }else{ //resourcesmanager.targetbird.play(); addtarget(); } } }); engine.registerupdatehandler(evilonetimerhandler); } problem when move player analog command want result every enemy should alter direction , move towards player. using code every enemy moving towards first added enemy , move towards player looks weird of them collapses on each other. please help.
you don't have straight move enemies player. can move them 5 pixels every update or that. here illustration code must improved:
@override protected void onmanagedupdate(float psecondselapsed) { super.onmanagedupdate(psecondselapsed); if( player.getx() > target.getx() ) { //move enemy 5 pixels right } else //move enemy 5 pixels left if( player.gety() > target.gety() ) { //move enemy 5 pixels downwards } else //move enemy 5 pixels } note: dont forget check if target reached player. , before start moving target check if moving. can utilize boolean chechk it. hope helps.
android andengine game-engine
No comments:
Post a Comment