J2ME特效-粒子類比瀑布

來源:互聯網
上載者:User

package ball;</p><p>import java.util.Random;</p><p>import javax.microedition.lcdui.Canvas;<br />import javax.microedition.lcdui.Graphics;<br />import javax.microedition.lcdui.Image;</p><p>public class WaterFall extends Canvas implements Runnable<br />{<br />final int Max = 1000;<br />wparticle p[];<br />int AppletWidth,AppletHeight,XCenter,YCenter;<br />Image OffScreen;<br />Graphics drawOffScreen;<br />Thread pThread;<br />Random r ;<br />public WaterFall()<br />{<br />setFullScreenMode(true);<br />}<br />public void init()<br />{<br />AppletWidth = getWidth();<br />AppletHeight = getHeight();<br />p = new wparticle[Max];<br />r = new Random();<br />for(int i=0; i<Max; i++)<br />p[i] = new wparticle(r); </p><p>OffScreen = Image.createImage(AppletWidth,AppletHeight);<br />drawOffScreen = OffScreen.getGraphics();<br />drawOffScreen.setColor(0x0);<br />}<br />public void start()<br />{<br />pThread = new Thread(this);<br />pThread.start();<br />}<br />public void stop()<br />{<br />pThread = null;<br />}<br />public void update(Graphics g)<br />{<br />paint(g);<br />}<br />public void paint(Graphics g)<br />{<br />//g.drawImage(OffScreen,0,0,this);<br />g.drawImage(OffScreen, 0, 0, Graphics.TOP | Graphics.LEFT);<br />}<br />public void run()<br />{<br />boolean reset = false;<br />int i, t =0;<br />while(true)<br />{<br />//drawOffScreen.clearRect(0,0,AppletWidth,AppletHeight);<br />//drawOffScreen.setColor(Color.white);<br />//drawOffScreen.drawLine(0,15,10,15);<br />drawOffScreen.setColor(0x0);<br />drawOffScreen.fillRect(0, 0, AppletWidth, AppletHeight);<br />drawOffScreen.setColor(0xffffff);<br />drawOffScreen.drawLine(0,15,10,15); </p><p>for(i=0; i<Max; i++)<br />{<br />//drawOffScreen.fillOval((int)p[i].X,(int)p[i].Y,3,3);<br />drawOffScreen.setColor(0xffffff);<br />drawOffScreen.fillArc((int)p[i].X,(int)p[i].Y,3,4, 0, 360);<br />p[i].X = p[i].X + p[i].Vx;<br />if(p[i].X > 10)<br />{<br />p[i].Y += p[i].Vy*p[i].time / 1000;<br />p[i].Vy = (int) 9.8*p[i].time;<br />p[i].time++;<br />}<br />if(p[i].Y > AppletHeight)<br />{<br />p[i].reset(r);<br />}<br />}<br />repaint();<br />try<br />{<br />Thread.sleep(100);<br />}<br />catch (InterruptedException e) { }<br />}<br />}<br />}<br />class wparticle<br />{<br />double X,Y;<br />double Vx,Vy;<br />int time;<br />public wparticle(Random r)<br />{<br />reset( r);<br />}<br />public void reset(Random r)<br />{<br />X = (int) (r.nextDouble() * -40);<br />Y = (int) (r.nextDouble() * 5 + 10);<br />Vx = r.nextDouble()*3 + 1.0;<br />Vy = 0;<br />time = 0;<br />}<br />}<br />

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.