/* "RatPack.java" * 1997 Joe Rosen * java applet, "Rat Pack Angels in San Francisco" */ import java.applet.Applet; import java.awt.*; // "RatPack" applet class public class RatPack extends java.applet.Applet implements Runnable { // constants // applet canvas size final int APPLET_WDTH = 480; final int APPLET_HGHT = 320; // LED letters array indices final int BLANK = 0; final int R = 1; final int A = 2; final int T = 3; final int P = 4; final int C = 5; final int K = 6; final int N = 7; final int G = 8; final int E = 9; final int L = 10; final int S = 11; final int I = 12; final int F = 13; final int O = 14; final int D = 15; final int M = 16; final int Y = 17; final int J = 18; /* Rat Pack Angel, width X height */ final int ANGEL_WDTH = 177; final int ANGEL_HGHT = 256; /* Rat Pack Angel, horiz/vert direction */ final int ANGEL_MOVE_UP = 0; final int ANGEL_MOVE_DOWN = 1; final int ANGEL_MOVE_LEFT = 0; final int ANGEL_MOVE_RIGHT = 1; // LED sign top final int LED_SIGN_TOP = 6; // Angel emerge anim center point final int ANGEL_EMERGE_X = 239; final int ANGEL_EMERGE_Y = 100; // variables // Rat Pack, offscreen graphics composite buffer Image offRatPack_Image; Graphics offRatPack_Graphics; // LED letter modules, individual LED switches (5 X 7 matrix) boolean LED_Switch[][][]; // false=off/true=on // ^"BLANK" "R" "A" "T" "P" "C" "K" "N" "G" "E" "L" "S" // "I" "F" "O" "D" "M" "Y" "J" // LED letter modules offscreen buffers (one for each letter module) Image offLED_Image[]; Graphics offLED_Graphics[]; // LED module position int LED_sign_top; // LED animation, frame counter int LED_anim_fram_cnt; // flying Rat Pack Angel, frame counter= int angel_fram_cnt; // flying Rat Pack Angel, horiz/vert coords int hrz_angel_coord, vrt_angel_coord; // flying Rat Pack Angel, horiz/vert direction flags int hrz_angel_direction, vrt_angel_direction; // heads buttons flags boolean frank_btn_flg; boolean dean_btn_flg; boolean sammy_btn_flg; boolean peter_btn_flg; boolean joey_btn_flg; // button/sign visibility flag boolean btn_sign_visible_flg; // images // Coit Tower/Telegraph Hill background image Image coit_image; // Rat Pack Angels head buttons image Image heads_btns_image; // Rat Pack Angels images (2 frames per Angel) Image frank_image; // Frank (Sinatra) Image dean_image; // Dean (Martin) Image sammy_image; // Sammy (Davis, Jr.) Image peter_image; // Peter (Lawford) Image joey_image; // Joey (Bishop) // Rat Pack Angels, MediaTracker MediaTracker angels_MediaTracker; // Rat Pack Angels, animation thread Thread animation_Thread = null; // internal methods /* "Draw_HeadsButtons()" * draw heads buttons control panel */ public void Draw_HeadsButtons(Graphics g) { // image (heads) crop Graphics clip_g; // heads buttons loop int heads_btns_lp; // heads buttons left coord int heads_btns_clip_left, heads_btns_image_left; // white border area around btns g.setColor(Color.white); g.fillRect(2,225,68,93); g.fillRect(104,225,68,93); g.fillRect(206,225,68,93); g.fillRect(308,225,68,93); g.fillRect(410,225,68,93); // init heads buttons left coord (29) heads_btns_clip_left = 5; heads_btns_image_left = heads_btns_clip_left; // clip and draw head buttons for (heads_btns_lp = 0; heads_btns_lp < 5; heads_btns_lp++) { // create clip rect clip_g = g.create(); // set clip rect clip_g.clipRect(heads_btns_clip_left,228,62,87); clip_g.drawImage(heads_btns_image,heads_btns_image_left,228,this); // dispose clip rect clip_g.dispose(); // advance heads buttons left coord (90) heads_btns_clip_left = heads_btns_clip_left + 102; heads_btns_image_left = (heads_btns_image_left + 102) - 62; } // hilite btns g.setColor(Color.black); if (frank_btn_flg == true) { g.drawRect(3,226,66,91); g.drawRect(2,225,66,91); } else if (dean_btn_flg == true) { g.drawRect(105,226,66,91); g.drawRect(104,225,66,91); } else if (sammy_btn_flg == true) { g.drawRect(207,226,66,91); g.drawRect(206,225,66,91); } else if (peter_btn_flg == true) { g.drawRect(309,226,66,91); g.drawRect(308,225,66,91); } else if (joey_btn_flg == true) { g.drawRect(411,226,66,91); g.drawRect(410,225,66,91); } } /* end method "Draw_HeadsButtons" */ /* "Draw_FlyingAngel()" * draw (and update) flying Rat Pack Angel image */ public void Draw_FlyingAngel(Graphics g) { // image (Angel frames) crop Graphics clip_g; // image (Angel frames) hrz clip offset int clip_offset_x; // emerging Angel height and width int angel_wdth, angel_hght; // create clip rect clip_g = g.create(); // clip and draw Angel if (angel_fram_cnt == 0) clip_offset_x = hrz_angel_coord; else clip_offset_x = hrz_angel_coord - (ANGEL_WDTH - 1); // clip clip_g.clipRect(hrz_angel_coord,vrt_angel_coord,ANGEL_WDTH-1,ANGEL_HGHT-1); // draw full-size Angel (in buffer) at specified coords if (frank_btn_flg) clip_g.drawImage(frank_image,clip_offset_x,vrt_angel_coord,this); else if (dean_btn_flg) clip_g.drawImage(dean_image,clip_offset_x,vrt_angel_coord,this); else if (sammy_btn_flg) clip_g.drawImage(sammy_image,clip_offset_x,vrt_angel_coord,this); else if (peter_btn_flg) clip_g.drawImage(peter_image,clip_offset_x,vrt_angel_coord,this); else if (joey_btn_flg) clip_g.drawImage(joey_image,clip_offset_x,vrt_angel_coord,this); // dispose clip rect clip_g.dispose(); // change horiz direction (?) if ((hrz_angel_coord + ANGEL_WDTH) >= (APPLET_WDTH - 1)) hrz_angel_direction = ANGEL_MOVE_LEFT; else if (hrz_angel_coord <= 1) hrz_angel_direction = ANGEL_MOVE_RIGHT; // change vert direction (?) if ((vrt_angel_coord + ANGEL_HGHT) >= (APPLET_HGHT - 1)) vrt_angel_direction = ANGEL_MOVE_UP; else if (vrt_angel_coord <= 1) vrt_angel_direction = ANGEL_MOVE_DOWN; // adjust Angel horiz/vert coords if (hrz_angel_direction == ANGEL_MOVE_RIGHT) hrz_angel_coord = hrz_angel_coord + 2; else hrz_angel_coord = hrz_angel_coord - 2; if (vrt_angel_direction == ANGEL_MOVE_DOWN) vrt_angel_coord = vrt_angel_coord + 2; else vrt_angel_coord = vrt_angel_coord - 2; // inc/reset Angel frame counter if (angel_fram_cnt < 1) angel_fram_cnt++; else angel_fram_cnt = 0; } /* end method "Draw_FlyingAngel" */ /* "Create_LED_Letters()" * create LED letters */ public void Create_LED_Letters() { // LED loops int LED_col_lp, LED_row_lp, LED_module_lp; // individual LEDs position int LED_left, LED_top; // init LED letter modules, individual LED switches (7 rows X 5 cols) LED_Switch = new boolean[19][7][5]; // assume all individual LEDs off for (LED_module_lp = 0; LED_module_lp < 19; LED_module_lp++) for (LED_row_lp = 0; LED_row_lp < 7; LED_row_lp++) for (LED_col_lp = 0; LED_col_lp < 5; LED_col_lp++) LED_Switch[LED_module_lp][LED_row_lp][LED_col_lp] = false; // on LEDs for letter "R" LED_Switch[R][0][0] = true; LED_Switch[R][0][1] = true; LED_Switch[R][0][2] = true; LED_Switch[R][0][3] = true; LED_Switch[R][1][0] = true; LED_Switch[R][1][4] = true; LED_Switch[R][2][0] = true; LED_Switch[R][2][4] = true; LED_Switch[R][3][0] = true; LED_Switch[R][3][1] = true; LED_Switch[R][3][2] = true; LED_Switch[R][3][3] = true; LED_Switch[R][4][0] = true; LED_Switch[R][4][3] = true; LED_Switch[R][5][0] = true; LED_Switch[R][5][4] = true; LED_Switch[R][6][0] = true; LED_Switch[R][6][4] = true; // on LEDs for letter "A" LED_Switch[A][0][2] = true; LED_Switch[A][1][1] = true; LED_Switch[A][1][3] = true; LED_Switch[A][2][1] = true; LED_Switch[A][2][3] = true; LED_Switch[A][3][0] = true; LED_Switch[A][3][1] = true; LED_Switch[A][3][2] = true; LED_Switch[A][3][3] = true; LED_Switch[A][3][4] = true; LED_Switch[A][4][0] = true; LED_Switch[A][4][4] = true; LED_Switch[A][5][0] = true; LED_Switch[A][5][4] = true; LED_Switch[A][6][0] = true; LED_Switch[A][6][4] = true; // on LEDs for letter "T" LED_Switch[T][0][0] = true; LED_Switch[T][0][1] = true; LED_Switch[T][0][2] = true; LED_Switch[T][0][3] = true; LED_Switch[T][0][4] = true; LED_Switch[T][1][2] = true; LED_Switch[T][2][2] = true; LED_Switch[T][3][2] = true; LED_Switch[T][4][2] = true; LED_Switch[T][5][2] = true; LED_Switch[T][6][2] = true; // on LEDs for letter "P" LED_Switch[P][0][0] = true; LED_Switch[P][0][1] = true; LED_Switch[P][0][2] = true; LED_Switch[P][0][3] = true; LED_Switch[P][1][0] = true; LED_Switch[P][1][4] = true; LED_Switch[P][2][0] = true; LED_Switch[P][2][4] = true; LED_Switch[P][3][0] = true; LED_Switch[P][3][1] = true; LED_Switch[P][3][2] = true; LED_Switch[P][3][3] = true; LED_Switch[P][4][0] = true; LED_Switch[P][5][0] = true; LED_Switch[P][6][0] = true; // on LEDs for letter "C" LED_Switch[C][0][2] = true; LED_Switch[C][0][3] = true; LED_Switch[C][0][4] = true; LED_Switch[C][1][1] = true; LED_Switch[C][2][0] = true; LED_Switch[C][3][0] = true; LED_Switch[C][4][0] = true; LED_Switch[C][5][1] = true; LED_Switch[C][6][2] = true; LED_Switch[C][6][3] = true; LED_Switch[C][6][4] = true; // on LEDs for letter "K" LED_Switch[K][0][0] = true; LED_Switch[K][0][4] = true; LED_Switch[K][1][0] = true; LED_Switch[K][1][3] = true; LED_Switch[K][2][0] = true; LED_Switch[K][2][2] = true; LED_Switch[K][3][0] = true; LED_Switch[K][3][1] = true; LED_Switch[K][4][0] = true; LED_Switch[K][4][2] = true; LED_Switch[K][5][0] = true; LED_Switch[K][5][3] = true; LED_Switch[K][6][0] = true; LED_Switch[K][6][4] = true; // on LEDs for letter "N" LED_Switch[N][0][0] = true; LED_Switch[N][0][4] = true; LED_Switch[N][1][0] = true; LED_Switch[N][1][1] = true; LED_Switch[N][1][4] = true; LED_Switch[N][2][0] = true; LED_Switch[N][2][1] = true; LED_Switch[N][2][4] = true; LED_Switch[N][3][0] = true; LED_Switch[N][3][2] = true; LED_Switch[N][3][4] = true; LED_Switch[N][4][0] = true; LED_Switch[N][4][3] = true; LED_Switch[N][4][4] = true; LED_Switch[N][5][0] = true; LED_Switch[N][5][3] = true; LED_Switch[N][5][4] = true; LED_Switch[N][6][0] = true; LED_Switch[N][6][4] = true; // on LEDs for letter "G" LED_Switch[G][0][1] = true; LED_Switch[G][0][2] = true; LED_Switch[G][0][3] = true; LED_Switch[G][1][0] = true; LED_Switch[G][1][4] = true; LED_Switch[G][2][0] = true; LED_Switch[G][3][0] = true; LED_Switch[G][3][2] = true; LED_Switch[G][3][3] = true; LED_Switch[G][3][4] = true; LED_Switch[G][4][0] = true; LED_Switch[G][4][4] = true; LED_Switch[G][5][0] = true; LED_Switch[G][5][4] = true; LED_Switch[G][6][1] = true; LED_Switch[G][6][2] = true; LED_Switch[G][6][3] = true; // on LEDs for letter "E" LED_Switch[E][0][0] = true; LED_Switch[E][0][1] = true; LED_Switch[E][0][2] = true; LED_Switch[E][0][3] = true; LED_Switch[E][0][4] = true; LED_Switch[E][1][0] = true; LED_Switch[E][2][0] = true; LED_Switch[E][3][0] = true; LED_Switch[E][3][1] = true; LED_Switch[E][3][2] = true; LED_Switch[E][3][3] = true; LED_Switch[E][4][0] = true; LED_Switch[E][5][0] = true; LED_Switch[E][6][0] = true; LED_Switch[E][6][1] = true; LED_Switch[E][6][2] = true; LED_Switch[E][6][3] = true; LED_Switch[E][6][4] = true; // on LEDs for letter "L" LED_Switch[L][0][0] = true; LED_Switch[L][1][0] = true; LED_Switch[L][2][0] = true; LED_Switch[L][3][0] = true; LED_Switch[L][4][0] = true; LED_Switch[L][5][0] = true; LED_Switch[L][6][0] = true; LED_Switch[L][6][1] = true; LED_Switch[L][6][2] = true; LED_Switch[L][6][3] = true; LED_Switch[L][6][4] = true; // on LEDs for letter "S" LED_Switch[S][0][1] = true; LED_Switch[S][0][2] = true; LED_Switch[S][0][3] = true; LED_Switch[S][1][0] = true; LED_Switch[S][1][4] = true; LED_Switch[S][2][0] = true; LED_Switch[S][3][1] = true; LED_Switch[S][3][2] = true; LED_Switch[S][3][3] = true; LED_Switch[S][4][4] = true; LED_Switch[S][5][0] = true; LED_Switch[S][5][4] = true; LED_Switch[S][6][1] = true; LED_Switch[S][6][2] = true; LED_Switch[S][6][3] = true; // on LEDs for letter "I" LED_Switch[I][0][2] = true; LED_Switch[I][1][2] = true; LED_Switch[I][2][2] = true; LED_Switch[I][3][2] = true; LED_Switch[I][4][2] = true; LED_Switch[I][5][2] = true; LED_Switch[I][6][2] = true; // on LEDs for letter "F" LED_Switch[F][0][0] = true; LED_Switch[F][0][1] = true; LED_Switch[F][0][2] = true; LED_Switch[F][0][3] = true; LED_Switch[F][0][4] = true; LED_Switch[F][1][0] = true; LED_Switch[F][2][0] = true; LED_Switch[F][2][1] = true; LED_Switch[F][2][2] = true; LED_Switch[F][2][3] = true; LED_Switch[F][3][0] = true; LED_Switch[F][4][0] = true; LED_Switch[F][5][0] = true; LED_Switch[F][6][0] = true; // on LEDs for letter "O" LED_Switch[O][0][1] = true; LED_Switch[O][0][2] = true; LED_Switch[O][0][3] = true; LED_Switch[O][1][0] = true; LED_Switch[O][1][4] = true; LED_Switch[O][2][0] = true; LED_Switch[O][2][4] = true; LED_Switch[O][3][0] = true; LED_Switch[O][3][4] = true; LED_Switch[O][4][0] = true; LED_Switch[O][4][4] = true; LED_Switch[O][5][0] = true; LED_Switch[O][5][4] = true; LED_Switch[O][6][1] = true; LED_Switch[O][6][2] = true; LED_Switch[O][6][3] = true; // on LEDs for letter "D" LED_Switch[D][0][0] = true; LED_Switch[D][0][1] = true; LED_Switch[D][0][2] = true; LED_Switch[D][1][0] = true; LED_Switch[D][1][3] = true; LED_Switch[D][2][0] = true; LED_Switch[D][2][4] = true; LED_Switch[D][3][0] = true; LED_Switch[D][3][4] = true; LED_Switch[D][4][0] = true; LED_Switch[D][4][4] = true; LED_Switch[D][5][0] = true; LED_Switch[D][5][3] = true; LED_Switch[D][6][0] = true; LED_Switch[D][6][1] = true; LED_Switch[D][6][2] = true; // on LEDs for letter "M" LED_Switch[M][0][0] = true; LED_Switch[M][0][4] = true; LED_Switch[M][1][0] = true; LED_Switch[M][1][1] = true; LED_Switch[M][1][3] = true; LED_Switch[M][1][4] = true; LED_Switch[M][2][0] = true; LED_Switch[M][2][2] = true; LED_Switch[M][2][4] = true; LED_Switch[M][3][0] = true; LED_Switch[M][3][4] = true; LED_Switch[M][4][0] = true; LED_Switch[M][4][4] = true; LED_Switch[M][5][0] = true; LED_Switch[M][5][4] = true; LED_Switch[M][6][0] = true; LED_Switch[M][6][4] = true; // on LEDs for letter "Y" LED_Switch[Y][0][0] = true; LED_Switch[Y][0][4] = true; LED_Switch[Y][1][0] = true; LED_Switch[Y][1][4] = true; LED_Switch[Y][2][1] = true; LED_Switch[Y][2][3] = true; LED_Switch[Y][3][2] = true; LED_Switch[Y][4][2] = true; LED_Switch[Y][5][2] = true; LED_Switch[Y][6][2] = true; // on LEDs for letter "J" LED_Switch[J][0][4] = true; LED_Switch[J][1][4] = true; LED_Switch[J][2][4] = true; LED_Switch[J][3][4] = true; LED_Switch[J][4][0] = true; LED_Switch[J][4][4] = true; LED_Switch[J][5][0] = true; LED_Switch[J][5][4] = true; LED_Switch[J][6][1] = true; LED_Switch[J][6][2] = true; LED_Switch[J][6][3] = true; // create LED letter modules offscreen buffers (1 for each letter module) offLED_Image = new Image[19]; offLED_Graphics = new Graphics[19]; for (LED_module_lp = 0; LED_module_lp < 19; LED_module_lp++) { offLED_Image[LED_module_lp] = createImage(5*7,7*7); offLED_Graphics[LED_module_lp] = offLED_Image[LED_module_lp].getGraphics(); } // fill LED letter modules offscreen buffers with white paint for (LED_module_lp = 0; LED_module_lp < 19; LED_module_lp++) { offLED_Graphics[LED_module_lp].setColor(Color.white); offLED_Graphics[LED_module_lp].fillRect(0,0,5*7,7*7); } // draw LED letter modules in offscreen buffers for (LED_module_lp = 0; LED_module_lp < 19; LED_module_lp++) { LED_left = 0; LED_top = 0; for (LED_row_lp = 0; LED_row_lp < 7; LED_row_lp++) { for (LED_col_lp = 0; LED_col_lp < 5; LED_col_lp++) { offLED_Graphics[LED_module_lp].setColor(Color.gray); offLED_Graphics[LED_module_lp].drawRect(LED_left,LED_top,5,5); // light LED ? if (LED_Switch[LED_module_lp][LED_row_lp][LED_col_lp]) { offLED_Graphics[LED_module_lp].setColor(Color.red); offLED_Graphics[LED_module_lp].fillOval(LED_left,LED_top,5,5); } offLED_Graphics[LED_module_lp].setColor(Color.black); offLED_Graphics[LED_module_lp].drawOval(LED_left,LED_top,5,5); LED_left = LED_left + 7; } // end "LED_col_lp" LED_left = 0; LED_top = LED_top + 7; } // end "LED_col_lp" } // end "LED_module_lp" // init LED sign position LED_sign_top = 0; // LED animation, frame counter LED_anim_fram_cnt = 0; } /* end method "Create_LED_Letters" */ /* "Animate_LED_Sign()" * animate LED sign */ public void Animate_LED_Sign(Graphics g) { // LED module lp count int module_lp; // LED module position int LED_module_left; // LED letter modules sign offscreen composite buffer Image offLEDSign_Image; Graphics offLEDSign_Graphics; /* image (sign) crop */ Graphics clip_g; // init LED module position LED_module_left = 7; // do frame switch (LED_anim_fram_cnt) { // [][]R case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); // BLANK (2) LED_module_left = 7; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // R for (module_lp = 2; module_lp < 13; module_lp++) { if (module_lp == (12 - LED_anim_fram_cnt)) g.drawImage(offLED_Image[R],LED_module_left,LED_SIGN_TOP,this); else g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } break; // [][]RA case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); // BLANK (2) LED_module_left = 7; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // R g.drawImage(offLED_Image[R],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // A for (module_lp = 3; module_lp < 13; module_lp++) { if (module_lp == (23 - LED_anim_fram_cnt)) g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); else g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } break; // [][]RAT case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 29: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); // BLANK (2) LED_module_left = 7; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // R g.drawImage(offLED_Image[R],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // A g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // T for (module_lp = 4; module_lp < 13; module_lp++) { if (module_lp == (33 - LED_anim_fram_cnt)) g.drawImage(offLED_Image[T],LED_module_left,LED_SIGN_TOP,this); else g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } break; // [][]RAT[][]P case 30: case 31: case 32: case 33: case 34: case 35: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); // BLANK (2) LED_module_left = 7; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // R g.drawImage(offLED_Image[R],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // A g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // T g.drawImage(offLED_Image[T],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // BLANK (2) g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // P for (module_lp = 7; module_lp < 13; module_lp++) { if (module_lp == (42 - LED_anim_fram_cnt)) g.drawImage(offLED_Image[P],LED_module_left,LED_SIGN_TOP,this); else g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } break; // [][]RAT[][]PA case 36: case 37: case 38: case 39: case 40: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); // BLANK (2) LED_module_left = 7; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // R g.drawImage(offLED_Image[R],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // A g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // T g.drawImage(offLED_Image[T],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // BLANK (2) g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // P g.drawImage(offLED_Image[P],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // A for (module_lp = 8; module_lp < 13; module_lp++) { if (module_lp == (48 - LED_anim_fram_cnt)) g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); else g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } break; // [][]RAT[][]PAC case 41: case 42: case 43: case 44: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); // BLANK (2) LED_module_left = 7; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // R g.drawImage(offLED_Image[R],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // A g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // T g.drawImage(offLED_Image[T],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // BLANK (2) g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // P g.drawImage(offLED_Image[P],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // A g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // C for (module_lp = 9; module_lp < 13; module_lp++) { if (module_lp == (53 - LED_anim_fram_cnt)) g.drawImage(offLED_Image[C],LED_module_left,LED_SIGN_TOP,this); else g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } break; // [][]RAT[][]PACK[][] case 45: case 46: case 47: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); // BLANK (2) LED_module_left = 7; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // R g.drawImage(offLED_Image[R],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // A g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // T g.drawImage(offLED_Image[T],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // BLANK (2) g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // P g.drawImage(offLED_Image[P],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // A g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // C g.drawImage(offLED_Image[C],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // K for (module_lp = 10; module_lp < 13; module_lp++) { if (module_lp == (57 - LED_anim_fram_cnt)) g.drawImage(offLED_Image[K],LED_module_left,LED_SIGN_TOP,this); else g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } break; // [][]RAT[][]PACK[][] (HOLD) case 48: case 49: case 50: case 51: case 52: case 53: case 54: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); // BLANK (2) LED_module_left = 7; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // R g.drawImage(offLED_Image[R],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // A g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // T g.drawImage(offLED_Image[T],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // BLANK (2) g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // P g.drawImage(offLED_Image[P],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // A g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // C g.drawImage(offLED_Image[C],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // K g.drawImage(offLED_Image[K],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // BLANK (2) g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; break; // BLANK (13) (HOLD) case 55: case 56: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); LED_module_left = 7; for (module_lp = 0; module_lp < 13; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } break; // []A[]N[]G[]E[]L[]S[] case 57: case 58: case 59: case 60: case 61: case 62: case 63: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); // BLANKS (13) LED_module_left = 7; for (module_lp = 0; module_lp < 13; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } // []A[]N[]G[]E[]L[]S[] // create buffer offLEDSign_Image = createImage((((5*7)*13)+12)-1,(7*7)-1); offLEDSign_Graphics = offLEDSign_Image.getGraphics(); // fill buffer with white paint offLEDSign_Graphics.setColor(Color.white); offLEDSign_Graphics.fillRect(0,0,(((5*7)*13)+12)-1,(7*7)-1); LED_module_left = 0; offLEDSign_Graphics.drawImage( offLED_Image[BLANK], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[A], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[BLANK], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[N], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[BLANK], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[G], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[BLANK], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[E], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[BLANK], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[L], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[BLANK], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[S], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[BLANK], LED_module_left, 0, this ); if (LED_anim_fram_cnt == 57) LED_sign_top = LED_SIGN_TOP - (7*6); else LED_sign_top = LED_sign_top + 7; // clip to rect: 7L,5T,((5*7)*13)+12W,(7*7)H clip_g = g.create(); clip_g.clipRect(7,LED_SIGN_TOP,((5*7)*13)+12,(7*7)); // blast clip_g.drawImage(offLEDSign_Image,7,LED_sign_top,this); // dispose clip rect clip_g.dispose(); break; // []A[]N[]G[]E[]L[]S[] (HOLD) case 64: case 65: case 66: case 67: case 68: case 69: case 70: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); LED_module_left = 7; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[N],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this ); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[G],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[E],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[L],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[S],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); break; // BLANK (13) (HOLD) case 71: case 72: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); LED_module_left = 7; for (module_lp = 0; module_lp < 13; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } break; // <-IN case 73: case 74: case 75: case 76: case 77: case 78: case 79: case 80: case 81: case 82: case 83: case 84: case 85: case 86: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); // clip to rect: 7L,5T,((5*7)*13)+12W,(7*7)H clip_g = g.create(); clip_g.clipRect(7,LED_SIGN_TOP,((5*7)*13)+12,(7*7)); LED_module_left = 7 - 36; for (module_lp = 0; module_lp <= 13; module_lp++) { if (module_lp == (86 - LED_anim_fram_cnt)) { clip_g.drawImage(offLED_Image[I],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; clip_g.drawImage(offLED_Image[N],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } else { clip_g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } } // dispose clip rect clip_g.dispose(); break; // BLANK (13) (HOLD) case 87: case 88: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); LED_module_left = 7; for (module_lp = 0; module_lp < 13; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } break; // SAN[]FRANCISCO case 89: case 90: case 91: case 92: case 93: case 94: case 95: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); // BLANKS (13) LED_module_left = 7; for (module_lp = 0; module_lp < 13; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } // SAN[]FRANCISCO // create buffer offLEDSign_Image = createImage((((5*7)*13)+12)-1,(7*7)-1); offLEDSign_Graphics = offLEDSign_Image.getGraphics(); // fill buffer with white paint offLEDSign_Graphics.setColor(Color.white); offLEDSign_Graphics.fillRect(0,0,(((5*7)*13)+12)-1,(7*7)-1); LED_module_left = 0; offLEDSign_Graphics.drawImage( offLED_Image[S], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[A], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[N], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[BLANK], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[F], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[R], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[A], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[N], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[C], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[I], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[S], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[C], LED_module_left, 0, this ); LED_module_left = LED_module_left + 36; offLEDSign_Graphics.drawImage( offLED_Image[O], LED_module_left, 0, this ); if (LED_anim_fram_cnt == 89) LED_sign_top = LED_SIGN_TOP + (7*6); else LED_sign_top = LED_sign_top - 7; // clip to rect: 7L,5T,((5*7)*13)+12W,(7*7)H clip_g = g.create(); clip_g.clipRect(7,LED_SIGN_TOP,((5*7)*13)+12,(7*7)); // blast clip_g.drawImage(offLEDSign_Image,7,LED_sign_top,this); // dispose clip rect clip_g.dispose(); break; // SAN[]FRANCISCO (HOLD) case 96: case 97: case 98: case 99: case 100: case 101: case 102: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); LED_module_left = 7; g.drawImage(offLED_Image[S],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage( offLED_Image[N],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[F],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[R],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[N],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[C],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[I],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[S],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[C],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[O],LED_module_left,LED_SIGN_TOP,this); break; // BLANK (13) (HOLD) case 103: case 104: // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); LED_module_left = 7; for (module_lp = 0; module_lp < 13; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } break; } // end "switch (LED_anim_fram_cnt)" // inc/reset LED animation, frame counter if (LED_anim_fram_cnt < 104) LED_anim_fram_cnt++; else LED_anim_fram_cnt = 0; } /* end method "Animate_LED_Sign" */ /* "LightName_LED_Sign()" * light Rat Packer's name in LED */ public void LightName_LED_Sign(Graphics g) { // LED module lp count int module_lp; // LED module position int LED_module_left; // white out and frame LED sign space // 7,5,(((5*7)*13)+12)-1,(7*7)-1 g.setColor(Color.white); g.fillRect(5,4,469,51); g.setColor(Color.black); g.drawRect(5,4,469,51); // light Rat Packer's name // [][]F[]R[]A[]N[]K[][] if (frank_btn_flg == true) { LED_module_left = 7; // BLANK (2) for (module_lp = 0; module_lp < 2; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } g.drawImage(offLED_Image[F],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[R],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[N],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[K],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // BLANK (2) for (module_lp = 0; module_lp < 2; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } } // end "[][]F[]R[]A[]N[]K[][]" // [][][]D[]E[]A[]N[][][] else if (dean_btn_flg == true) { LED_module_left = 7; // BLANK (3) for (module_lp = 0; module_lp < 3; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } g.drawImage(offLED_Image[D],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[E],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[N],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // BLANK (3) for (module_lp = 0; module_lp < 3; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } } // end "[][][]D[]E[]A[]N[][][]" // [][]S[]A[]M[]M[]Y[][] if (sammy_btn_flg == true) { LED_module_left = 7; // BLANK (2) for (module_lp = 0; module_lp < 2; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } g.drawImage(offLED_Image[S],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[A],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[M],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[M],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[Y],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // BLANK (2) for (module_lp = 0; module_lp < 2; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } } // end "[][]S[]A[]M[]M[]Y[][]" // [][]P[]E[]T[]E[]R[][] if (peter_btn_flg == true) { LED_module_left = 7; // BLANK (2) for (module_lp = 0; module_lp < 2; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } g.drawImage(offLED_Image[P],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[E],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[T],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[E],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[R],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // BLANK (2) for (module_lp = 0; module_lp < 2; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } } // end "[][]P[]E[]T[]E[]R[][]" // [][][]J[]O[]E[]Y[][][] else if (joey_btn_flg == true) { LED_module_left = 7; // BLANK (3) for (module_lp = 0; module_lp < 3; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } g.drawImage(offLED_Image[J],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[O],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[E],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; g.drawImage(offLED_Image[Y],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; // BLANK (3) for (module_lp = 0; module_lp < 3; module_lp++) { g.drawImage(offLED_Image[BLANK],LED_module_left,LED_SIGN_TOP,this); LED_module_left = LED_module_left + 36; } } // end "[][][]J[]O[]E[]Y[][][]" } /* end method "LightName_LED_Sign" */ /* methods invoked by Java */ /* "init()" * initialize the applet */ public void init() { // resize canvas resize(APPLET_WDTH,APPLET_HGHT); // create offscreen graphics context, Rat Pack composite buffer offRatPack_Image = createImage(APPLET_WDTH,APPLET_HGHT); offRatPack_Graphics = offRatPack_Image.getGraphics(); // create LED letters Create_LED_Letters(); // init (random position within window) Angel, horiz/vert coords hrz_angel_coord = (int) (Math.random() * (APPLET_WDTH - ANGEL_WDTH)); vrt_angel_coord = (int) (Math.random() * (APPLET_HGHT - ANGEL_HGHT)); // init Angel, horiz/vert (random up-down/right-left) direction flags hrz_angel_direction = (int) (Math.random() * 2); vrt_angel_direction = (int) (Math.random() * 2); // init Rat Pack Angel frame counter angel_fram_cnt = 0; // init heads buttons flags (all initially false) frank_btn_flg = false; dean_btn_flg = false; sammy_btn_flg = false; peter_btn_flg = false; joey_btn_flg = false; // init button/sign visibility flag (initially visible) btn_sign_visible_flg = true; // true=show/false=hide // retrieve Coit Tower/Telegraph Hill background image coit_image = getImage(getCodeBase(),"images/coit.gif"); // retrieve Rat Pack Angels head buttons image heads_btns_image = getImage(getCodeBase(),"images/heads_btns.gif"); // retrieve Angel .gif images (2 frames per Angel) // Frank (Sinatra) images frank_image = getImage(getCodeBase(),"images/frank.gif"); // Dean (Martin) images dean_image = getImage(getCodeBase(),"images/dean.gif"); // Sammy (Davis, Jr.) images sammy_image = getImage(getCodeBase(),"images/sammy.gif"); // Peter (Lawford) images peter_image = getImage(getCodeBase(),"images/peter.gif"); // Joey (Bishop) images joey_image = getImage(getCodeBase(),"images/joey.gif"); // init Rat Pack Angels MediaTracker angels_MediaTracker = new MediaTracker(this); // load images into MediaTracker angels_MediaTracker.addImage(coit_image,0); angels_MediaTracker.addImage(heads_btns_image,1); angels_MediaTracker.addImage(frank_image,2); angels_MediaTracker.addImage(dean_image,3); angels_MediaTracker.addImage(sammy_image,4); angels_MediaTracker.addImage(peter_image,5); angels_MediaTracker.addImage(joey_image,6); } /* end method "init" */ /* "start()" * called when the applet becomes visible on screen */ public void start() { // start animator thread animation_Thread = new Thread(this); animation_Thread.start(); } /* end method "start" */ /* "run()" * called (repeatedly) by the Thread created in "start()" */ public void run() { // update animator thread while (Thread.currentThread() == animation_Thread) { // repaint (update) the screen repaint(); // begin: thread delay (125 milliseconds) try { Thread.sleep(125); } catch (InterruptedException e) { break; } // end: thread delay } // end "while (Thread.currentThread() == animation_Thread)" } /* end method "run" */ /* "stop()" * called when the applet is no longer visible on screen */ public void stop() { // stop animator thread if (animation_Thread != null) animation_Thread.stop(); animation_Thread = null; } /* end method "stop" */ /* "destroy()" * called just before the browser exits */ public void destroy() { /* dispose offscreen Graphics Object, Rat Pack composite buffer */ offRatPack_Graphics.dispose(); offRatPack_Graphics = null; } /* end method "destroy" */ /* "mouseDown()" * called when the mouse button is down */ public boolean mouseDown(Event evt, int x, int y) { return true; } /* end method "mouseDown" */ /* "mouseUp()" * called when the mouse button goes up */ public boolean mouseUp(Event evt, int x, int y) { // begin: Frank btn if ( ((x >= 5) && (x <= (5 + 62))) && ((y >= 228) && (y <= (228 + 87))) && btn_sign_visible_flg ) { // turn off other btns if (dean_btn_flg == true) dean_btn_flg = false; else if (sammy_btn_flg == true) sammy_btn_flg = false; else if (peter_btn_flg == true) peter_btn_flg = false; else if (joey_btn_flg == true) joey_btn_flg = false; // toggle if (frank_btn_flg == false) frank_btn_flg = true; else if (frank_btn_flg == true) frank_btn_flg = false; // force repaint repaint(); } // end: Frank btn // begin: Dean btn else if ( ((x >= 107) && (x <= (107 + 62))) && ((y >= 228) && (y <= (228 + 87))) && btn_sign_visible_flg ) { // turn off other btns if (frank_btn_flg == true) frank_btn_flg = false; else if (sammy_btn_flg == true) sammy_btn_flg = false; else if (peter_btn_flg == true) peter_btn_flg = false; else if (joey_btn_flg == true) joey_btn_flg = false; // toggle if (dean_btn_flg == false) dean_btn_flg = true; else if (dean_btn_flg == true) dean_btn_flg = false; // force repaint repaint(); } // end: Dean btn // begin: Sammy btn else if ( ((x >= 209) && (x <= (209 + 62))) && ((y >= 228) && (y <= (228 + 87))) && btn_sign_visible_flg ) { // turn off other btns if (frank_btn_flg == true) frank_btn_flg = false; else if (dean_btn_flg == true) dean_btn_flg = false; else if (peter_btn_flg == true) peter_btn_flg = false; else if (joey_btn_flg == true) joey_btn_flg = false; // toggle if (sammy_btn_flg == false) sammy_btn_flg = true; else if (sammy_btn_flg == true) sammy_btn_flg = false; // force repaint repaint(); } // end: Sammy btn // begin: Peter btn else if ( ((x >= 311) && (x <= (311 + 62))) && ((y >= 228) && (y <= (228 + 87))) && btn_sign_visible_flg ) { // turn off other btns if (frank_btn_flg == true) frank_btn_flg = false; else if (dean_btn_flg == true) dean_btn_flg = false; else if (sammy_btn_flg == true) sammy_btn_flg = false; else if (joey_btn_flg == true) joey_btn_flg = false; // toggle if (peter_btn_flg == false) peter_btn_flg = true; else if (peter_btn_flg == true) peter_btn_flg = false; // force repaint repaint(); } // end: Peter btn // begin: Joey btn else if ( ((x >= 413) && (x <= (413 + 62))) && ((y >= 228) && (y <= (228 + 87))) && btn_sign_visible_flg ) { // turn off other btns if (frank_btn_flg == true) frank_btn_flg = false; else if (dean_btn_flg == true) dean_btn_flg = false; else if (sammy_btn_flg == true) sammy_btn_flg = false; else if (peter_btn_flg == true) peter_btn_flg = false; // toggle if (joey_btn_flg == false) joey_btn_flg = true; else if (joey_btn_flg == true) joey_btn_flg = false; // force repaint repaint(); } // end: Joey btn // click atop background (?) toggle button/sign visibility else { // toggle (true=show/false=hide) if (btn_sign_visible_flg) btn_sign_visible_flg = false; else btn_sign_visible_flg = true; } // end "click atop background (?) toggle button/sign visibility" return true; } /* end method "mouseUp" */ /* "update()" * update the screen */ public void update(Graphics g) { // (intercepting "update" avoids background erase) // call "paint" paint(g); } /* end method "update" */ /* "paint()" * paint the screen */ public void paint(Graphics g) { // font Font txt_Font; // wait for images to laod before drawing if (angels_MediaTracker.checkAll(true) == true) { // draw Coit Tower/Telegraph Hill background image offRatPack_Graphics.drawImage(coit_image,0,0,this); // draw (and update) flying Rat Pack Angel image if ( frank_btn_flg || dean_btn_flg || sammy_btn_flg || peter_btn_flg || joey_btn_flg ) Draw_FlyingAngel(offRatPack_Graphics); // button/sign visibility flag if (btn_sign_visible_flg) { // draw heads buttons control panel Draw_HeadsButtons(offRatPack_Graphics); // animate LED sign (?) if ( !frank_btn_flg && !dean_btn_flg && !sammy_btn_flg && !peter_btn_flg && !joey_btn_flg) Animate_LED_Sign(offRatPack_Graphics); else // light Rat Packer's name in LED sign (?) LightName_LED_Sign(offRatPack_Graphics); } // end "if (btn_sign_visible_flg)" } // end "if (nun_MediaTracker.checkAll(true) == true)" // begin: write text message, "Loading Images..." else { // fill buffer with white paint offRatPack_Graphics.setColor(Color.white); offRatPack_Graphics.fillRect(0,0,APPLET_WDTH,APPLET_HGHT); // text font txt_Font = new Font("Helvetica", Font.PLAIN, 9); // set text string font offRatPack_Graphics.setFont(txt_Font); // set text string color offRatPack_Graphics.setColor(Color.black); // write/draw text message offRatPack_Graphics.drawString("Loading Images...",25,25); } // end: write text message, "Loading Images..." // frame entire buffer with black color offRatPack_Graphics.setColor(Color.black); offRatPack_Graphics.drawRect(0,0,APPLET_WDTH - 1,APPLET_HGHT - 1); // blast buffer to screen g.drawImage(offRatPack_Image,0,0,this); } /* end method "paint" */ } /* end class "RatPack" */ /* end file "RatPack.java" */