J2ME特效-粒子模拟瀑布
2010-08-16 12:08
309 查看
package ball; import java.util.Random; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; public class WaterFall extends Canvas implements Runnable { final int Max = 1000; wparticle p[]; int AppletWidth,AppletHeight,XCenter,YCenter; Image OffScreen; Graphics drawOffScreen; Thread pThread; Random r ; public WaterFall() { setFullScreenMode(true); } public void init() { AppletWidth = getWidth(); AppletHeight = getHeight(); p = new wparticle[Max]; r = new Random(); for(int i=0; i<Max; i++) p[i] = new wparticle(r); OffScreen = Image.createImage(AppletWidth,AppletHeight); drawOffScreen = OffScreen.getGraphics(); drawOffScreen.setColor(0x0); } public void start() { pThread = new Thread(this); pThread.start(); } public void stop() { pThread = null; } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { // g.drawImage(OffScreen,0,0,this); g.drawImage(OffScreen, 0, 0, Graphics.TOP | Graphics.LEFT); } public void run() { boolean reset = false; int i, t =0; while(true) { // drawOffScreen.clearRect(0,0,AppletWidth,AppletHeight); // drawOffScreen.setColor(Color.white); // drawOffScreen.drawLine(0,15,10,15); drawOffScreen.setColor(0x0); drawOffScreen.fillRect(0, 0, AppletWidth, AppletHeight); drawOffScreen.setColor(0xffffff); drawOffScreen.drawLine(0,15,10,15); for(i=0; i<Max; i++) { // drawOffScreen.fillOval((int)p[i].X,(int)p[i].Y,3,3); drawOffScreen.setColor(0xffffff); drawOffScreen.fillArc((int)p[i].X,(int)p[i].Y,3,4, 0, 360); p[i].X = p[i].X + p[i].Vx; if(p[i].X > 10) { p[i].Y += p[i].Vy*p[i].time / 1000; p[i].Vy = (int) 9.8*p[i].time; p[i].time++; } if(p[i].Y > AppletHeight) { p[i].reset(r); } } repaint(); try { Thread.sleep(100); } catch (InterruptedException e) { } } } } class wparticle { double X,Y; double Vx,Vy; int time; public wparticle(Random r) { reset( r); } public void reset(Random r) { X = (int) (r.nextDouble() * -40); Y = (int) (r.nextDouble() * 5 + 10); Vx = r.nextDouble()*3 + 1.0; Vy = 0; time = 0; } }
相关文章推荐
- Android小程序--模拟焰火粒子和瀑布粒子
- 【iOS-Cocos2d游戏开发之十】添加粒子系统特效并解决粒子特效与Layer之间的坐标问题;
- JParticles 2.0 发布,打造炫酷的粒子特效
- 粒子特效
- 模拟Windows升级页面特效
- 解决粒子特效被NGUI遮挡的问题。
- javascript 模拟select下拉列表特效
- HTML5 canvas粒子系统打造逼真飘雪特效
- 解决粒子特效被NGUI遮挡的问题
- libgdx粒子特效 particle effect
- javascript特效模拟marquee
- J2ME 手机游戏粒子系统实现的1个思路
- 7款让人惊叹的HTML5粒子动画特效(转载)
- (cocos笔记) cocos lua 粒子特效试用
- 一步一步学Repast 第五章——模拟粒子运动,了解Schedule
- 58种jQuery模拟CSS3过渡页面切换特效
- 粒子运动效果的模拟
- HTML5 2D游戏引擎研发系列 第六章 <Canvas技术篇-画布技术-混色特效和粒子>
- Shader相关Mask裁切UI粒子特效或者3D模型
- 57 Three.js 使用粒子实现下雪特效