アットウィキロゴ

0818

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

class game0818 extends Frame implements MouseListener{
PixelGrabber pg;
Color col;
Image img;
int w=500;
int h=500;
int size;
int red,green,blue;
int pix[]=new int[w*h];
int memor[][]=new int[h][w];
int memog[][]=new int[h][w];
int memob[][]=new int[h][w];
int face[][]=new int[h][w];
int body[][]=new int[h][w];
int chfacex[][]=new int[h][w];  
int chfacey[][]=new int[h][w];      
double ch[]=new double[h];
int mx,nx,m,n;
int m1,n1,m2,n2,m3,n3,m4,n4;    
int dx[]=new int[4];
int dy[]=new int[4];
int sx,sy;
int j;
double kakudo;
String s1,s2,s3,s4;
Button bu1,bu2,bu3,bu4,bu5,bu6;

game0818(){  

s1="kanno.jpg";
catchimg(s1);  

for (mx=0;mx<h;mx++){
for (nx=0;nx<w;nx++){
j=0;
if(memor[mx][nx]<250)j=j+1;
if(memog[mx][nx]<250)j=j+1;
if(memob[mx][nx]<250)j=j+1;
if(mx<211)j=j+1;
if(j==4)face[mx][nx]=100;
}
}

for (mx=0;mx<h;mx++){
for (nx=0;nx<w;nx++){
j=0;
if(memor[mx][nx]<250)j=j+1;
if(memog[mx][nx]<250)j=j+1;
if(memob[mx][nx]<250)j=j+1;
if(mx>209)j=j+1;
if(j==4)body[mx][nx]=100;
}
}


for (mx=0;mx<500;mx++){
kakudo=5*(210-mx);
if(kakudo>30)kakudo=30;
if(kakudo<0)kakudo=0;
ch[mx]=kakudo;
}


for (mx=0;mx<500;mx++){
for (nx=0;nx<500;nx++){
kakudo=ch[mx];
n1=(int)rotx(kakudo,nx-130,mx-210)+130;
m1=(int)roty(kakudo,nx-130,mx-210)+210;
if(n1>499)n1=499;
if(n1<0)n1=0;
if(m1>499)m1=499;
if(m1<0)m1=0;
chfacex[mx][nx]=n1;
chfacey[mx][nx]=m1;
}
}




this.addMouseListener(this);

}

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

public void paint( Graphics g ) {

g.setColor(Color.blue);
g.fillRect(0,0,700,700);
mx=1;
nx=1;
for (mx=0;mx<499;mx++){
for (nx=0;nx<499;nx++){  
dx[0]=chfacex[mx][nx];
dy[0]=chfacey[mx][nx];
dx[1]=chfacex[mx+1][nx];
dy[1]=chfacey[mx+1][nx];
dx[2]=chfacex[mx+1][nx+1];
dy[2]=chfacey[mx+1][nx+1];
dx[3]=chfacex[mx][nx+1];
dy[3]=chfacey[mx][nx+1];
g.setColor(new Color(memor[mx][nx],memog[mx][nx],memob[mx][nx]));  
if(face[mx][nx]>50)g.fillPolygon(dx,dy,4);
}
}



for (mx=0;mx<500;mx++){
for (nx=0;nx<500;nx++){  
g.setColor(new Color(memor[mx][nx],memog[mx][nx],memob[mx][nx]));  
if(body[mx][nx]>50)g.fillRect(nx,mx,1,1);
}
}

g.setColor(Color.red);
g.fillRect(sx,sy,5,5);

}

void catchimg(String s){

img = createImage(w,h);
img = Toolkit.getDefaultToolkit().getImage(s);
pg = new PixelGrabber(img,0,0,w,h,pix,0,w);

try{pg.grabPixels();}catch(InterruptedException ie){}
m=0;
n=0;
for(int i=0;i<w*h;i++){
int p = pix[i];
col=new Color(pix[i]);
red=col.getRed();
green=col.getGreen();
blue=col.getBlue();
memor[m][n]=red;
memog[m][n]=green;
memob[m][n]=blue;
n=n+1;
if (n==w)m=m+1;
if (n==w)n=0;
}

}




public void mouseClicked(MouseEvent e) {
double mex,mey;
mey=e.getY() ;
mex=e.getX();  
sx=(int)mex;
sy=(int)mey;        
repaint();  
System.out.println(sx);
System.out.println(sy);  
}
    public void mousePressed(MouseEvent e) {
        
    }
    public void mouseReleased(MouseEvent e) {
        
    }
    public void mouseEntered(MouseEvent e) {
        
    }
    public void mouseExited(MouseEvent e) {
        
    }

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;
}

  
}
最終更新:2011年03月02日 17:55