效果

HTML代码

  1. <APPLET align=baseline code=Test.class height=260 width=800>
  2. <PARAM NAME="para_bits" VALUE="10000">
  3. <PARAM NAME="para_max" VALUE="150">
  4. <PARAM NAME="para_blendx" VALUE="50">
  5. <PARAM NAME="para_blendy" VALUE="50">
  6. <PARAM NAME="para_sound" VALUE="2">
  7. <PARAM NAME="align" VALUE="baseline">
  8. <PARAM NAME="code" VALUE="Test.class">
  9. <param name="codeBase" value=".">
  10. <PARAM NAME="height" VALUE="250">
  11. <PARAM NAME="width" VALUE="800">
  12. </APPLET>

java源代码:

  1. import java.applet.Applet;
  2. import java.applet.AudioClip;
  3. import java.awt.*;
  4. import java.awt.image.MemoryImageSource;
  5. import java.util.Random;
  6. /**
  7. * 放焰火的Applet程序。
  8. *
  9. * @author 老紫竹(JAVA世纪网,java2000.net)
  10. */
  11. public class Test extends Applet implements Runnable {
  12. public Test() {
  13. m_mouseX = 0;
  14. m_mouseY = 0;
  15. m_sleepTime = 5;
  16. isError = false;
  17. isInitialized = false;
  18. rand = new Random();
  19. bits = 10000;
  20. bit_px = new double[bits];
  21. bit_py = new double[bits];
  22. bit_vx = new double[bits];
  23. bit_vy = new double[bits];
  24. bit_sx = new int[bits];
  25. bit_sy = new int[bits];
  26. bit_l = new int[bits];
  27. bit_f = new int[bits];
  28. bit_p = new int[bits];
  29. bit_c = new int[bits];
  30. ru = 50;
  31. rv = 50;
  32. }
  33. public void init() {
  34. String s = getParameter("para_bits");
  35. if (s != null)
  36. bits = Integer.parseInt(s);
  37. s = getParameter("para_max");
  38. if (s != null)
  39. bit_max = Integer.parseInt(s);
  40. s = getParameter("para_blendx");
  41. if (s != null)
  42. ru = Integer.parseInt(s);
  43. s = getParameter("para_blendy");
  44. if (s != null)
  45. rv = Integer.parseInt(s);
  46. s = getParameter("para_sound");
  47. if (s != null)
  48. bit_sound = Integer.parseInt(s);
  49. m_nAppX = getSize().width;
  50. m_nAppY = getSize().height;
  51. m_centerX = m_nAppX / 2;
  52. m_centerY = m_nAppY / 2;
  53. m_mouseX = m_centerX;
  54. m_mouseY = m_centerY;
  55. resize(m_nAppX, m_nAppY);
  56. pixls = m_nAppX * m_nAppY;
  57. pixls2 = pixls - m_nAppX * 2;
  58. pix0 = new int[pixls];
  59. offImage = new MemoryImageSource(m_nAppX, m_nAppY, pix0, 0, m_nAppX);
  60. offImage.setAnimated(true);
  61. dbImg = createImage(offImage);
  62. for (int i = 0; i < pixls; i++)
  63. pix0[i] = 0xff000000;
  64. sound1 = getAudioClip(getDocumentBase(), "firework.au");
  65. sound2 = getAudioClip(getDocumentBase(), "syu.au");
  66. for (int j = 0; j < bits; j++)
  67. bit_f[j] = 0;
  68. isInitialized = true;
  69. start();
  70. }
  71. private boolean stop;
  72. public void run() {
  73. while (!isInitialized)
  74. try {
  75. Thread.sleep(200L);
  76. } catch (InterruptedException interruptedexception) {
  77. }
  78. do {
  79. for (int j = 0; j < pixls2; j++) {
  80. int k = pix0[j];
  81. int l = pix0[j + 1];
  82. int i1 = pix0[j + m_nAppX];
  83. int j1 = pix0[j + m_nAppX + 1];
  84. int i = (k & 0xff0000) >> 16;
  85. int k1 = ((((l & 0xff0000) >> 16) - i) * ru >> 8) + i;
  86. i = (k & 0xff00) >> 8;
  87. int l1 = ((((l & 0xff00) >> 8) - i) * ru >> 8) + i;
  88. i = k & 0xff;
  89. int i2 = (((l & 0xff) - i) * ru >> 8) + i;
  90. i = (i1 & 0xff0000) >> 16;
  91. int j2 = ((((j1 & 0xff0000) >> 16) - i) * ru >> 8) + i;
  92. i = (i1 & 0xff00) >> 8;
  93. int k2 = ((((j1 & 0xff00) >> 8) - i) * ru >> 8) + i;
  94. i = i1 & 0xff;
  95. int l2 = (((j1 & 0xff) - i) * ru >> 8) + i;
  96. int i3 = ((j2 - k1) * rv >> 8) + k1;
  97. int j3 = ((k2 - l1) * rv >> 8) + l1;
  98. int k3 = ((l2 - i2) * rv >> 8) + i2;
  99. pix0[j] = i3 << 16 | j3 << 8 | k3 | 0xff000000;
  100. }
  101. rend();
  102. offImage.newPixels(0, 0, m_nAppX, m_nAppY);
  103. try {
  104. Thread.sleep(m_sleepTime);
  105. } catch (InterruptedException interruptedexception1) {
  106. }
  107. } while (!stop);
  108. }
  109. public void update(Graphics g) {
  110. paint(g);
  111. }
  112. public void paint(Graphics g) {
  113. g.drawImage(dbImg, 0, 0, this);
  114. }
  115. public void start() {
  116. if (isError)
  117. return;
  118. isRunning = true;
  119. if (runner == null) {
  120. runner = new Thread(this);
  121. runner.start();
  122. }
  123. }
  124. public void stop() {
  125. if (runner != null) {
  126. runner.stop();
  127. runner = null;
  128. }
  129. }
  130. public boolean mouseMove(Event event, int i, int j) {
  131. m_mouseX = i;
  132. m_mouseY = j;
  133. return true;
  134. }
  135. public boolean mouseDown(Event event, int i, int j) {
  136. m_mouseX = i;
  137. m_mouseY = j;
  138. int k = (int) (rand.nextDouble() * 256D);
  139. int l = (int) (rand.nextDouble() * 256D);
  140. int i1 = (int) (rand.nextDouble() * 256D);
  141. int j1 = k << 16 | l << 8 | i1 | 0xff000000;
  142. int k1 = 0;
  143. for (int l1 = 0; l1 < bits; l1++) {
  144. if (bit_f[l1] != 0)
  145. continue;
  146. bit_px[l1] = m_mouseX;
  147. bit_py[l1] = m_mouseY;
  148. double d = rand.nextDouble() * 6.2800000000000002D;
  149. double d1 = rand.nextDouble();
  150. bit_vx[l1] = Math.sin(d) * d1;
  151. bit_vy[l1] = Math.cos(d) * d1;
  152. bit_l[l1] = (int) (rand.nextDouble() * 100D) + 100;
  153. bit_p[l1] = (int) (rand.nextDouble() * 3D);
  154. bit_c[l1] = j1;
  155. bit_sx[l1] = m_mouseX;
  156. bit_sy[l1] = m_nAppY - 5;
  157. bit_f[l1] = 2;
  158. if (++k1 == bit_max)
  159. break;
  160. }
  161. if (bit_sound > 1)
  162. sound2.play();
  163. return true;
  164. }
  165. public boolean mouseExit(Event event, int i, int j) {
  166. m_mouseX = i;
  167. m_mouseY = j;
  168. return true;
  169. }
  170. // (JAVA世纪网,java2000.net)
  171. void rend() {
  172. boolean flag2 = false;
  173. for (int k = 0; k < bits; k++)
  174. switch (bit_f[k]) {
  175. default:
  176. break;
  177. case 1: // '/001'
  178. bit_vy[k] += rand.nextDouble() / 50D;
  179. bit_px[k] += bit_vx[k];
  180. bit_py[k] += bit_vy[k];
  181. bit_l[k]--;
  182. if (bit_l[k] == 0 || bit_px[k] < 0.0D || bit_py[k] < 0.0D || bit_px[k] > (double) m_nAppX
  183. || bit_py[k] > (double) (m_nAppY - 3)) {
  184. bit_c[k] = 0xff000000;
  185. bit_f[k] = 0;
  186. } else if (bit_p[k] == 0) {
  187. if ((int) (rand.nextDouble() * 2D) == 0)
  188. bit_set((int) bit_px[k], (int) bit_py[k], -1);
  189. } else {
  190. bit_set((int) bit_px[k], (int) bit_py[k], bit_c[k]);
  191. }
  192. break;
  193. case 2: // '/002'
  194. bit_sy[k] -= 5;
  195. if ((double) bit_sy[k] <= bit_py[k]) {
  196. bit_f[k] = 1;
  197. flag2 = true;
  198. }
  199. if ((int) (rand.nextDouble() * 20D) == 0) {
  200. int i = (int) (rand.nextDouble() * 2D);
  201. int j = (int) (rand.nextDouble() * 5D);
  202. bit_set(bit_sx[k] + i, bit_sy[k] + j, -1);
  203. }
  204. break;
  205. }
  206. if (flag2 && bit_sound > 0)
  207. sound1.play();
  208. }
  209. void bit_set(int i, int j, int k) {
  210. int l = i + j * m_nAppX;
  211. pix0[l] = k;
  212. }
  213. private int m_nAppX;
  214. private int m_nAppY;
  215. private int m_centerX;
  216. private int m_centerY;
  217. private int m_mouseX;
  218. private int m_mouseY;
  219. private int m_sleepTime;
  220. private boolean isError;
  221. boolean isRunning;
  222. boolean isInitialized;
  223. Thread runner;
  224. int pix0[];
  225. MemoryImageSource offImage;
  226. Image dbImg;
  227. int pixls;
  228. int pixls2;
  229. Random rand;
  230. int bits;
  231. double bit_px[];
  232. double bit_py[];
  233. double bit_vx[];
  234. double bit_vy[];
  235. int bit_sx[];
  236. int bit_sy[];
  237. int bit_l[];
  238. int bit_f[];
  239. int bit_p[];
  240. int bit_c[];
  241. int bit_max;
  242. int bit_sound;
  243. int ru;
  244. int rv;
  245. AudioClip sound1;
  246. AudioClip sound2;
  247. }

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

