烟花代码编程Java(烟花代码编程Java)
烟花的java程序
// Decompiled by DJ v2.9.9.60 Copyright 2000 Atanas Neshkov Date: 2003-1-8 9:49:09
// Home Page : - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name: jhanabi.java
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.*;
import java.awt.image.MemoryImageSource;
import java.util.Random;
public class jhanabi extends Applet
implements Runnable
{
public jhanabi()
{
m_mouseX = 0;
m_mouseY = 0;
m_sleepTime = 5;
isError = false;
isInitialized = false;
rand = new Random();
bits = 10000;
bit_px = new double[bits];
bit_py = new double[bits];
bit_vx = new double[bits];
bit_vy = new double[bits];
bit_sx = new int[bits];
bit_sy = new int[bits];
bit_l = new int[bits];
bit_f = new int[bits];
bit_p = new int[bits];
bit_c = new int[bits];
ru = 50;
rv = 50;
}
public void init()
{
String s = getParameter("para_bits");
if(s != null)
bits = Integer.parseInt(s);
s = getParameter("para_max");
if(s != null)
bit_max = Integer.parseInt(s);
s = getParameter("para_blendx");
if(s != null)
ru = Integer.parseInt(s);
s = getParameter("para_blendy");
if(s != null)
rv = Integer.parseInt(s);
s = getParameter("para_sound");
if(s != null)
bit_sound = Integer.parseInt(s);
m_nAppX = size().width;
m_nAppY = size().height;
m_centerX = m_nAppX / 2;
m_centerY = m_nAppY / 2;
m_mouseX = m_centerX;
m_mouseY = m_centerY;
resize(m_nAppX, m_nAppY);
pixls = m_nAppX * m_nAppY;
pixls2 = pixls - m_nAppX * 2;
pix0 = new int[pixls];
offImage = new MemoryImageSource(m_nAppX, m_nAppY, pix0, 0, m_nAppX);
offImage.setAnimated(true);
dbImg = createImage(offImage);
for(int i = 0; i pixls; i++)
pix0[i] = 0xff000000;
sound1 = getAudioClip(getDocumentBase(), "firework.au");
sound2 = getAudioClip(getDocumentBase(), "syu.au");
for(int j = 0; j bits; j++)
bit_f[j] = 0;
isInitialized = true;
start();
}
public void run()
{
while(!isInitialized)
try
{
Thread.sleep(200L);
}
catch(InterruptedException interruptedexception) { }
do
{
for(int j = 0; j pixls2; j++)
{
int k = pix0[j];
int l = pix0[j + 1];
int i1 = pix0[j + m_nAppX];
int j1 = pix0[j + m_nAppX + 1];
int i = (k 0xff0000) 16;
int k1 = ((((l 0xff0000) 16) - i) * ru 8) + i;
i = (k 0xff00) 8;
int l1 = ((((l 0xff00) 8) - i) * ru 8) + i;
i = k 0xff;
int i2 = (((l 0xff) - i) * ru 8) + i;
i = (i1 0xff0000) 16;
int j2 = ((((j1 0xff0000) 16) - i) * ru 8) + i;
i = (i1 0xff00) 8;
int k2 = ((((j1 0xff00) 8) - i) * ru 8) + i;
i = i1 0xff;
int l2 = (((j1 0xff) - i) * ru 8) + i;
int i3 = ((j2 - k1) * rv 8) + k1;
int j3 = ((k2 - l1) * rv 8) + l1;
int k3 = ((l2 - i2) * rv 8) + i2;
pix0[j] = i3 16 | j3 8 | k3 | 0xff000000;
}
rend();
offImage.newPixels(0, 0, m_nAppX, m_nAppY);
try
{
Thread.sleep(m_sleepTime);
}
catch(InterruptedException interruptedexception1) { }
} while(true);
}
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
g.drawImage(dbImg, 0, 0, this);
}
public void start()
{
if(isError)
return;
isRunning = true;
if(runner == null)
{
runner = new Thread(this);
runner.start();
}
}
public void stop()
{
if(runner != null)
{
runner.stop();
runner = null;
}
}
public boolean mouseMove(Event event, int i, int j)
{
m_mouseX = i;
m_mouseY = j;
return true;
}
public boolean mouseDown(Event event, int i, int j)
{
m_mouseX = i;
m_mouseY = j;
int k = (int)(rand.nextDouble() * 256D);
int l = (int)(rand.nextDouble() * 256D);
int i1 = (int)(rand.nextDouble() * 256D);
int j1 = k 16 | l 8 | i1 | 0xff000000;
int k1 = 0;
for(int l1 = 0; l1 bits; l1++)
{
if(bit_f[l1] != 0)
continue;
bit_px[l1] = m_mouseX;
bit_py[l1] = m_mouseY;
double d = rand.nextDouble() * 6.2800000000000002D;
double d1 = rand.nextDouble();
bit_vx[l1] = Math.sin(d) * d1;
bit_vy[l1] = Math.cos(d) * d1;
bit_l[l1] = (int)(rand.nextDouble() * 100D) + 100;
bit_p[l1] = (int)(rand.nextDouble() * 3D);
bit_c[l1] = j1;
bit_sx[l1] = m_mouseX;
bit_sy[l1] = m_nAppY - 5;
bit_f[l1] = 2;
if(++k1 == bit_max)
break;
}
if(bit_sound 1)
sound2.play();
return true;
}
public boolean mouseExit(Event event, int i, int j)
{
m_mouseX = i;
m_mouseY = j;
return true;
}
void rend()
{
boolean flag = false;
boolean flag1 = false;
boolean flag2 = false;
for(int k = 0; k bits; k++)
switch(bit_f[k])
{
default:
break;
case 1: // '\001'
bit_vy[k] += rand.nextDouble() / 50D;
bit_px[k] += bit_vx[k];
bit_py[k] += bit_vy[k];
bit_l[k]--;
if(bit_l[k] == 0 || bit_px[k] 0.0D || bit_py[k] 0.0D || bit_px[k] (double)m_nAppX || bit_py[k] (double)(m_nAppY - 3))
{
bit_c[k] = 0xff000000;
bit_f[k] = 0;
} else
if(bit_p[k] == 0)
{
if((int)(rand.nextDouble() * 2D) == 0)
bit_set((int)bit_px[k], (int)bit_py[k], -1);
} else
{
bit_set((int)bit_px[k], (int)bit_py[k], bit_c[k]);
}
break;
case 2: // '\002'
bit_sy[k] -= 5;
if((double)bit_sy[k] = bit_py[k])
{
bit_f[k] = 1;
flag2 = true;
}
if((int)(rand.nextDouble() * 20D) == 0)
{
int i = (int)(rand.nextDouble() * 2D);
int j = (int)(rand.nextDouble() * 5D);
bit_set(bit_sx[k] + i, bit_sy[k] + j, -1);
}
break;
}
if(flag2 bit_sound 0)
sound1.play();
}
void bit_set(int i, int j, int k)
{
int l = i + j * m_nAppX;
pix0[l] = k;
}
private int m_nAppX;
private int m_nAppY;
private int m_centerX;
private int m_centerY;
private int m_mouseX;
private int m_mouseY;
private int m_sleepTime;
private boolean isError;
private boolean m_isPaintFinished;
boolean isRunning;
boolean isInitialized;
Thread runner;
int pix0[];
MemoryImageSource offImage;
Image dbImg;
int pixls;
int pixls2;
Random rand;
int bits;
double bit_px[];
double bit_py[];
double bit_vx[];
double bit_vy[];
int bit_sx[];
int bit_sy[];
int bit_l[];
int bit_f[];
int bit_p[];
int bit_c[];
int bit_max;
int bit_sound;
int ru;
int rv;
AudioClip sound1;
AudioClip sound2;
}
关于java特效烟花
一个脚本 QQ空间不支持
你找个FLASH带JAVA脚本的 然后找出正确地址.
然后在QQ空间的自定义 添加模块 FLASH模块里
把地址复制上点确定 再托大到合适角度 一样有这样的效果
QQ空间代码的网站都有 百度一找一堆!
百度上java烟花代码改成按类编写,改变其烟花消失方式,实现鼠标一点实现多个烟花绽放
喔哇,
都是啥子年代了,
还食古不化,
在触摸屏幕用手指划动而产生燃放烟花的虚拟图像效果,
早就被时代彻底底抛弃了!!
现在都是在空中一划,根据手势,根据手势的空间运动,
立即就是实际来真格的,
真实、震撼、空间大爆炸、场面骇人、惊天动地。
无接触,
摒弃虚拟的虚假玩意儿。
你吹一口气,
燃放装置就喷出一股火焰。
机械加工能力和基础强劲的,
产生1米边长见方立体焰火造型,
与产生100米见方焰火造型的设备是通用的。
你与情侣自拍“刷脸”就立即产生肖像燃放造型,
其详细的工程技术细节,
早就有中英文对照的文本,
照着去做就可以了,
无需操作机床加工的人员,
去“进一步研究思考”、去开展“创造性的工作”。
java烟花程序看不懂,求解释!
import?java.awt.*;
import?java.applet.*;
import?java.awt.event.*;
import?javax.swing.*;
public?class?Fireworks?extends?Applet?implements?MouseListener,?Runnable?{
int?x,?y;//记录鼠标点击的坐标
int?top,?point;//好像没用到
public?void?init()?{
x?=?0;
y?=?0;
setBackground(Color.black);//?设置背景色为黑色
addMouseListener(this);//添加鼠标监听
}
public?void?paint(Graphics?g)?{
}
public?static?void?main(String?args[])?{
Fireworks?applet?=?new?Fireworks();
JFrame?frame?=?new?JFrame("TextAreaNew");
frame.addWindowListener(new?WindowAdapter()?{
public?void?windowClosing(WindowEvent?e)?{//右上角的叉
System.exit(0);
}
});
frame.add(applet,?BorderLayout.CENTER);
frame.setSize(800,?400);//程序的框框大小
applet.init();
applet.start();
frame.setVisible(true);//
}
public?void?run()?{
//?变量初始化
Graphics?g1;
g1?=?getGraphics();//这是画笔,得到一个画笔
int?y_move,?y_click,?x_click;
int?v;//用于计算等待的时间
x_click?=?x;
y_click?=?y;//把点击的坐标保存下来,因为其它线程会去改这两个坐标。
y_move?=?400;//用来计算变动的那个点,现在是屏幕的最大高度
v?=?3;
int?r,?g,?b;
while?(y_move??y_click)//如果点击的位置小于最大高度。
{
g1.setColor(Color.black);//画笔设成黑色
g1.fillOval(x_click,?y_move,?5,?5);//画圆,圆点在点击的X轴,程序界面的最高点,长为5,宽为5
y_move?-=?5;//最高点-5
r?=?(((int)?Math.round(Math.random()?*?4321))?%?200)?+?55;
g?=?(((int)?Math.round(Math.random()?*?4321))?%?200)?+?55;
b?=?(((int)?Math.round(Math.random()?*?4321))?%?200)?+?55;//rgb是光的三原色,这个就是烟花产生的颜色,这里定义成随机的,但在一个范围里
g1.setColor(new?Color(r,?g,?b));//把画笔改成那个颜色
g1.fillOval(x_click,?y_move,?5,?5);//画一个这样的圆
for?(int?j?=?0;?j?=?10;?j++)?{
if?(r??55)
r?-=?20;
if?(g??55)
g?-=?20;
if?(b??55)
b?-=?20;
g1.setColor(new?Color(r,?g,?b));
g1.fillOval(x_click,?y_move?+?j?*?5,?5,?5);//这一段都是改变颜色,然后画圆的
}
g1.setColor(Color.black);
g1.fillOval(x_click,?y_move?+?5?*?10,?5,?5);//把上一次画的彩色圆,用黑色画一遍,就能让它消失在背景里
try?{
Thread.currentThread().sleep(v++);//让程序等一下,让你看到效果,不然画完的东西一下就不见了,你看不清。
}?catch?(InterruptedException?e)?{
}
}//上面这段代码是烟花的升上去的那一串东西的效果
for?(int?j?=?12;?j?=?0;?j--)?{
g1.setColor(Color.black);
g1.fillOval(x_click,?y_move?+?(j?*?5),?5,?5);
try?{
Thread.currentThread().sleep((v++)?/?3);
}?catch?(InterruptedException?e)?{
}
}//让最后的那串东西的点消失
y_move?=?400;
g1.setColor(Color.black);
while?(y_move??y_click)?{
g1.fillOval(x_click?-?2,?y_move,?9,?5);
y_move?-=?5;
}//这段不太清楚是干什么的,我把它去掉,看不出效果的变化
v?=?15;
for?(int?i?=?0;?i?=?25;?i++)?{
r?=?(((int)?Math.round(Math.random()?*?4321))?%?200)?+?55;
g?=?(((int)?Math.round(Math.random()?*?4321))?%?200)?+?55;
b?=?(((int)?Math.round(Math.random()?*?4321))?%?200)?+?55;
g1.setColor(new?Color(r,?g,?b));
g1.drawOval(x_click?-?3?*?i,?y_click?-?3?*?i,?6?*?i,?6?*?i);
if?(i??23)?{
g1.drawOval(x_click?-?3?*?(i?+?1),?y_click?-?3?*?(i?+?1),
6?*?(i?+?1),?6?*?(i?+?1));
g1.drawOval(x_click?-?3?*?(i?+?2),?y_click?-?3?*?(i?+?2),
6?*?(i?+?2),?6?*?(i?+?2));
}//上面这段是画爆炸的效果
try?{
Thread.currentThread().sleep(v++);//停一下,看效果
}?catch?(InterruptedException?e)?{
}
g1.setColor(Color.black);
g1.drawOval(x_click?-?3?*?i,?y_click?-?3?*?i,?6?*?i,?6?*?i);//然后画黑圈,相当于让彩圈消失。
}
}
public?void?mousePressed(MouseEvent?e)?{//点击从这里开始~~~~~~~~~~~~~~
x?=?e.getX();
y?=?e.getY();//得到鼠标点击的坐标
Thread?one?=?new?Thread(this);//新建一个线程
one.start();//启动这个线程,到上面的run方法
one?=?null;//把这个线程置为空,让它执行完以后就释放
}
如果你想一下自己写要怎样写这个程序,就很容易理解这个程序了。
一直从下向上画圆,然后把下面的圆擦掉,就能得到一个向上升的烟花效果,
爆炸效果就是先画小圆再画大圆,然后擦掉小圆,再擦掉大圆。
2022年跨年烟花代码
烟花代码如下:
package love;
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.net.URL;
import java.util.Random;
/**
* 烟花
* @author enjoy
*
*/
@SuppressWarnings("serial")
public class Q extends Applet implements Runnable {
public int speed, variability, Max_Number, Max_Energy, Max_Patch,
Max_Length, G;
public String sound;
private int width, height;
private Thread thread = null;
private BeaClassDemo bcd[];
public void init() {
int i;
this.setSize(1900, 900);
width = getSize().width - 1;
height = getSize().height - 1;
speed = 1;??????????????????????? // 烟花绽放的速度
variability = 10;
Max_Number = 980;??????????????????? // 可发出烟花的最大数目
Max_Energy = width + 50;
Max_Patch = 90;??????????????????? // 最大的斑点数
Max_Length = 90;??????????????????? // 斑点的最大距离
G = 150;??????????????????????????? // 向地面弯曲的力度
bcd = new BeaClassDemo[Max_Number];
for (i = 0; i Max_Number; i++)
bcd[i] = new BeaClassDemo(width, height, G);
}
public void start() {
if (thread == null) {
thread = new Thread(this);
thread.start();
}
}
@SuppressWarnings("deprecation")
public void stop() {
if (thread != null) {
thread.stop();
thread = null;
}
}
@SuppressWarnings({ "unused", "static-access" })
public void run() {
int i;
int E = (int) (Math.random() * Max_Energy * 3 / 4) + Max_Energy / 4 + 1;
int P = (int) (Math.random() * Max_Patch * 3 / 4)??? // 烟花的斑点数
+ Max_Patch / 4 + 1;
int L = (int) (Math.random() * Max_Length * 3 / 4)??? // 烟花可发射出的距离
+ Max_Length / 4 + 1;
long S = (long) (Math.random() * 10000);
boolean sleep;
Graphics g = getGraphics();
URL u = null;
while (true) {
try {
thread.sleep(1000 / speed);
} catch (InterruptedException x) {
}
sleep = true;
for (i = 0; i Max_Number; i++)
sleep = sleep bcd[i].sleep;
if (sleep Math.random() * 100 variability) {
E = (int) (Math.random() * Max_Energy * 3 / 4) + Max_Energy / 4
+ 1;
P = (int) (Math.random() * Max_Patch * 3 / 4) + Max_Patch / 4
+ 1;
L = (int) (Math.random() * Max_Length * 3 / 4) + Max_Length / 4
+ 1;
S = (long) (Math.random() * 10000);
}
for (i = 0; i Max_Number; i++) {
if (bcd[i].sleep Math.random() * Max_Number * L 1) {
bcd[i].init(E, P, L, S);
bcd[i].start();
}
bcd[i].show(g);
}
}
}
public void paint(Graphics g) {
g.setColor(Color.black);
g.fillRect(0, 0, width + 1, height + 1);
}
}
class BeaClassDemo {
public boolean sleep = true;
private int energy, patch, length, width, height, G, Xx, Xy, Ex[], Ey[], x,
y, Red, Blue, Green, t;
private Random random;
public BeaClassDemo(int a, int b, int g) {
width = a;
height = b;
G = g;
}
public void init(int e, int p, int l, long seed) {
int i;
energy = e;
patch = p;
length = l;
// 创建一个带种子的随机数生成器
random = new Random(seed);
Ex = new int[patch];
Ey = new int[patch];
Red = (int) (random.nextDouble() * 128) + 128;
Blue = (int) (random.nextDouble() * 128) + 128;
Green = (int) (random.nextDouble() * 128) + 128;
Xx = (int) (Math.random() * width / 2) + width / 4;
Xy = (int) (Math.random() * height / 2) + height / 4;
for (i = 0; i patch; i++) {
Ex[i] = (int) (Math.random() * energy) - energy / 2;
Ey[i] = (int) (Math.random() * energy * 7 / 8) - energy / 8;
}
}
public void start() {
t = 0;
sleep = false;
}
public void show(Graphics g) {
if (!sleep)??????????????????
if (t length) {
int i, c;
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) (Ex[i] * s);
y = (int) (Ey[i] * s - G * s * s);
g.setColor(color);
g.drawLine(Xx + x, Xy - y, Xx + x, Xy - y);
if (t = length / 2) {
int j;
for (j = 0; j 2; j++) {
s = (double) ((t - length / 2) * 2 + j) / 100;
x = (int) (Ex[i] * s);
y = (int) (Ey[i] * s - G * s * s);
g.setColor(Color.black);
g.drawLine(Xx + x, Xy - y, Xx + x, Xy - y);
}
}
}
t++;
} else {
sleep = true;
}
}
}
常用的编程语言。
编程语言一:C语言
C语言是世界上最流行、使用最广泛的高级程序设计语言之一。在操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
编程语言二:java
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。
编程语言三:c++
C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus" , "CPP”。 它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。
c语言编程烟花代码简单
c语言编程烟花代码简单如下:
#include "stdlib.h"
#include "graphics.h"
#include "stdio.h"
#include "math.h"
#include "conio.h "
#define PI? 3.1425926
main()
{
int gdriver=DETECT,gmode,errorcode;
int a[10],b[10],x,y,c,r,i,j,t;
double rad = 0.0;
/* initialize graphics and local variables */
initgraph(gdriver , gmode ,"");
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk)? /* an error occurred */
{
printf("Graphics error : %s/n",grapherrormsg(errorcode));
printf("Please any key to halt:");
getch();
exit(1);? /* terminate with an error code */
}
randomize();
for(;!kbhit();)
{
x=rand()%500+100; /*随机中心坐标*/
y=rand()%300+100;
for(r = 0 ;r = 8 ; r++? )? ? /*烟花的大小设定*/
{
for(i = 0,rad = 0.0 ; rad 2*PI; rad += 0.78 )? /*设定坐标*/
{
a[i++] = x + (int)r *10* cos(rad);
b[ i ] = y + (int)r *10* sin(rad);
}
t = i;
for(i=1;it;i++)
{
c=rand()%13+1; /*各点的颜色随机*/
setcolor(c);? ? ? ?/*功能:将当前图形屏幕的当前笔画颜色置为color.*/
circle(a[i],b[i],1);/* a[i],b[i] 为圆心 1 为半径 画圆 */
}
delay(10000);
delay(10000);
cleardevice();
函数名: cleardevice? ? ? ? ?
功? 能: 清除图形屏幕?
用? 法: void far cleardevice(void);
}
}
getch();
closegraph();
函数名: closegraph
功? 能: 关闭图形系统
用? 法: void far closegraph(void);
}
初始化烟花参数
void Init( int i )
{
// 分别为:烟花中心到图片边缘的最远距离、烟花中心到图片左上角的距离 (x、y) 两个分量
int r[13] = { 120, 120, 155, 123, 130, 147, 138, 138, 130, 135, 140, 132, 155 };
int x[13] = { 120, 120, 110, 117, 110, 93, 102, 102, 110, 105, 100, 108, 110 };
int y[13] = { 120, 120, 85, 118, 120, 103, 105, 110, 110, 120, 120, 104, 85 };
/**** 初始化烟花 *****/
Fire[i].x = 0; // 烟花中心坐标
Fire[i].y = 0;
Fire[i].width = 240; // 图片宽
Fire[i].height = 240; // 图片高
Fire[i].max_r = r[i]; // 最大半径
Fire[i].cen_x = x[i]; // 中心距左上角距离
Fire[i].cen_y = y[i];
Fire[i].show = false; // 是否绽放
Fire[i].dt = 5; // 绽放时间间隔
Fire[i].t1 = timeGetTime();
Fire[i].r = 0; // 从 0 开始绽放
/**** 初始化烟花弹 *****/
Jet[i].x = -240; // 烟花弹左上角坐标
Jet[i].y = -240;
Jet[i].hx = -240; // 烟花弹发射最高点坐标
Jet[i].hy = -240;
Jet[i].height = 0; // 发射高度
Jet[i].t1 = timeGetTime();
Jet[i].dt = rand() % 10; // 发射速度时间间隔
Jet[i].n = 0; // 烟花弹闪烁图片下标
Jet[i].shoot = false; // 是否发射
}