/* Michael Donohue
Cosc 072
Mahe
final project: horse race
race around track with sounds, etc.
*/
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class horse extends Applet implements KeyListener {
TextField directions;
Canvas track;
int r, b, rx, ry, bx, by;
int prx, pry, pbx, pby;
AudioClip off, red, blue, finr, finb;
public void init()
{
r = 0;
b = 0;
rx = 330;
prx = 310;
ry = 70;
pry = 70;
bx = 330;
pbx = 310;
by = 110;
pby = 110;
off = getAudioClip( getDocumentBase(), "off.au" );
blue = getAudioClip( getDocumentBase(), "blue.au" );
red = getAudioClip( getDocumentBase(), "red.au" );
finb = getAudioClip( getDocumentBase(), "finb.au" );
finr = getAudioClip( getDocumentBase(), "finr.au" );
directions = new TextField( "Directions: Red Horse hit an Arrow Key repeatedly, Blue Horse hit a Letter Key else repeatedly!!" );
directions.setEditable( false );
setLayout( new BorderLayout() );
add( directions, BorderLayout.SOUTH );
addKeyListener( this );
requestFocus();
}
public void paint( Graphics g )
{
g.setColor( Color.black );
g.fillRoundRect( 50, 50, 600, 400, 100, 100 );
g.setColor( Color.green );
g.fillRoundRect( 150, 150, 400, 200, 50, 50 );
g.setColor( Color.white );
g.fillRect( 349, 50, 3, 100 );
}
public void update( Graphics g )
{
g.setColor( Color.black );
g.fillOval( prx, pry, 20, 20 );
g.fillOval( pbx, pby, 20, 20 );
g.setColor( Color.red );
g.fillOval( rx, ry, 20, 20 );
g.setColor( Color.blue );
g.fillOval( bx, by, 20, 20 );
g.setColor( Color.white );
g.fillRect( 349, 50, 3, 100 );
}
public void keyReleased( KeyEvent e )
{
if ( e.isActionKey() ) {
r++;
prx = rx;
pry = ry;
if ( r <= 12 ) {
rx += 20;
repaint();
}
if ( r == 13 ) {
rx += 40;
ry += 60;
repaint();
}
if ( r > 13 && r <= 25 ) {
ry += 20;
repaint();
}
if ( r == 26 ) {
rx -= 60;
ry += 40;
repaint();
}
if ( r > 26 && r <= 48 ) {
rx -= 20;
repaint();
}
if ( r == 49 ) {
rx -= 40;
ry -= 60;
repaint();
}
if ( r > 49 && r <= 61 ) {
ry -= 20;
repaint();
}
if ( r == 62 ) {
rx += 60;
ry -= 40;
repaint();
}
if ( r > 62 && r <= 73 ) {
rx += 20;
repaint();
}
}
if ( e.isActionKey() == false ) {
b++;
pbx = bx;
pby = by;
if ( b <= 12 ) {
bx += 20;
repaint();
}
if ( b > 12 && b <= 25 ) {
by += 20;
repaint();
}
if ( b > 25 && b <= 48 ) {
bx -= 20;
repaint();
}
if ( b > 48 && b <= 61 ) {
by -= 20;
repaint();
}
if ( b > 61 && b <= 73 ) {
bx += 20;
repaint();
}
}
if ( e.isActionKey() || e.isActionKey() == false ) {
if ( b + r == 1 )
off.play();
if ( b == 35 && r < 35 )
blue.play();
if ( r == 35 && b < 35 )
red.play();
if ( r == 73 && b < 73 ) {
finr.play();
directions.setText( "Red Wins!!" );
}
if ( b == 73 && r < 73 ) {
finb.play();
directions.setText( "Blue Wins!!" );
}
}
}
public void keyPressed( KeyEvent e )
{
}
public void keyTyped( KeyEvent e )
{
}
}