import java.awt.*;
import java.awt.event.*;
class game0905 extends Frame{
int m,n,m1,n1;
int face[][]=
new int
[101][101];
int body[][]=new int[101][101];
int rarm[][]=new int[101][101];
int larm[][]=new int[101][101];
int rleg[][]=new int[101][101];
int lleg[][]=new int[101][101];
int chch[][]=new int[101][101];
int ch[][]=new int[101][101];
int px,py,naga;
int j;
double kakudo,kakudox;
public static void main(String[] args) {
game0905 f = new game0905();
f.setSize(700,700);
f.setBackground(Color.blue) ;
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){public void
windowClosing(WindowEvent e){System.exit(0);}});
}
game0905(){
robot();
kakudo=30;
px=50;
py=50;
naga=40;
chface(kakudo,px,py,naga,face);
kakudo=30;
px=35;
py=80;
naga=-10;
chface(kakudo,px,py,naga,lleg);
kakudo=30;
px=65;
py=80;
naga=-10;
chface(kakudo,px,py,naga,rleg);
}
public void paint( Graphics g ) {
g.setColor(Color.blue);
g.fillRect(0,0,700,700);
g.setColor(Color.red);
for (m=0;m<
100;m++){
for (n=0;n<100;n++){
if(face[m][n]>50)g.fillRect(100+5*n,100+5*m,5,5);
}
}
for (m=0;m<100;m++){
for (n=0;n<100;n++){
if(body[m][n]>50)g.fillRect(100+5*n,100+5*m,5,5);
}
}
g.setColor(Color.red);
for (m=0;m<100;m++){
for (n=0;n<100;n++){
if(rleg[m][n]>50)g.fillRect(100+5*n,100+5*m,5,5);
}
}
g.setColor(Color.red);
for (m=0;m<100;m++){
for (n=0;n<100;n++){
if(lleg[m][n]>50)g.fillRect(100+5*n,100+5*m,5,5);
}
}
g.setColor(Color.red);
for (m=0;m<100;m++){
for (n=0;n<100;n++){
if(rarm[m][n]>50)g.fillRect(100+5*n,100+5*m,5,5);
}
}
g.setColor(Color.red);
for (m=0;m<100;m++){
for (n=0;n<100;n++){
if(larm[m][n]>50)g.fillRect(100+5*n,100+5*m,5,5);
}
}
}
public static double rotx(double kakudo,double x,double y){
double kaku;
double a1,a2,a3,a4;
double x1,y1;
kaku = kakudo*Math.PI/180;
a1=Math.cos(kaku);
a2=-Math.sin(kaku);
a3=Math.sin(kaku);
a4=Math.cos(kaku);
x1=a1*x+a2*y;
y1=a3*x+a4*y;
return x1;
}
public static double roty(double kakudo,double x,double y){
double kaku;
double a1,a2,a3,a4;
double x1,y1;
kaku = kakudo*Math.PI/180;
a1=Math.cos(kaku);
a2=-Math.sin(kaku);
a3=Math.sin(kaku);
a4=Math.cos(kaku);
x1=a1*x+a2*y;
y1=a3*x+a4*y;
return y1;
}
void robot(){
for(m=10;m<30;m++){
for(n=30;n<70;n++){
face[m][n]=100;
}
}
for(m=30;m<50;m++){
for(n=40;n<60;n++){
face[m][n]=100;
}
}
for(m=50;m<70;m++){
for(n=10;n<20;n++){
larm[m][n]=100;
}
}
for(m=50;m<70;m++){
for(n=80;n<90;n++){
rarm[m][n]=100;
}
}
for(m=50;m<80;m++){
for(n=20;n<80;n++){
body[m][n]=100;
}
}
for(m=80;m<90;m++){
for(n=30;n<40;n++){
lleg[m][n]=100;
}
}
for(m=80;m<90;m++){
for(n=60;n<70;n++){
rleg[m][n]=100;
}
}
}
void chface(double kakudo,int px,int py,int naga,int[][] ch){
for (m=0;m<100;m++){
for (n=0;n<100;n++){
chch[m][n]=0;
}
}
for (m=0;m<100;m++){
for (n=0;n<100;n++){
kakudox=(py-m)*kakudo/naga;
if(kakudox>kakudo)kakudox=kakudo;
if(kakudox<0)kakudox=0;
n1=(int)rotx(kakudox,n-px,m-py)+px;
m1=(int)roty(kakudox,n-px,m-py)+py;
if(n1<0)n1=0;
if(m1<0)m1=0;
if(n1>99)n1=99;
if(m1>99)m1=99;
if (ch[m][n]<50)chch[m1][n1]=30;
if (ch[m][n]>50)chch[m1][n1]=100;
}
}
for (m=1;m<100;m++){
for (n=1;n<100;n++){
if(chch[m][n]==0)chch[m][n]=chch[m][n-1];
}
}
for (m=1;m<100;m++){
for (n=1;n<100;n++){
ch[m][n]=chch[m][n];
}
}
}
}
最終更新:2011年03月02日 23:47