アットウィキロゴ

0907x

import java.awt.*;
import java.awt.event.*;

class game0907 extends Frame implements Runnable{

int m,n,m1,n1;

int face[][]=new int[101][101];
int chface[][]=new int[101][101];
int chrleg[][]=new int[101][101];
int chlleg[][]=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 px,py,naga;
int j;
double kakudo,kakudox;

public static void main(String[] args) {
game0907 f = new game0907();
f.setSize(700,700);
f.setBackground(Color.blue) ;
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){public void
windowClosing(WindowEvent e){System.exit(0);}});
}


game0907(){

robot();

kakudo=30;
px=35;
py=80;
naga=-10;
seekchmodel(kakudo,px,py,naga,lleg,chlleg);

kakudo=30;
px=65;
py=80;
naga=-10;
seekchmodel(kakudo,px,py,naga,rleg,chrleg);


Thread th=new Thread(this);
th.start();

}


public void run(){
int t;
t=0;
kakudo=0;
while(t<100){
kakudo=kakudo+5;
if(kakudo>30)kakudo=0;
px=50;
py=50;
naga=40;
seekchmodel(kakudo,px,py,naga,face,chface);
repaint();
try{ Thread.sleep(300); }
catch(InterruptedException e){}
t=t+1;
}

}


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(chface[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(chrleg[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(chlleg[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;
}
}

}


public void seekchmodel(double kakudo,int px,int py,int naga,int[][] model,int[][] chmodel){

for (m=0;m<100;m++){
for (n=0;n<100;n++){
chmodel[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 (model[m][n]<50)chmodel[m1][n1]=30;
if (model[m][n]>50)chmodel[m1][n1]=100;
}
}


for (m=1;m<100;m++){
for (n=1;n<100;n++){
if(chmodel[m][n]==0)chmodel[m][n]=chmodel[m][n-1];
}
}

}





}
最終更新:2011年03月03日 00:20