F
ford.aristotle
Hello,
I am working on the age old Hang Man game and need assistance turning a
GIF file into seperate elements and displaying those elements as the
incorrect letters are selected. Here is what I have so far. I will
create the animated GIF and plug it into the program using the Paint
method. How should I write the method so that as the incorrect element
is selected, the image appears?:
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;
import java.applet.*;
public class Gamesetup extends Applet implements MouseListener,
MouseMotionListener {
private int xpos, ypos =-10;
private boolean clickedsomething=false;
private int lastitemclicked=-1;
// Globals needed;
int min_x=0; int max_x=500; int min_y=200; int max_y=299;
int rows=2; int columns=13;
public int get_row(int y) {
// -1 will be returned if clicked out of range
int return_row=0;
if(y<min_y) {return_row=-1;}
else if (y>max_y) {return_row=-1;}
else {return_row=(y-min_y)/((max_y-min_y)/rows);}
if(return_row==rows) {return_row--;}
return return_row; }
public int get_column(int x) {
// -1 will be returned if clicked out of range
int return_column=0;
if(x<min_x) {return_column=-1;}
else if (x>max_x) {return_column=-1;}
else {return_column=(x-min_x)/((max_x-min_x)/columns);}
if(return_column==columns) {return_column--;}
return return_column; }
public int get_row_y_start(int row){
return ((max_y-min_y)/rows)*row+min_y;}
public int get_column_x_start(int column){
return ((max_x-min_x)/columns)*column+min_x;}
public int convert_column_row_to_list(int x, int y) {
return y*columns+x; }
public int list_to_column(int l) {return l%columns;}
public int list_to_row(int l) {return l/columns;}
public int list_to_column_screen(int l) {return
min_x+(l%columns)*((max_x-min_x)/columns);}
public int list_to_row_screen(int l) {return
(l/columns)*((max_y-min_y)/rows)+min_y;}
public int convert_column_row_to_list_raw(int x, int y) {
return get_row(y)*columns+get_column(x); }
public void init() {
addMouseListener(this);
addMouseMotionListener(this);
}
public void paint(Graphics g) {
g.drawString("Last Item Clicked="+lastitemclicked, 50, 60 );
char firstletter='A';
for(int i=0;i<26;i++)
g.drawString(""+firstletter++, list_to_column_screen(i) +
((max_x-min_x)/columns)/2, list_to_row_screen(i)+((max_y-min_y)/rows)/2
);
}
public boolean clickedsomthingonpage(int x,int y){
boolean gotsomething=false;
if((min_x<=x)&&(max_x>=x)&&(min_y<=y)&&(max_y>=y)) {
lastitemclicked=convert_column_row_to_list_raw(x,y);
gotsomething=true;}
if((400<=x)&&(500>=x)&&(0<=y)&&(50>=y)) {
lastitemclicked=26;
gotsomething=true;}
return gotsomething;
}
public void mouseClicked( MouseEvent e)
{clickedsomething=clickedsomthingonpage(e.getX(),e.getY());
if(clickedsomething)repaint();}
public void mousePressed( MouseEvent e) {}
public void mouseReleased( MouseEvent e) {}
public void mouseEntered( MouseEvent e) {}
public void mouseExited( MouseEvent e) {}
public void mouseDragged( MouseEvent e) {}
public void mouseMoved( MouseEvent e) {}
}
I am working on the age old Hang Man game and need assistance turning a
GIF file into seperate elements and displaying those elements as the
incorrect letters are selected. Here is what I have so far. I will
create the animated GIF and plug it into the program using the Paint
method. How should I write the method so that as the incorrect element
is selected, the image appears?:
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;
import java.applet.*;
public class Gamesetup extends Applet implements MouseListener,
MouseMotionListener {
private int xpos, ypos =-10;
private boolean clickedsomething=false;
private int lastitemclicked=-1;
// Globals needed;
int min_x=0; int max_x=500; int min_y=200; int max_y=299;
int rows=2; int columns=13;
public int get_row(int y) {
// -1 will be returned if clicked out of range
int return_row=0;
if(y<min_y) {return_row=-1;}
else if (y>max_y) {return_row=-1;}
else {return_row=(y-min_y)/((max_y-min_y)/rows);}
if(return_row==rows) {return_row--;}
return return_row; }
public int get_column(int x) {
// -1 will be returned if clicked out of range
int return_column=0;
if(x<min_x) {return_column=-1;}
else if (x>max_x) {return_column=-1;}
else {return_column=(x-min_x)/((max_x-min_x)/columns);}
if(return_column==columns) {return_column--;}
return return_column; }
public int get_row_y_start(int row){
return ((max_y-min_y)/rows)*row+min_y;}
public int get_column_x_start(int column){
return ((max_x-min_x)/columns)*column+min_x;}
public int convert_column_row_to_list(int x, int y) {
return y*columns+x; }
public int list_to_column(int l) {return l%columns;}
public int list_to_row(int l) {return l/columns;}
public int list_to_column_screen(int l) {return
min_x+(l%columns)*((max_x-min_x)/columns);}
public int list_to_row_screen(int l) {return
(l/columns)*((max_y-min_y)/rows)+min_y;}
public int convert_column_row_to_list_raw(int x, int y) {
return get_row(y)*columns+get_column(x); }
public void init() {
addMouseListener(this);
addMouseMotionListener(this);
}
public void paint(Graphics g) {
g.drawString("Last Item Clicked="+lastitemclicked, 50, 60 );
char firstletter='A';
for(int i=0;i<26;i++)
g.drawString(""+firstletter++, list_to_column_screen(i) +
((max_x-min_x)/columns)/2, list_to_row_screen(i)+((max_y-min_y)/rows)/2
);
}
public boolean clickedsomthingonpage(int x,int y){
boolean gotsomething=false;
if((min_x<=x)&&(max_x>=x)&&(min_y<=y)&&(max_y>=y)) {
lastitemclicked=convert_column_row_to_list_raw(x,y);
gotsomething=true;}
if((400<=x)&&(500>=x)&&(0<=y)&&(50>=y)) {
lastitemclicked=26;
gotsomething=true;}
return gotsomething;
}
public void mouseClicked( MouseEvent e)
{clickedsomething=clickedsomthingonpage(e.getX(),e.getY());
if(clickedsomething)repaint();}
public void mousePressed( MouseEvent e) {}
public void mouseReleased( MouseEvent e) {}
public void mouseEntered( MouseEvent e) {}
public void mouseExited( MouseEvent e) {}
public void mouseDragged( MouseEvent e) {}
public void mouseMoved( MouseEvent e) {}
}