質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1023閲覧

花火

kisaragizinzin7

総合スコア90

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2015/11/18 02:37

連続で質問すみません。
先ほど質問させていただいた花火のサンプルコードが下記になります。

コード public class hanabi2 extends Applet implements Runnable, MouseListener{ int MaxRocketNumber=10; int MaxRocketExplosionEnergy=800; int MaxRocketPatchNumber=80; int MaxRocketPatchLength=80; int Gravity=40; Rocket rocket[]; Thread launcher=null; boolean fg = true; int sx[],sy[]; int mx, my; int speed = 50; int spc = 3; AudioClip don; public void init() { mx=450;//getSize().width; my= 350;//getSize().height; don = getAudioClip(getDocumentBase(), "don.au"); rocket = new Rocket[MaxRocketNumber]; for (int i = 0; i < MaxRocketNumber; i++) rocket[i] = new Rocket(mx, my, Gravity); sx=new int[150]; sy=new int[150]; for(int i=0;i<150;i++){ sx[i]=(int)(Math.random()*mx); sy[i]=(int)(Math.random()*Math.random()*my); } addMouseListener(this); } public void start() { if(launcher ==null){ fg = true; launcher =new Thread(this); launcher.start(); } } public void run() { int i,e=0, p=0, l=0; long s =0; int mg = 0; Graphics g =getGraphics(); while (fg == true) { try { launcher.sleep(speed); } catch(InterruptedException x) { } e = (int)(Math.random()*MaxRocketExplosionEnergy*3/4)+ MaxRocketExplosionEnergy / 4 + 1; p = (int)(Math.sqrt(Math.random())*MaxRocketPatchNumber*3/4)+MaxRocketPatchNumber/4+1; l = (int)(Math.random()*MaxRocketPatchLength*3/4)+ MaxRocketPatchLength/4+1; s = (long)(Math.random()*1000); for (i=0;i<MaxRocketNumber;++i) { if (rocket[i].sleep && Math.random()*Math.random()* MaxRocketNumber*l<1 && fg){ if(++mg % 7 == 0)repaint(); rocket[i].init(e, p, l, s, my); rocket[i].start(); } rocket[i].show(fg, g, don); } } } public void paint(Graphics g){ g.setColor(new Color(0,0,0)); g.fillRect(0, 0, 450, 350); g.setColor(new Color(255,255,200)); for(int i=0;i<150;i++){ g.drawLine(sx[i],sy[i],sx[i],sy[i]); } } public void mousePressed(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} } class Rocket{ public boolean sleep = true, fire=false; private int energy, patch, length; private int wx, hy, x, y, ox, oy, vx[], vy[]; private int t, h, red, blue, green; private int a, b, gravity; private int ly; private int time; private Random random; private AudioClip don; Thread launcher; private double cosA; private double sinA; public Rocket(int a,int b,int g) { wx=a; hy=b; gravity=g; } public void init(int e,int p,int l,long seed, int my) { int i; ly=my-50; double qx,qy,qz,ux,uy,uz; energy=e; patch=p; length=l; h=0; random=new Random(seed); vx =new int[patch]; vy =new int[patch]; red =(int)(random.nextDouble() * 128) + 128; blue =(int)(random.nextDouble() * 128) + 128; green =(int)(random.nextDouble() * 128) + 128; ox=(int)(Math.random()*wx/2)+wx/4; oy=(int)(Math.random()*hy/2)+hy/4; for(i=0;i<patch;++i) { qx=Math.random(); qy=Math.random(); ux=qx-0.5; uy=qy-0.5; if((ux*ux+uy*uy)<0.25){ vx[i]=(int)(qx*energy)-energy/2; vy[i]=(int)(qy*energy*7/8)-energy/8; } else --i; } } public void start() { t=0; sleep=false; } //爆発する前の上がっていくとこ public void line(Graphics g){ if(h<=(ly-oy)){ g.setColor(new Color(0,0,0)); g.drawLine(ox,(ly-h)-3,ox,(ly-h)+5); if (h <(ly-oy)){ g.setColor(new Color(160,180,255)); g.drawLine(ox,(ly-h),ox,(ly-h)-3); } } h=h+4; if(h>=(ly-oy)) fire=true; else fire=false; } public synchronized void show(boolean fg,Graphics g,AudioClip don) { if (!sleep) { if(fg){ line(g); if(fire){ if (t<length*4/5) { int i,c; int tb =6; if(length < tb) tb =length ; if(t == tb) don.play(); double s; Color color; c =(int)(random.nextDouble()*64)-32+red; if (c >= 0 && c <256) red=c; c =(int)(random.nextDouble()*64)-32+blue; if (c >= 0 && c <256) blue=c; c =(int)(random.nextDouble()*64)-32+green; if (c >= 0 && c <256) green=c; color = new Color(red,blue,green); for (i=0;i<patch;++i) { s = (double)t/100; x = (int)(vx[i]*s); y = (int)(vy[i]*s-gravity*s*s); g.setColor(color); g.drawLine(ox+x,oy-y,ox+x,oy-y); if (t>=length/2) { for (int j=0;j<2;++j){ s = (double)((t-length/2)*2+j)/100; x = (int)(vx[i]*s); y = (int)(vy[i]*s-gravity*s*s); g.setColor(new Color(0,0,0)); g.drawLine(ox+x,oy-y,ox+x,oy-y); } } } ++t; } else sleep=true; } } } } }

Rocketクラスがわからないので解説お願いしたいです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KiyoshiMotoki

2015/11/18 07:24

> Rocketクラスがわからない 具体的に何がわからないのか、記載してください。 他のご質問に記載されているのでしたら、全ての情報をこのご質問にまとめた上で、他のものはクローズ(解決済み?)してください。 その方が、回答が付きやすくなると思いますよ。
guest

回答1

0

自己解決

自己解決できました。

投稿2016/01/06 08:25

kisaragizinzin7

総合スコア90

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問