Sep 202000
You need Java to view this applet.
This I programmed a month after the Sept 11th and my website never knew so many hits. My SP asked me to remove the content. ehe, Anyway I did a quick test in Firefox and it didn’t run though it did in IE.
You can modify the images, in the jar. As long as they are the same size it will play with whoever you want to have beaten up. As someone has done here.
import java.awt.*; import java.applet.*; import java.awt.event.*; import java.util.Random; import java.awt.image.ImageObserver; import java.net.URL; import java.util.Date; public class Slap extends Applet implements Runnable, KeyListener, MouseListener { private Point p_limb[]; private int y_energy, h_energy, y_speed, m_speed, s_wobble, frameLeftCount, frameRightCount, frameMax, gameStage, faceStage, dodge, h_damage, y_damage; private int m_left_off, m_right_off, m_left_h_off, m_right_h_off, h_left_off, h_right_off, h_head_off, h_body_off; private Thread him, jog; private Rectangle r_a_bounds; private Image i_left_h, i_right_h, i_right, i_left, i_h_left, i_h_right, i_h_head[], i_h_body, i_win, i_lose, i_fist_a, i_fist_b; private AudioClip ac_swing, ac_hit, ac_gong, ac_taunt, ac_lose; private MediaTracker imageTracker; private Graphics offpic, offpic_information, offpic_stats, offpic_mirror; private Image buffer, buffer_information, buffer_stats, buffer_mirror; private boolean left_punch, right_punch, y_l_punch, y_r_punch; private long l_stamp[], mill_punchLimit, mill_fistMin; public void init() { //Cheack Prams for required prams if (this.getParameter("Author").compareTo("AtPeace, www.somedodgywebsite.com")!=0){ System.out.println("Missing Applet Pram : Author = AtPeace, www.somedodgywebsite.com"); return; } if (this.getParameter("Copyright").compareTo("Slap, Copyright 2001, AtPeace")!=0){ System.out.println("Missing Applet Pram : Copyright = Slap, Copyright 2001, AtPeace"); return; } if (this.getParameter("Graphics").compareTo("Flapcats")!=0){ System.out.println("Missing Applet Pram : Graphics = Flapcats"); return; } //Game Vals y_speed = 15; s_wobble = 5; m_speed = 25; frameMax = 3; dodge = 70; h_damage=Integer.parseInt(this.getParameter("h_damage")); y_damage=Integer.parseInt(this.getParameter("y_damage")); // h_damage = 7; // y_damage = 5; mill_punchLimit = 500; mill_fistMin = 50; l_stamp = new long[3]; for (int a=0;a<l_stamp.length;a++) l_stamp[a] = System.currentTimeMillis(); this.setBackground(Color.black); //Create image buffers buffer = createImage(this.getBounds().width,235); offpic = buffer.getGraphics(); r_a_bounds = new Rectangle(buffer.getWidth(this),buffer.getHeight(this)); buffer_information = createImage(this.getBounds().width,20); offpic_information = buffer_information.getGraphics(); buffer_stats = createImage(this.getBounds().width,this.getBounds().height-(r_a_bounds.height+buffer_information.getHeight(this))); offpic_stats = buffer_stats.getGraphics(); //Load Audio then Images ac_gong = getAudioClip(getCodeBase(),"gong.au"); ac_swing = getAudioClip(getCodeBase(),"swing.au"); ac_hit = getAudioClip(getCodeBase(),"hit.au"); ac_taunt = getAudioClip(getCodeBase(),"taunt.au"); ac_lose = getAudioClip(getCodeBase(),"lose.au"); i_left_h = getImage (getCodeBase(),"m_left_h.gif"); i_right_h = getImage (getCodeBase(),"m_right_h.gif"); i_left = getImage (getCodeBase(),"m_left.gif"); i_right = getImage (getCodeBase(),"m_right.gif"); i_h_left = getImage (getCodeBase(),"y_left.gif"); i_h_right = getImage (getCodeBase(),"y_right.gif"); i_h_body = getImage (getCodeBase(),"y_body.gif"); i_win = getImage (getCodeBase(),"y_win.gif"); i_lose = getImage (getCodeBase(),"y_lose.gif"); i_fist_a = getImage (getCodeBase(),"fist_a.gif"); i_fist_b = getImage (getCodeBase(),"fist_b.gif"); imageTracker = new MediaTracker(this); i_h_head=new Image[5]; for (int a=0;a<i_h_head.length;a++){ i_h_head[a]=getImage (getCodeBase(),"y_head"+a+".gif"); imageTracker.addImage(i_h_head[a],a); } imageTracker.addImage(i_right_h,5); imageTracker.addImage(i_left,6); imageTracker.addImage(i_right,7); imageTracker.addImage(i_h_left,8); imageTracker.addImage(i_h_right,9); imageTracker.addImage(i_h_body,10); imageTracker.addImage(i_win,11); imageTracker.addImage(i_lose,12); imageTracker.addImage(i_fist_a,13); imageTracker.addImage(i_fist_b,14); imageTracker.addImage(i_left_h,15); try {imageTracker.waitForAll();} catch (Exception e){System.out.println(e);} // System.out.println("Image error : "+imageTracker.isErrorAny()); i_fist_a = i_fist_a.getScaledInstance(i_fist_a.getWidth(this)*2,i_fist_a.getHeight(this)*2,Image.SCALE_FAST); i_fist_b = i_fist_b.getScaledInstance(i_fist_b.getWidth(this)*2,i_fist_b.getHeight(this)*2,Image.SCALE_FAST); h_left_off = 95; h_right_off = 21; h_head_off = i_h_head[0].getWidth(this)/2; h_body_off = i_h_body.getWidth(this)/2; m_left_h_off = i_left_h.getWidth(this)/2; m_right_h_off = i_right_h.getWidth(this)/2; m_left_off = i_left.getWidth(this)/2; m_right_off = i_right.getWidth(this)/2; int balls = 15; offpic_information.setColor(Color.white); offpic_information.drawString("Z",20,balls); offpic_information.drawString("X",100,balls); offpic_information.drawString("N",195,balls); offpic_information.drawString("M",290,balls); offpic_information.setColor(Color.green); offpic_information.drawString("- move left",30,balls); offpic_information.drawString("- move right",110,balls); offpic_information.drawString("- throw left",205,balls); offpic_information.drawString("- throw right",300,balls); p_limb = new Point[6]; initVals(); } private void placeItems(){ //Your Left Hand // p_limb[0] = new Point(r_a_bounds.width/3,r_a_bounds.height-(i_h_left.getHeight(this)+s_wobble)); p_limb[0] = new Point(r_a_bounds.width/3,r_a_bounds.height+s_wobble-i_h_left.getHeight(this)); //Your Right Hand p_limb[1] = new Point((r_a_bounds.width/3)*2,r_a_bounds.height+s_wobble-i_h_right.getHeight(this)); //Your Head p_limb[2] = new Point(r_a_bounds.width/2,r_a_bounds.height-(i_h_head[0].getHeight(this)+(i_h_body.getHeight(this)/2))); //Your Body p_limb[5] = new Point(r_a_bounds.width/2,r_a_bounds.height+s_wobble-i_h_body.getHeight(this)); //My Left Hand p_limb[3] = new Point(r_a_bounds.width/4,r_a_bounds.height+s_wobble-i_left.getHeight(this)); //My Right Hand p_limb[4] = new Point((r_a_bounds.width/4)*3,r_a_bounds.height+s_wobble-i_right.getHeight(this)); } private void initVals(){ y_energy = 215; h_energy = 215; // h_energy = 0; left_punch = right_punch = y_r_punch = y_l_punch = false; frameLeftCount = frameRightCount = 0; faceStage = 0; placeItems(); drawImages(); } public void start(){ this.addKeyListener(this); this.addMouseListener(this); } private void fight(){ initVals(); ac_gong.play(); ac_taunt.play(); him = new Thread(this,"@Him"); jog = new Thread(this,"@Jog"); jog.start(); him.start(); // y_energy=-10; } public void stop(){ try { him.stop(); jog.stop(); } catch (Exception e){} jog=null; him=null; } public void mousePressed(MouseEvent me){} public void mouseReleased(MouseEvent me){} public void mouseEntered(MouseEvent me){} public void mouseExited(MouseEvent me){} public void keyPressed(KeyEvent ke){} public void mouseClicked(MouseEvent me){ if (gameStage==0){ if (new Rectangle(125,270,127,16).contains(me.getPoint())){ gameStage = 1; fight(); } } else if (gameStage==4||gameStage==6){ if (new Rectangle(10,264,60,20).contains(me.getPoint())){ gameStage = 1; clearImages(); fight(); } else if (new Rectangle(10,289,60,20).contains(me.getPoint())) author(); } } private void author(){ try { URL docs = new URL ("http://www.somedodgywebsite.com"); this.getAppletContext().showDocument(docs, "_new"); } catch (Exception e) {System.out.println(e.toString());} } public void keyReleased(KeyEvent ke){ if (gameStage == 1){ char key = ke.getKeyChar(); if ((key=='n'||key=='N')&&(!right_punch&&!left_punch)&!(System.currentTimeMillis()-l_stamp[0]<mill_punchLimit)){ l_stamp[0] = System.currentTimeMillis(); left_punch=true; ac_swing.play(); drawImages(); punchDetection("left"); } else if ((key=='m'||key=='M')&&(!right_punch&&!left_punch)&!(System.currentTimeMillis()-l_stamp[0]<mill_punchLimit)){ l_stamp[0] = System.currentTimeMillis(); right_punch=true; ac_swing.play(); drawImages(); punchDetection("right"); } } } private void punchDetection(String fist){ Rectangle r_head = new Rectangle( p_limb[2].x-h_head_off,p_limb[2].y,h_head_off*2,i_h_head[faceStage].getHeight(this)); if (fist=="left"){ Point p_strike = new Point(p_limb[3].x+30,p_limb[3].y); if (r_head.contains(p_strike)){ // System.out.println("You Hit with "+fist); h_energy = h_energy - y_damage; ac_hit.play(); } } else if (fist == "right"){ Point p_strike = new Point(p_limb[4].x-30,p_limb[4].y); if (r_head.contains(p_strike)){ // System.out.println("You Hit with "+fist); h_energy = h_energy - y_damage; ac_hit.play(); } } } public void keyTyped(KeyEvent ke){ if (gameStage == 1){ char key = ke.getKeyChar(); if (((key=='x')||(key=='X'))&&p_limb[3].x < r_a_bounds.width){ p_limb[3].x=p_limb[3].x+m_speed; p_limb[4].x=p_limb[4].x+m_speed; drawImages(); } else if (((key=='z')||(key=='Z'))&&(p_limb[4].x > 0)){ p_limb[3].x=p_limb[3].x-m_speed; p_limb[4].x=p_limb[4].x-m_speed; drawImages(); } } } private void sleep(long rest_time){ try {Thread.sleep(rest_time);} catch (Exception ex){System.out.println("ex");} } private boolean random(double chance){ if (new Random().nextDouble() < chance) return true; else return false; } public void run(){ if (Thread.currentThread()==him) him(); if (Thread.currentThread()==jog) jog(); } private void him(){ Point p_my_head = new Point(p_limb[4].x-p_limb[3].x+r_a_bounds.width/2,0); Rectangle r_punch = new Rectangle(0,0,30,r_a_bounds.height); int totalEnergy = h_energy; int tempFace = faceStage; do { //Deduce players head position p_my_head.x=(p_limb[4].x-p_limb[3].x)/2+p_limb[3].x; //Move in direcion for quickest hit with nearest hand if ((p_my_head.x<p_limb[0].x)&&p_my_head.x<p_limb[1].x) moveBody(-y_speed); else if ((p_my_head.x>p_limb[0].x)&&p_my_head.x>p_limb[1].x) moveBody(y_speed); else if ((p_my_head.x>p_limb[0].x)&&(p_my_head.x<p_limb[1].x)){ if (p_my_head.x<((p_limb[1].x-p_limb[0].x)/2)+p_limb[0].x) moveBody(y_speed); else if (p_my_head.x>((p_limb[1].x-p_limb[0].x)/2)+p_limb[0].x) moveBody(-y_speed); } // Move away if opponent keeps punching if (left_punch){ if (random(0.75)&&new Rectangle(p_limb[2].x-41,0,82,r_a_bounds.height).contains(p_limb[3].x+30,p_limb[3].y)) moveBody(-dodge); } if (right_punch){ if (random(0.75)&&new Rectangle(p_limb[2].x-41,0,82,r_a_bounds.height).contains(p_limb[4].x-30,p_limb[4].y)) moveBody(dodge); } //Punch if avaliable r_punch.x=p_my_head.x-(r_punch.width/2); if (r_punch.contains(p_limb[0])){ // System.out.println("Left"); y_energy = y_energy - h_damage; y_l_punch = true; } if (r_punch.contains(p_limb[1])){ // System.out.println("Right"); y_energy = y_energy - h_damage; y_r_punch = true; } //Degrade face due to energy, get lower tempFace = faceStage; if(h_energy>175){ faceStage=0; } else if(h_energy>135){ faceStage=1;} else if(h_energy>85){ faceStage=2;} else if(h_energy>35){ faceStage=3;} else { faceStage=4;} if (tempFace!=faceStage){ p_limb[2].y=p_limb[2].y+5;} sleep(500); } while (y_energy > 1 && h_energy > 1); } private void moveBody(int distance){ Point proposed_destination = new Point(p_limb[5].x+distance,p_limb[5].y); if (r_a_bounds.contains(proposed_destination)){ p_limb[5].x=p_limb[5].x+distance; for (int a=0;a<3;a++) p_limb[a].x=p_limb[a].x+distance; } else { if (proposed_destination.x>r_a_bounds.width){ p_limb[5].x=p_limb[5].x-r_a_bounds.width/5*4; for (int a=0;a<3;a++) p_limb[a].x=p_limb[a].x-r_a_bounds.width/5*4; } else { p_limb[5].x=p_limb[5].x+r_a_bounds.width/5*4; for (int a=0;a<3;a++) p_limb[a].x=p_limb[a].x+r_a_bounds.width/5*4; } } } private void jog(){ Random ra_rand = new Random(); Rectangle r_bounds[] = new Rectangle[p_limb.length]; for (int a = 0;a<r_bounds.length;a++) r_bounds[a] = new Rectangle(10,s_wobble); Point p_position[] = new Point[p_limb.length]; Point p_temp[] = new Point[p_limb.length]; for (int a = 0;a<r_bounds.length;a++){ p_position[a]= new Point(5,s_wobble/2); p_temp[a]=new Point(); } do { for (int a = 0 ; a < r_bounds.length; a++ ){ double random = ra_rand.nextDouble(); if ((random < 0.25)){ //Move Up p_temp[a] = p_position[a]; p_position[a].y++; if (r_bounds[a].contains(p_position[a])){ p_limb[a].y++; } else { p_position[a] = p_temp[a]; p_position[a].y--; } } else if ((random > 0.25)&&(random <0.5)){ //Move Down p_temp[a] = p_position[a]; p_position[a].y--; if (r_bounds[a].contains(p_position[a])){ p_limb[a].y--; } else { p_position[a] = p_temp[a]; p_position[a].y++; } } else if ((random > 0.5)&&(random < 0.75)){ //Move Left p_temp[a] = p_position[a]; p_position[a].x--; if (r_bounds[a].contains(p_position[a])){ p_limb[a].x--; } else { p_position[a] = p_temp[a]; p_position[a].x++; } } else if (random > 0.75){ //Move Right p_temp[a] = p_position[a]; p_position[a].x++; if (r_bounds[a].contains(p_position[a])){ p_limb[a].x++; } else { p_position[a] = p_temp[a]; p_position[a].x--; } } } drawImages(); sleep(100); } while (y_energy > 1 && h_energy > 1); //End bit endBit(); } private void endBit(){ right_punch=false; left_punch=false; ac_gong.play(); if (h_energy < y_energy){ //You win placeItems(); gameStage = 2; //Draw victory p_limb[3].y=r_a_bounds.height-(i_left.getHeight(this)/2); p_limb[4].y=r_a_bounds.height-(i_right.getHeight(this)/2); p_limb[3].x=p_limb[3].x+10; p_limb[4].x=p_limb[4].x+10; for (int a=0;p_limb[4].y<r_a_bounds.height;a++){ drawImages(); p_limb[3].y=p_limb[3].y-2; p_limb[4].y=p_limb[4].y+2; sleep(20); } sleep(200); // p_limb[4].y=r_a_bounds.height; for (int a=0;p_limb[4].y>r_a_bounds.height-i_right.getHeight(this);a++){ drawImages(); p_limb[3].y=p_limb[3].y+2; p_limb[4].y=p_limb[4].y-2; p_limb[3].x=p_limb[3].x-2; p_limb[4].x=p_limb[4].x-2; sleep(20); } ac_swing.play(); right_punch=true; drawImages(); sleep(100); ac_hit.play(); placeItems(); for (int b=0;b<100;b++){ drawImages(); p_limb[2].y=p_limb[2].y-2; } for (int a=15;a>0;a--){ p_limb[3].x=p_limb[0].x-a; p_limb[4].x=p_limb[1].x+a; drawImages(); sleep(50); p_limb[3].x=p_limb[0].x+a; p_limb[4].x=p_limb[1].x-a; drawImages(); sleep(50); } gameStage = 4; } else { //You lose gameStage = 5; placeItems(); p_limb[3].x=r_a_bounds.x-100; p_limb[4].x=r_a_bounds.x-100; ac_lose.play(); for (int a=15;a>0;a--){ p_limb[0].x=p_limb[0].x-a; p_limb[1].x=p_limb[1].x+a; drawImages(); sleep(50); p_limb[0].x=p_limb[0].x+a; p_limb[1].x=p_limb[1].x-a; drawImages(); sleep(50); } } } public void update(Graphics g){ paint(g); } public void paint (Graphics g){ g.drawImage(buffer,0,0,this); g.drawImage(buffer_information,0,buffer.getHeight(this),this); g.drawImage(buffer_stats,0,buffer.getHeight(this)+buffer_information.getHeight(this),this); } private void clearImages(){ offpic.fillRect(0,0,buffer.getWidth(this),buffer.getHeight(this)); offpic_stats.fillRect(0,0,buffer_stats.getWidth(this),buffer.getHeight(this)); // offpic_information.fillRect(0,0,buffer_information.getWidth(this),buffer.getHeight(this)); } private synchronized void drawImages(){ //Draw the enemy at relevant limb position // offpic.setColor(Color.red); offpic.fillRect(0,0,r_a_bounds.width,240); // offpic.setColor(Color.black); offpic.drawImage(i_h_body,p_limb[5].x-h_body_off,p_limb[5].y,this); offpic.drawImage(i_h_head[faceStage], p_limb[2].x-h_head_off,p_limb[2].y,this); offpic.drawImage(i_h_left,p_limb[0].x-h_left_off,p_limb[0].y,this); offpic.drawImage(i_h_right,p_limb[1].x-h_right_off,p_limb[1].y,this); if(gameStage == 0){ //Start Match button ith click here offpic_stats.setColor(Color.green); offpic_stats.fillRoundRect(buffer_stats.getWidth(this)/3,(buffer_stats.getHeight(this)/3)-5,buffer_stats.getWidth(this)/3,15,5,5); offpic_stats.setColor(Color.black); offpic_stats.drawString("Start Match",(buffer_stats.getWidth(this)/3)+30,(buffer_stats.getHeight(this)/3)+7); } else if (gameStage == 1){ //Draw stats with you me and power bars from energy offpic_stats.setColor(Color.white); offpic_stats.drawString("Bin Laden",70,24); offpic_stats.drawString("You",70,44); offpic_stats.setColor(Color.black); offpic_stats.fillRect(120,15,250,40); offpic_stats.setColor(Color.green); offpic_stats.fillRoundRect(120,15,h_energy,10,2,2); offpic_stats.fillRoundRect(120,35,y_energy,10,2,2); drawMe(); } else if (gameStage == 2) { drawPlayAgain(); offpic_stats.drawImage(i_win,(buffer_stats.getWidth(this)/2)-(i_win.getWidth(this)/2),15,this); gameStage=3; } else if (gameStage == 3){ drawMe(); } else if (gameStage == 5){ drawPlayAgain(); offpic_stats.drawImage(i_lose,(buffer_stats.getWidth(this)/2)-(i_lose.getWidth(this)/2),15,this); gameStage = 6; } repaint(); } private void drawPlayAgain(){ offpic_stats.setColor(Color.black); offpic_stats.fillRect(0,0,buffer_stats.getWidth(this),buffer_stats.getHeight(this)); offpic_stats.setColor(Color.green); offpic_stats.fillRoundRect(10,10,60,20,5,5); offpic_stats.fillRoundRect(10,35,60,20,5,5); offpic_stats.setColor(Color.black); offpic_stats.drawString("Play Again",14,24); offpic_stats.drawString("Author",25,50); } private void drawMe(){ //Draw own left hand, as punch or held if (left_punch&&(frameLeftCount<frameMax)) { offpic.drawImage(i_left_h,p_limb[3].x-m_left_h_off,r_a_bounds.height-i_left_h.getHeight(this),this); frameLeftCount++; } else { offpic.drawImage(i_left,p_limb[3].x-m_left_off,p_limb[3].y,this); left_punch = false; frameLeftCount = 0; } //Draw own right hand, as punch or held if (right_punch&&(frameRightCount<frameMax)) { offpic.drawImage(i_right_h,p_limb[4].x-m_right_h_off,r_a_bounds.height-i_right_h.getHeight(this),this); frameRightCount++; } else { offpic.drawImage(i_right,p_limb[4].x-m_right_off,p_limb[4].y,this); right_punch = false; frameRightCount = 0; } //Draw Enemy punch if required if (y_l_punch||System.currentTimeMillis()-l_stamp[1]<mill_fistMin){ l_stamp[1] = System.currentTimeMillis(); offpic.drawImage(i_fist_b,r_a_bounds.width/2-i_fist_b.getWidth(this)/2,r_a_bounds.height-i_fist_b.getHeight(this),this); if (y_l_punch) ac_hit.play(); y_l_punch = false; } if (y_r_punch||System.currentTimeMillis()-l_stamp[2]<mill_fistMin){ l_stamp[2] = System.currentTimeMillis(); offpic.drawImage(i_fist_a,r_a_bounds.width/2-i_fist_a.getWidth(this)/2,r_a_bounds.height-i_fist_a.getHeight(this),this); if (y_r_punch) ac_hit.play(); y_r_punch = false; } } }