非常漂亮的放焰火效果的Applet程序相关推荐

  1. java applet程序设计,Java Applet程序设计基础

    Java Applet程序设计基础 Java Applet 是用Java 语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE 或 Nescape)解释执行能够产生特殊效 ...

  2. canvas为你的天气预报添加雨雪效果 | 微信小程序

    关注 前端瓶子君,回复"交流" 加入我们一起学习,天天进步 来源:行舟客 https://yunxiaomeng.blog.csdn.net/article/details/110 ...

  3. 用java编写输出欢迎光临_编写一个完整的Java applet程序,程序功能为:在屏幕上输出“欢迎光临Java世界!”的字符串信息。...

    Applet程序开发主要步骤如下: 1)选用EDIT或Windows Notepad等工具作为编辑器建立Java Applet源程序. 2)把Applet的源程序转换为字节码文件. 3)编制使用cla ...

  4. 分别用Java应用程序和Applet程序实现星星三角形图案的绘制

    一,用Java应用程序和Applet程序实现星星三角形图案的绘制 1,新建java project , project name 为 Triangle 2,新建new class , class na ...

  5. 如何用html制作一个动态烟花,视频加烟花特效 视频如何制作烟花效果|视频上添加动态的焰火效果...

    有句mmp不知当讲不当讲,今天竟然是孔子的诞辰,这样一算孔子很有可能是处女座呢!!当看到这条消息时我的内心是拒绝的,在我看来孔子的中庸思想表示的"平庸.折中.调和"明明是我们天秤座 ...

  6. 使用html5制作烟花的视频,视频加烟花特效 视频如何制作烟花效果|视频上添加动态的焰火效果...

    有句mmp不知当讲不当讲,今天竟然是孔子的诞辰,这样一算孔子很有可能是处女座呢!!当看到这条消息时我的内心是拒绝的,在我看来孔子的中庸思想表示的"平庸.折中.调和"明明是我们天秤座 ...

  7. java运行applet的命令_Java工具JDK中用来运行Applet程序的命令是()

    [填空题]电控发动机清除溢流控制的条件是 . 和转速低于500r/min. [填空题]爆震传感器按结构和原理不同可以分为 . 和火花塞座金属垫圈型三种. [简答题] [多选题]Java的主要优点是() ...

  8. 如何在IDEA运行Applet程序

    学校老师教的applet是在cmd中实现的,cmd还要配置环境变量,还要写cd 路径,很麻烦,于是想用IDEA来写Applet程序,但是怎么都运行不了,报错写的是"错误: 找不到或无法加载主 ...

  9. IDEA运行Java Applet程序

    Java Applet程序 目录结构 Test.java import javax.swing.*; import java.awt.*;public class Test extends JAppl ...

