📄 dragon.java
字号:
// <html><body><pre>
// Dragon
// Applet Source Name [Dragon.java]
// 1996.2
// Source [ Junzo hagimoto ]
// 1998.5
// Author [Shigemitsu Shin ]
import java.applet.*; //傾僾儗僢僩僷僢働乕僕乮java.applet乯傪棙梡偡傞
import java.awt.*; //拪徾僂傿儞僪僂僣乕儖僉僢僩僷僢働乕僕乮java.awt乯傪棙梡偡傞
//Dragon僋儔僗偑Java僔僗僥儉偱昗弨揑偵採嫙偝傟傞Applet僋儔僗偐傜宲彸偝傟傞僒僽僋儔僗偱偁傞偙偲傪愰尵偡傞
//public偱愰尵偡傞偲丄Dragon僋儔僗偼懠偺僷僢働乕僕偐傜傕嶲徠壜擻偵側傞
//偙偺Dragon僋儔僗偼Runnable偲偄偆僀儞僞僼僃乕僗乮run儊僜僢僪傪幚憰偡傞乯傪宲彸偡傞
public class Dragon extends Applet implements Runnable {
//埲壓偼Dragon僋儔僗偺懏惈
Dimension d; //Dimension僋儔僗偺曄悢d偼暥帤僨乕僞偺暆偲崅偝傪娗棟偡傞
String s[]; //HTML偐傜撉傒崬傫偩暥帤僨乕僞傪奿擺偡傞偨傔偵丄String僋儔僗偺s僀儞僗僞儞僗傪嶌傞
Thread kicker = null;
int xScroll; //xScroll偼暥帤楍傪昞帵堟偺塃抂偐傜嵍抂傊僗僋儘乕儖偝偣傞偨傔偺X嵗昗傪娗棟偡傞
int y_Point; //暥帤楍偺昞帵埵抲偺Y嵗昗
Font font; //Font僋儔僗偼僼僅儞僩(font乯傪娗棟偡傞
int strHeight,strWidth; //暥帤楍偺暆偲崅偝偺曄悢
int maxText; //昞帵偡傞暥帤楍偺悢
int curTextCount=0 ; //尰嵼昤夋懳徾偲側傞暥帤楍偺攝楍揧偊帤乮攝楍偺壗斣栚偺梫慺偐傪帵偡僀儞僨僢僋僗斣崋乯傪帵偡
String fontcolor; //HTML偐傜撉傒崬傫偩僼僅儞僩偺怓傪奿擺偡傞偨傔偵丄String僋儔僗偺fontcolor僀儞僗僞儞僗傪嶌傞
Color color; //Color僋儔僗偼僼僅儞僩偺怓乮color乯傪娗棟偡傞
int red,green,blue; //僼僅儞僩偺怓傪奿擺偡傞曄悢
int rgb;
int random = 0; //僼僅儞僩偺怓傪儔儞僟儉偵昞帵偡傞偐偳偆偐傪寛傔傞曄悢
String background; //HTML偐傜撉傒崬傫偩攚宨怓傪奿擺偡傞偨傔偵丄String僋儔僗偺background僀儞僗僞儞僗傪嶌傞
Color bgcolor; //Color僋儔僗偼攚宨怓乮bgcolor乯傪娗棟偡傞
int bgred,bggreen,bgblue;//攚宨怓傪奿擺偡傞曄悢
int bgrgb;
int speed; //暥帤楍偑僗僋儘乕儖偡傞懍搙
Image offs; //Image僋儔僗偺僀儞僗僞儞僗offs傪梡堄偡傞
Graphics grf; //Image僀儞僗僞儞僗偵昤夋偡傞偨傔偵Graphics僋儔僗偺僀儞僗僞儞僗grf傪梡堄偡傞
char separated[]; //separated偼chr偺攝楍乮偡側傢偪暥帤楍偺暥帤乯傪奿擺偡傞偨傔偺傕偺
int charWidth; //chrWidth偼暥帤楍拞偺僇儗儞僩暥帤偺僒僀僘偱偁傞丄僾儘億乕僔儑僫儖僼僅儞僩偺応崌偼暥帤偛偲偵暥帤暆偑堎側傞偺偱偙偺曄悢偑昁梫偲側傞
float f[]; //float攝楍偼師偺弶婜壔張棟乮init儊僜僢僪乯偱幚峴偝傟傞嵗昗偺寁嶼寢壥傪奿擺偡傞偨傔偺傕偺 // ADD
int maxFloatArray= (int)(3.1415 * 10 * 2) ; //maxFloatArray偼float攝楍偺悢
//init儊僜僢僪偼傾僾儗僢僩偵懳墳偟偰偄傞Web儁乕僕乮HTML乯偑傾僋僥傿僽偵側偭偨偲偒丄傾僾儗僢僩傪弶婜壔偡傞偨傔偵巊偆儊僜僢僪
public void init() {
d = size(); //曄悢d傪size()偵傛偭偰弶婜壔偡傞丄傑偨size()偼傾僾儗僢僩偺昞帵堟傪HTML偐傜庢摼偡傞
xScroll = d.width; //xScroll傪昞帵堟偺暆d.width偱弶婜壔偡傞
offs = createImage( d.width, d.height); //昞帵堟偲摨偠僒僀僘偺價僢僩僀儊乕僕傪妋曐偡傞
grf = offs.getGraphics(); //價僢僩僀儊乕僕偵昤夋傪峴偆偨傔偵Graphics僀儞僗僞儞僗傪庢摼偡傞
f = new float[maxFloatArray]; //X嵗昗偺弶婜抣
double x = 3.1; //X嵗昗偺x偑3.1偐傜-3.1傑偱偺sin(x)丒丒丒傪Y嵗昗乮崅偝乯偲偟偰媮傔丄float攝楍偵奿擺偡傞
for(int i=0; i < maxFloatArray; i++ ){
f[i] = (float)Math.sin(x)*(float)Math.cos(x)*(float)Math.exp(x) ;
// f[i] = (float)Math.sin(x)*(float)Math.cos(x)*(float)Math.exp(x)*(float)Math.log(x) ;
x -= 0.1;
}
String param = getParameter( "speed" ); //param偼name偲value偱峔惉偝傟丄Java僜乕僗乮傾僾儗僢僩僜乕僗乯偺拞偐傜getParameter偱name乮偙偺応崌偼speed乯傪堷悢偵偡傞偙偲偱丄HTML偺value偵偐偐傟偨撪梕傪String僀儞僗僞儞僗偲偟偰庢摼偡傞
speed = (param != null) ? Integer.parseInt(param) : 2; //傕偟懳墳偡傞name偑HTML拞偵婰嵹偝傟偰偄側偄応崌偼null傪曉偟丄偦偺抣乮value乯偼default抣偲偟偰1傪偲傝傑偡
if(speed < 1 || speed > 5 ){ //傑偨speed偺value偑1傛傝彫偝偄偐5傛傝戝偒偄応崌傕speed偺抣偼1傪偲傝傑偡
speed = 2;
}
param = getParameter( "maxText" ); //maxText偺value抣偼暥帤楍偺悢
maxText = (param != null) ? Integer.parseInt(param) : 1; //getParameter()偑曉偡抣偼String抣側偺偱丄偦傟傪悢抣偵曄姺偡傞丄傑偨HTML偵暥帤楍悢偑掕媊偝傟偰偄側偄応崌偼default抣偲偟偰1傪曉偡
s = new String[maxText]; //暥帤楍攝楍s[]偵幚嵺偺攝楍傪暥帤楍悢偩偗惗惉偡傞丄new偼String僀儞僗僞儞僗偺攝楍傪儊儌儕偵奿擺偡傞偙偲傪堄枴偡傞
int i=0; //maxText偺悢偩偗暥帤楍傪庢摼偟丄String僀儞僗僞儞僗傪new偟偰丄暥帤楍攝楍偵暥帤楍傪奿擺偡傞
do{
param = getParameter( "text"+ (i+1) );
if(param != null ){
s[i] = new String(param);
}else{
if( i==0 ){
s[i] = "Java"; //default抣偼Java偲偡傞
}
maxText = i+1;
}
}while( param != null && ++i != maxText );
//////////////////////////////////////////////////////////////////////////
// font = new Font("TimesRoman",Font.BOLD,fontsize);
font= initFont();
setFont(font);
//////////////////////////////////////////////////////////////////////////
strHeight =(getFontMetrics(font)).getLeading() ;
strHeight -=(getFontMetrics(font)).getDescent() ;
strHeight +=(getFontMetrics(font)).getAscent() ;
y_Point = (d.height + strHeight
- (getFontMetrics(font)).getDescent() ) / 2;
fontcolor = getParameter("fontcolor");
if(fontcolor == null){
fontcolor = "black";
}
if(fontcolor.equals("setcolor")){
param = getParameter("rgb");
int nLen_rgb = param.length();
try{
if(nLen_rgb == 6){
rgb = Integer.parseInt(param,16);
}
else{
rgb = Integer.parseInt("000000",16);
}
}
catch (NumberFormatException e){
rgb = Integer.parseInt("000000",16);
}
color = new Color(rgb);
}
else{
if(fontcolor.equals("black")){red = 0; green = 0; blue = 0;}
else if(fontcolor.equals("blue")){red = 0; green = 0; blue = 255;}
else if(fontcolor.equals("cyan")){red = 0; green = 255; blue = 255;}
else if(fontcolor.equals("darkgray")){red = 169; green = 169; blue = 169;}
else if(fontcolor.equals("gray")){red = 128; green = 128; blue = 128;}
else if(fontcolor.equals("green")){red = 0; green = 255; blue = 0;}
else if(fontcolor.equals("lightgray")){red = 211; green = 211; blue = 211;}
else if(fontcolor.equals("magenta")){red = 255; green = 0; blue = 255;}
else if(fontcolor.equals("orange")){red = 255; green = 165; blue = 0;}
else if(fontcolor.equals("pink")){red = 255; green = 192; blue = 203;}
else if(fontcolor.equals("red")){red = 255; green = 0; blue = 0;}
else if(fontcolor.equals("white")){red = 255; green = 255; blue = 255;}
else if(fontcolor.equals("yellow")){red = 255; green = 255; blue = 0;}
else if(fontcolor.equals("random")){random = 1; red = 0; green = 0; blue = 0;}
else{red = 0; green = 0; blue = 0;}
color = new Color(red,green,blue);
}
background = getParameter("background");
if(background == null){
background = "white";
}
if(background.equals("setcolor")){
param = getParameter("bgrgb");
int nLen_bgrgb = param.length();
try{
if(nLen_bgrgb == 6){
bgrgb = Integer.parseInt(param,16);
}
else{
bgrgb = Integer.parseInt("ffffff",16);
}
}
catch (NumberFormatException e){
bgrgb = Integer.parseInt("ffffff",16);
}
bgcolor = new Color(bgrgb);
}
else{
if(background.equals("black")){bgred = 0; bggreen = 0; bgblue = 0;}
else if(background.equals("blue")){bgred = 0; bggreen = 0; bgblue = 255;}
else if(background.equals("cyan")){bgred = 0; bggreen = 255; bgblue = 255;}
else if(background.equals("darkgray")){bgred = 169; bggreen = 169; bgblue = 169;}
else if(background.equals("gray")){bgred = 128; bggreen = 128; bgblue = 128;}
else if(background.equals("green")){bgred = 0; bggreen = 255; bgblue = 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -