记事本烟花代码编程(代码写烟花)
电脑的烟花及编程码
就是就是
这方面用c麻烦死了
还是学学flash吧
简单得多
有c的基础
actionscript也不难学
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;//把这个线程置为空,让它执行完以后就释放
}
如果你想一下自己写要怎样写这个程序,就很容易理解这个程序了。
一直从下向上画圆,然后把下面的圆擦掉,就能得到一个向上升的烟花效果,
爆炸效果就是先画小圆再画大圆,然后擦掉小圆,再擦掉大圆。
想用c#做一个烟花的动画,用窗口还是程序台?思路是什么,怎么写?求大神指教我是初学者,什么都不懂
控制台肯定不行。窗口程序至少属于可视化界面。
初学者别搞这个了,你要做的这个可以用其他软件更方便实现。
非要用C#的winform来做动画,研究一下System.Drawing吧。
至于编程思路可以简单给你讲一个:
定义个烟花类:
属性:
烟花的颜色【Color】,
烟花当前位置【Point】,
飞行方向【int】,
飞行轨迹【Point集合】,
烟花尾巴长度【int】,
爆炸生成烟花数量【int】
方法:
烟花爆炸()——如果爆炸生成的烟花数量设置是0,那么就不爆炸;否则安装数量new 新的烟花出来,360°除以烟花数量设置烟花方向。
烟花飞行()——飞行轨迹记录之前的位置,通过飞行方向计算当前位置,通过尾巴长度颜色属性进行图像刷新。
。。。。。。
少儿编程Scratch第十五讲,节日放烟花,附带程序
游戏规则:烟花从地上飞上天空,然后绽放,最后落下消失。
第一步
添加一个城市的背景
第二步
创建烟花Rocket角色,做出八个造型。
第一个造型命名为C1,代表升空的烟花。当这个小红点C1到达某个随机的位置,再将它切换到其他七个造型之一,这样就模拟出烟花绽放的效果。在加一些简单的图形效果让整个过程更加真实。
烟花程序如下:
开始将自己隐藏,然后重复执行,每隔一个随机时间创建一个克隆体。由于原角色是隐藏的,所以它的克隆体一开始都是隐藏的。
克隆体程序如下:
扩展
还可以将y坐标增加-1和将亮度特效增加-3模拟出烟花缓缓下降并逐渐消失的效果。