public void drawStar(Graphics g) { // draws the stars for (Star i : starList) { g.drawImage( i.getPics().get(i.getCounter()), i.getX(), i.getY(), i.getWidth(), i.getHeight(), null); i.count(); } }
public void map( LongWritable key, Star value, OutputCollector<BlockIDWritable, PairWritable> output, Reporter reporter) throws IOException { loc.set(value.ra, value.dec); int zoneNum = loc.zoneNum; int raNum = loc.raNum; p.set(value, null); /* * When the block size increases (> theta), only part of a block * needs to be copied to its neighbor. */ output.collect(loc, p); /* * only replicate objects in the border of a block. I expect most of * objects don't need to be copied. */ if (value.dec > zoneRanges[zoneNum][0] + theta && value.dec < zoneRanges[zoneNum][1] - theta && value.ra > blockRanges[raNum][0] + maxAlphas[zoneNum] && value.ra < blockRanges[raNum][1] - maxAlphas[zoneNum]) return; /* * the code below is to copy the star to some neighbors. We only * need to copy an object to the bottom, left, left bottom, left top * neighbors */ value.margin = true; /* * we should treat the entire zone 0 as a block, so we only needs to * copy some objects at the corner to their neighbors */ if (loc.zoneNum == 0) { /* copy the object to the right top neighbor */ if (value.ra >= blockRanges[raNum][1] - maxAlphas[zoneNum] && value.ra <= blockRanges[raNum][1] && value.dec >= zoneRanges[zoneNum][1] - theta && value.dec <= zoneRanges[zoneNum][1]) { // BlockIDWritable loc1 = new BlockIDWritable(); /* raNum of objects in zone 0 is always 0, * we need to recalculate it. */ // loc1.raNum = BlockIDWritable.ra2Num(value.ra) + 1; // if (loc1.raNum == numBlocks) { // loc1.raNum = 0; // value.ra -= 360; // } // loc1.zoneNum = loc.zoneNum + 1; /// output.collect(loc1, p); } return; } else if (loc.zoneNum == numZones - 1) { /* copy the object to the bottom neighbor */ if (value.dec >= zoneRanges[zoneNum][0] && value.dec <= zoneRanges[zoneNum][0] + theta) { /* raNum of objects in zone zoneNum - 1 is always 0, * we need to recalculate it. */ loc1.raNum = BlockIDWritable.ra2Num(value.ra); loc1.zoneNum = loc.zoneNum - 1; output.collect(loc1, p); /* copy the object to the right bottom neighbor */ while (value.ra >= blockRanges[loc1.raNum][1] - maxAlphas[zoneNum] && value.ra <= blockRanges[loc1.raNum][1]) { loc1.raNum++; if (loc1.raNum == numBlocks) { loc1.raNum = 0; value.ra -= 360; } loc1.zoneNum = loc.zoneNum - 1; output.collect(loc1, p); } } return; } boolean wrap = false; loc1.raNum = loc.raNum; /* copy the object to the right neighbor */ while (value.ra >= blockRanges[loc1.raNum][1] - maxAlphas[zoneNum] && value.ra <= blockRanges[loc1.raNum][1]) { loc1.raNum++; loc1.zoneNum = loc.zoneNum; /* * when the object is copied to the right neighbor, we need to * be careful. we need to convert ra and raNum if ra is close to * 360. */ if (loc1.raNum == numBlocks) { loc1.raNum = 0; value.ra -= 360; wrap = true; } output.collect(loc1, p); /* copy the object to the right bottom neighbor */ if (value.dec >= zoneRanges[zoneNum][0] && value.dec <= zoneRanges[zoneNum][0] + theta) { loc1.zoneNum = loc.zoneNum - 1; output.collect(loc1, p); } /* copy the object to the right top neighbor */ if (value.dec >= zoneRanges[zoneNum][1] - theta && value.dec <= zoneRanges[zoneNum][1]) { loc1.zoneNum = loc.zoneNum + 1; output.collect(loc1, p); } } if (wrap) { value.ra += 360; } /* copy the object to the bottom neighbor */ if (value.dec >= zoneRanges[zoneNum][0] && value.dec <= zoneRanges[zoneNum][0] + theta) { loc1.raNum = loc.raNum; loc1.zoneNum = loc.zoneNum - 1; if (loc1.zoneNum == 0) loc1.raNum = 0; output.collect(loc1, p); } }
public void scrollStars() { for (Star i : starList) { i.setY(i.getY() + (int) (player1.getVelocity() * 0.3)); } }
public void checkStarCollision() { for (Star s : starList) { if (s.getOnScreen()) { // if the star is on the screen we need to check if player collides if (s.checkCollision( s.getPics().get(s.getCounter()), player1)) { // if the player collides with the star we remove it then change the // velosity to the distance that the star provides sRemove.add(s); // remove star once you collide with it player1.setVelo(s.getDist()); // changes the velocity player1.setInvi(true); // sets the player invisble for a few seconds score += s.getPoints(); // points increase by the star type if (musicOn) { starSound.play(); // playthe star sound } } } else { sRemove.add(s); // remove the star if its not on the screen } } for (Star s : sRemove) { poofList.add(new Poof(s.getX(), s.getY(), s.getNum() + 3)); // make the poof effect starList.remove(s); } sRemove = new ArrayList<Star>(); }