Very good source program

xiaoxiao2021-03-06  76

IMPORT JAVA.Applet.Applet;

Import java.applet.audioclip;

Import java.awt. *;

Import java.awt.image.MemoryImagesource;

Import java.util.random;

Public Class Jhanabi Extends Applet IMPLEments Runnable

{

Private int m_nappx;

PRIVATE INT M_NAPPY;

Private int m_centerx;

PRIVATE INT M_CENTERY;

Private Int Mousex;

PRIVATE INT M_MOUSEY;

Private int m_sleeptime;

Private boolean isrror;

Private boolean m_ispaintfinished;

Boolean isrunning;

Boolean isinitialized;

Thread Runner;

INT PIX0 [];

MemoryImagesource OFFIMAGAGAGE;

Image dbimg;

Int pixls;

INT PIXLS2;

Random Rand;

INT BITS;

Double bit_px [];

Double bit_py [];

Double Bit_VX [];

Double Bit_vy [];

INT bit_sx [];

INT bit_sy [];

INT bit_l [];

INT bit_f [];

INT bit_p [];

INT bit_c [];

INT bit_max;

INT bit_sound;

Int ru;

Int rw;

Audioclip Sound1;

Audioclip Sound2;

Public jhanabi ()

{

m_mousex = 0;

m_mousey = 0;

m_sleeptime = 5;

ISERROR = false;

Isinitialized = false;

Rand = new random ();

Bits = 10000;

Bit_px = new double [bits];

Bit_py = new double [bits];

Bit_vx = new double [bits];

Bit_vy = new double [bits];

Bit_sx = new int [bits];

Bit_sy = new int [bits];

Bit_l = new int [bits];

Bit_f = new int [bits];

Bit_p = new int [bits];

Bit_c = new int [bits];

Ru = 50;

RV = 50;

}

Public void init ()

{

String s =

GetParameter ("Para_BITS");

IF (s! = null)

{

Bits = integer.parseint (s);

}

s = getParameter ("para_max");

IF (s! = null)

{

Bit_max = integer.parseint (s);

}

s = getParameter ("para_blendx");

IF (s! = null)

{

Ru = integer.parseint (s);

}

s = getParameter ("para_blendy");

IF (s! = null)

{

RV = integer.parseint (s);

}

s = getParameter ("Para_Sound");

IF (s! = null)

{

Bit_sound =

Integer.Parseint (s);

}

m_nappx = size (). width;

M_nAppy = size (). HEIGHT;

m_centerx = m_nappx / 2;

m_centery = m_nappy / 2;

m_mousex = m_centerx;

m_mousey = m_centery;

Resize (m_nAppx, m_nappy);

Pixls = m_nappx * m_nappy;

Pixls2 = pixls - m_nappx * 2;

PIX0 = new int [pixls];

OFFIMAGE = New

MemoryImagesource (m_nappx, m_nappy, pix0, 0, m_nappx);

OFFIMAGE.SETANIMATED (TRUE);

Dbimg = CREATEIMAGE (OFFIMAGE);

For (int i = 0; i

{

PIX0 [i] = 0xff000000;

}

Sound1 =

GetaudioClip (GetDocumentBase (), "firework.au");

Sound2 = getaudioclip (getDocumentbase (), "syu.au");

For (int J = 0; j

{

Bit_f [j] = 0;

}

Isinitialized = true;

START ();

}

Public void Run ()

{

While (! isinitialized)

{

Try

{

Thread.sleep (200L);

}

Catch (InterruptedException InterruptedException) {}

}

DO

{

For (int i = 0; i

{

INT j = pix0 [i];

INT K = PIX0 [i 1];

INT L = PIX0 [i m_nappx];

INT I1 = PIX0 [i m_nappx 1];

INT J1 = (J & 0xFF0000) >> 16;

INT K1 = ((((k & 0xff0000) >> 16) - J1) * RU >> 8) J1;

J1 = (j & 0xff00) >> 8;

INT L1 = (((k & 0xff00) >> 8) - J1) * RU >> 8) J1;

J1 = J & 0xFF;

INT I2 = ((k & 0xFF) - J1) * RU >> 8) J1;

J1 = (l & 0xff0000) >> 16;

INT J2 = ((((((((((I1 & 0xFF0000) >> 16) - J1) * RU >> 8) J1;

J1 = (l & 0xff00) >> 8;

INT K2 = (((((i1 & 0xFF00) >> 8) - J1) * RU >> 8) J1; J1 = L & 0xFF;

INT L2 = ((((i1 & 0xFF) - J1) * RU >> 8) J1;

INT i3 = ((J2 - K1) * RV >> 8) K1;

INT J3 = ((k2 - l1) * RV >> 8) L1;

INT K3 = ((L2 - I2) * RV >> 8) I2;

PIX0 [I] = i3 << 16 | J3 << 8 | K3 | 0xff000000;

}

rend ();

OFFIMAGE.NEWPIXELS (0, 0, M_NAPPX, M_NAPPY);

Try

{

Thread.sleep (m_sleeptime);

}

Catch (InterruptedException1) {}

WHILE (TRUE);

}

Public void Update (Graphics G)

{

Paint (g);

}

Public void Paint (Graphics G)

{

g.drawImage (dbimg, 0, 0, this);

}

Public void start ()

{

IF (iSerror)

{

Return;

}

Isorunning = true;

IF (runner == null)

{

Runner = new thread (this);

Runner.start ();

}

}

Public void stop ()

{

IF (runner! = NULL)

{

Runner.stop ();

Runner = NULL;

}

}

Public Boolean Mousemove (Event Event, INT I, INT J)

{

m_mousex = i;

m_mousey = j;

Return True;

}

Public Boolean MouseDown (Event Event, Int I, INT J)

{

m_mousex = i;

m_mousey = j;

INT k = (int) () * 256d);

INT L = (int) () * 256d);

INT I1 = (int) () * 256d);

INT J1 = K << 16 | L << 8 | I1 | 0xff000000;

INT K1 = 0;

For (int L1 = 0; l1

{

IF (bit_f [l1]! = 0)

{

CONTINUE;

}

Bit_px [l1] = m_mousex;

Bit_py [l1] = m_mousey;

Double d = rand.nextdouble () * 6.2800000000000002d;

Double D1 = rand.nextdouble ();

Bit_vx [l1] = math.sin (d) * d1;

Bit_vy [l1] = math.cos (d) * D1;

Bit_L [l1] = (int) () * 100D) 100;

Bit_p [l1] = (int) () * 3D); bit_c [l1] = j1;

Bit_sx [l1] = m_mousex;

Bit_sy [l1] = m_nappy - 5;

Bit_f [l1] = 2;

IF ( k1 == bit_max)

{

Break;

}

}

IF (bit_sound> 1)

{

Sound2.Play ();

}

Return True;

}

Public Boolean MouseExit (Event Event, Int i, Int J)

{

m_mousex = i;

m_mousey = j;

Return True;

}

void rend ()

{

Boolean flag = false;

Boolean Flag1 = FALSE;

Boolean flag2 = false;

For (int i = 0; i

{

Switch (bit_f [i])

{

DEFAULT:

Break;

Case 1: // '/ 001'

Bit_vy [i] = rand.nextdouble () / 50D;

Bit_px [i] = bit_vx [i];

Bit_py [i] = bit_vy [i];

Bit_L [I] -;

IF (bit_l [i] == 0 || Bit_px [i] <0.0d || bit_py [i] <0.0d || bit_px [i]> (double) m_nappx || bit_py [i]> (m_nappy - 3))

{

Bit_c [i] = 0xff000000;

Bit_f [i] = 0;

Else

IF (bit_p [i] == 0)

{

IF ((int) () * 2D) == 0)

{

Bit_set ((int) bit_px [i], (int) bit_py [i], -1);

}

Else

{

Bit_set ((int) bit_px [i], (int) bit_py [i], bit_c [i]);

}

Break;

Case 2: // '/ 002'

Bit_sy [i] - = 5;

IF (Double) Bit_SY [i] <= bit_py [i])

{

Bit_f [i] = 1;

Flag2 = True;

}

IF ((int) () * 20D) == 0)

{

INT j = (int) () * 2D);

INT k = (int) () * 5D);

Bit_set (bit_sx [i] j, bit_sy [i] k, -1);

}

Break;

}

}

IF (Flag2 && bit_sound> 0)

{

Sound1.Play ();

}

}

Void bit_set (INT I, INT J, INT K)

{

INT L = i j * m_nappx;

PIX0 [L] = K;

}

}

转载请注明原文地址:https://www.9cbs.com/read-93913.html

New Post(0)