最新文章

  1. viewpager初始化fragment没有绘制_Fragment在ViewPager中的正确应用(3)FragmentStatePagerAdapter优化了什么...
  2. Centos 中 service iptables stop 失败
  3. 搜索和搜索形式(SEARCHING and its forms)
  4. 贝叶斯学习--极大后验概率假设和极大似然假设
  5. 第4章 最基础的分类算法-k近邻算法
  6. 老大,我就想加个索引,怎么就这么难?
  7. 数据结构与算法 / 跳表
  8. 最长回文Manacher
  9. 中兴首款5G旗舰手机来了:2月25日见!
  10. BarnBridge出现前端错误
  11. SQL注入学习part01:(结合sqli-libs学习:1-10关)
  12. mysql备份之lvm
  13. C++ 需要返回值的函数却没有返回值的情况 单例模式
  14. 十分钟理解Actor模式
  15. python二维数组切片_python语言多维数组切片方法
  16. VBoxGuestAdditions加载不了
  17. 最棒的PHP后台管理系统
  18. 解决:idea中文变繁体怎么办
  19. 阿里天池新人赛——幸福感挖掘
  20. java课设 简单九宫格_Java实现九宫格的简单实例

热门文章

  1. Hard-Margin SVM(支持向量机)
  2. excel两个表格内容合并
  3. 粉笔科技创新OMO一体化模式 差异化突围职教市场
  4. weblogic10 配置 domian
  5. PKUSC 2022游记
  6. html图片靠右浮动 文字左侧环绕,CSS实现模拟float: center文字左右环绕图片的效果...
  7. 使用Hutool工具完成发(带模板)邮件功能
  8. vue路由匹配上之后,但页面空白的问题
  9. 第二类曲面积分转化为二重积分
  10. 数据结构与算法之链表结构寻找p、q最近的公共祖先