本文目录一览:
- 1、表白烟花代码
- 2、java烟花程序看不懂,求解释!
- 3、这个是烟花代码!怎么改好看点?
- 4、在编写那个烟花的程序(java),以下是对烟花进行绘制的代码,我是新手看不懂,请帮忙解释下呢··
- 5、c语言放烟花代码
- 6、我的世界烟花怎么用命令方块生成有颜色和形状的烟花
表白烟花代码
天天敲代码的朋友,有没有想过代码也可以变得很酷炫又浪漫?今天就教大家用Python模拟出绽放的烟花,工作之余也可以随时让程序为自己放一场烟花秀。
python炫酷烟花表白源代码
这个有趣的小项目并不复杂,只需一点可视化技巧,100余行Python代码和程序库Tkinter,最后我们就能达到下面这个效果:
学完本教程后,你也能做出这样的烟花秀。
整体概念梳理
我们的整个理念比较简单。
我们这里通过让画面上一个粒子分裂为X数量的粒子来模拟爆炸效果。粒子会发生"膨胀”,意思是它们会以恒速移动且相互之间的角度相等。这样就能让我们以一个向外膨胀的圆圈形式模拟出烟花绽放的画面。经过一定时间后,粒子会进入"自由落体”阶段,也就是由于重力因素它们开始坠落到地面,仿若绽放后熄灭的烟花。
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;//把这个线程置为空,让它执行完以后就释放
}
如果你想一下自己写要怎样写这个程序,就很容易理解这个程序了。
一直从下向上画圆,然后把下面的圆擦掉,就能得到一个向上升的烟花效果,
爆炸效果就是先画小圆再画大圆,然后擦掉小圆,再擦掉大圆。
这个是烟花代码!怎么改好看点?
请看以下两种:
1
单击后字线如放烟花
!--第一步:把如下代码加入head区域中--
SCRIPT LANGUAGE="JavaScript1.2"
!-- Begin
var ver = navigator.appVersion;
var dom = document.getElementById ? 1 : 0;
var ie5 = (ver.indexOf("MSIE 5") -1 dom) ? 1 : 0;
var n = (document.layers);
var ie = (document.all);
var sparksAflyin = 0;
var totalSparks = 0;
var sparksOn = 1;
function initMouseEvents() {
document.onmousedown = mouseDown;
if (n) document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE);
}
function mouseDown(e) {
if (sparksOn) {
var mousex = (n) ? e.pageX : event.x+document.body.scrollLeft;
var mousey = (n) ? e.pageY : event.y+document.body.scrollTop;
if (!sparksAflyin) {
for (var k = 0; k = 9; k++)
eval(’SHOW("sDiv’+k+’")’);
sparksAflyin = 1;
totalSparks = 0;
for(i = 0;i = 9; i++)
eval(’moveTo(’+i+’,0,’+mousex+’,’+mousey+’)’);
}
}
}
function moveTo(i,j, mousex, mousey){
if (j eval(’anim_’+i+’_x.length’) ){
var tempx = eval(’anim_’+i+’_x[j]+mousex’);
var tempy = eval(’anim_’+i+’_y[j]+mousey’);
if (ie) {
if(tempy+30 (document.body.offsetHeight+document.body.scrollTop))
tempy = document.body.offsetHeight+document.body.scrollTop-30;
if(tempx+30 (document.body.offsetWidth+document.body.scrollLeft))
tempx = document.body.offsetWidth+document.body.scrollLeft-30;
eval(’document.all.sDiv’+i+’.style.left = tempx;’);
eval(’document.all.sDiv’+i+’.style.top = tempy;’);
}
if (n) {
eval(’document.layers.sDiv’+i+’.left = tempx;’);
eval(’document.layers.sDiv’+i+’.top = tempy;’);
}
j++;
// timeout: 50 = fireworks speed, larger number = slower speed
setTimeout("moveTo("+i+","+j+","+mousex+","+mousey+")",50)
}
else {
eval(’HIDE("sDiv’+i+’")’);
totalSparks++;
}
if (totalSparks == 10) {
sparksAflyin = 0;
totalSparks = 0;
}
}
function SHOW(divName){
if (document.all)
eval(’document.all.’+divName+’.style.visibility = "visible";’);
else if (document.layers)
eval(’document.layers["’+divName+’"].visibility = "visible";’);
}
function HIDE(divName){
if (document.all)
eval(’document.all.’+divName+’.style.visibility = "hidden";’);
else if (document.layers)
eval(’document.layers["’+divName+’"].visibility = "hide";’);
}
anim_0_x=new Array(20,20,10,0,0,0,0,0,0,0,0,0);
anim_0_y=new Array(-20,-40,-60,-80,-60,-40,-20,0,20,40,60,80);
anim_1_x=new Array(20,20,17,36,60,78,90,92,93,98,108,120,133,152,181);
anim_1_y=new Array(-20,-20,-33,-38,-38,-27,-2,25,51,84,113,141,162,212,253);
anim_2_x=new Array(20,20,2,3,4,5,6,7,8,9,10,12,13,15,18);
anim_2_y=new Array(-20,-20,-33,-38,-38,-27,-2,25,51,84,113,141,162,212,253);
anim_3_x=new Array(-20,-20,-2,-1,7,10,18,35,60,102,94,94,93,97,108,111,117,127);
anim_3_y=new Array(-20,-25,-64,-89,-104,-150,-173,-197,-213,-199,-151,-101,-66,-17,27,87,140,189);
anim_4_x=new Array(-20,-20,-10,-39,-30,-69,-64,-138,-154,-200,-181,-209,-191,-207,-203,-213,-202,-221,-211);
anim_4_y=new Array(-20,-20,-28,-51,-79,-100,-135,-154,-193,-183,-149,-134,-89,-60,8,51,107,157,201);
anim_5_x=new Array(-20,-29,-51,-72,-105,-133,-164,-189,-209,-229,-247,-270,-279,-282,-283,-283,-285,-286,-288);
anim_5_y=new Array(-20,-55,-86,-116,-154,-183,-205,-217,-217,-198,-169,-120,-44,-8,40,87,144,190,248);
anim_6_x=new Array(-20,-20,-7,14,44,79,143,186,217,226,234,244,250,259,265,274);
anim_6_y=new Array(-20,-21,-72,-113,-139,-166,-188,-181,-126,-68,-3,54,134,187,215,257);
anim_7_x=new Array(20,20,-3,-9,-13,-27,-33,-44,-54,-66,-77,-95,-107,-136,-150,-160,-164,-168,-171,-172,-172,-176,-175);
anim_7_y=new Array(-20,-26,-43,-63,-89,-116,-145,-169,-201,-222,-240,-253,-254,-245,-220,-195,-160,-124,-81,-53,-26,19,68);
anim_8_x=new Array(-20,20,-35,39,0,45,-1,24,-15,14,-20,35,-18,38,-11,16,49,64,81,93,100,103,109);
anim_8_y=new Array(-20,-20,-32,-42,-62,-76,-89,-107,-132,-147,-173,-180,-192,-209,-236,-193,-119,-73,-24,51,95,130,188);
anim_9_x=new Array(-20,-51,-89,-110,-165,-191,-228,-240,-259,-271,-277,-281,-287);
anim_9_y=new Array(-20,-20,-35,-37,-34,-16,10,47,105,150,189,227,273);
// End --
/script
!--第二步:把body改为--
body bgcolor="#fef4d9" OnLoad="initMouseEvents()"
!--第三步:在body区域中加入如下代码--
div id="sparks"
div id="sDiv0" style="position:absolute; visibility: hidden;"font face="arial black" color="red"a/font/div
div id="sDiv1" style="position:absolute; visibility: hidden;"font face="arial black" color="yellow"b/font/div
div id="sDiv2" style="position:absolute; visibility: hidden;"font face="arial black" color="blue"c/font/div
div id="sDiv3" style="position:absolute; visibility: hidden;"font face="arial black" color="red"d/font/div
div id="sDiv4" style="position:absolute; visibility: hidden;"font face="arial black" color="orange"e/font/div
div id="sDiv5" style="position:absolute; visibility: hidden;"font face="arial black" color="white"f/font/div
div id="sDiv6" style="position:absolute; visibility: hidden;"font face="arial black" color="green"g/font/div
div id="sDiv7" style="position:absolute; visibility: hidden;"font face="arial black" color="skyblue"h/font/div
div id="sDiv8" style="position:absolute; visibility: hidden;"font face="arial black" color="yellow"i/font/div
div id="sDiv9" style="position:absolute; visibility: hidden;"font face="arial black" color="white"j/font/div
/div
2
代码如下:
embed style="left: 50px; width: 850px; position: absolute; top: 100px; height: 500px" align=right src= width=200 height=500 type=application/octet-stream ;; quality="high" wmode="transparent"/embed embed style="left: 50px; width: 850px; position: absolute; top: 600px; height: 600px" align=right src= width=700 height=600 type=application/octet-stream wmode="transparent" quality="high" ;;/embed embed style="left: 50px; width: 850px; position: absolute; top: 1100px; height: 500px" align=right src= width=500 height=500 type=application/octet-stream ;; quality="high" wmode="transparent"/embed embed style="left: 50px; width: 850px; position: absolute; top: 1600px; height: 600px" align=right src= width=500 height=600 type=application/octet-stream wmode="transparent" quality="high" ;;/embed embed style="left: 50px; width: 850px; position: absolute; top: 2100px; height: 500px" align=right src= width=500 height=500 type=application/octet-stream ;; quality="high" wmode="transparent"/embed embed style="left: 50px; width: 850px; position: absolute; top: 2600px; height: 500px" align=right src= width=500 height=500 type=application/octet-stream ;; quality="high" wmode="transparent"/embed embed style="left: 50px; width: 850px; position: absolute; top: 3100px; height: 500px" align=right src= width=500 height=500 type=application/octet-stream ;; quality="high" wmode="transparent"/embed
在编写那个烟花的程序(java),以下是对烟花进行绘制的代码,我是新手看不懂,请帮忙解释下呢··
就是找了三个随机数, r,g,b作为颜色的初始色彩,在三个数字上偏移, 得到相近的颜色.. 并画出来..
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);
}
扩展资料
C语言:表白显示(多彩小心心)
#include stdio.h
#include math.h
#include stdlib.h
#define I 20
#define R 340
#include string.h
int main()
{
char answer[10];
printf("遇到你\n我才发现\n曾经所有的条件\n似乎都成了我等你的借口\n\n");
printf("我对你的感情已经决堤\n所以\n请允许我,从今往后映入你\n明媚的眼\n");
printf("我\n想和你\n耳鬓厮磨,相濡以沫!");
printf("答应我吧!\n输入yes,你可以看到我的真心\n");
scanf("%s", answer);
float y, x, z, f;
for (y = 1.5f; y -1.5f; y -= 0.1f)
{
for (x = -1.5f; x 1.5f; x += 0.05f)
{
z = x * x + y * y - 1;
f = z * z*z - x * x*y*y*y;
putchar(f = 0.0f ? "*********"[(int)(f*-8.0f)] : ' ');
}
putchar('\n');
}
long time;
for (;;)
{
system("color a");
for (time = 0; time99999999; time++);
system("color b");
for (time = 0; time99999999; time++);
system("color c");
for (time = 0; time99999999; time++);
system("color d");
for (time = 0; time99999999; time++);
system("color e");
for (time = 0; time99999999; time++);
system("color f");
for (time = 0; time99999999; time++);
system("color 0");
for (time = 0; time99999999; time++);
system("color 1");
for (time = 0; time99999999; time++);
system("color 2");
for (time = 0; time99999999; time++);
system("color 3");
for (time = 0; time99999999; time++);
system("color 4");
for (time = 0; time99999999; time++);
system("color 5");
for (time = 0; time99999999; time++);
system("color 6");
for (time = 0; time99999999; time++);
system("color 7");
for (time = 0; time99999999; time++);
system("color 8");
for (time = 0; time99999999; time++);
system("color 9");
}
getchar();
return 0;
}
我的世界烟花怎么用命令方块生成有颜色和形状的烟花
摘自乐游网:
命令方块自定义烟花的方法:
这个不是刷烟花物品,而是直接从指令方块里放出烟花。好处是烟花可以全自定义。
这是2个烟花效果,是2个不同的指令方块刷出的。颜色什么可以全部自定义。
进入教程。首先是教大家如何刷出一个最基础的烟花。指令是:
/summon FireworksRocketEntity ~ ~1 ~
复制代码
大家可以把这条指令打入指令方块然后激活,但只会刷出一个烟花的样子,而不会产生任何爆炸,因为指令里还未调制任何爆炸效果。基础的/summon指令我就不多说了,大家只要记住FireworksRocketEntity就好了。之后就是加入点NBT,让烟花拥有自定义爆炸效果。指令:
/summon FireworksRocketEntity ~ ~1 ~
{LifeTime:30,FireworksItem:{id:401,Count:1,tag:{Fireworks:
{Explosions:[{Flicker:10,Trail:1,Type:3,Colors:[0],FadeColors:[0]}]}}}}
当大家把这条指令打入指令方块并且激活后,会刷出一个黑色的苦力怕的脸。接下来来讲解下NBT:
LifeTime:烟花的飞行延迟,也就是烟花飞上去没爆炸前的时间。调成20就是一秒。
FireworksItem:{id:401,Count:1,tag:{Fireworks::这是固定要打的。意思就是让指令方块知道是烟花。
Explosions:烟花的爆炸效果。这行是重点,控制烟花的颜色,效果,花样什么的。
Flicker:烟花即将结束后的延迟。这行可以随便写,没延迟就是0。大家可以写着看看效果,就知道具体意思了。
Trail:烟花内部的效果。如果内部是空心的,就写0,内部有烟花效果,就是1。同Flicker,大家可以调的自己看看效果。
Type:烟花爆炸效果种类,一共有5种。帖子下面会解释。
Colors:烟花的颜色。这个是用RGB转换DEC,较复杂。帖子下面会讲。
FadeColors:烟花即将结束后转换的颜色。原理同Colors。
虽然有很多的NBT,但是会英文就很简单了。Flicker和Trail较难解释,需要玩家自己实验。
接下来说说烟花效果,也就是Type里面写的。一共有5种,所以后面就写0-4。
种类:
0 - 小球爆炸。
1 - 大球爆炸。
2 - 星型爆炸。
3 - 苦力怕脸型爆炸。
4 - 扩散型爆炸。
当然大家也可以上Wiki看烟花效果。已上图的效果都带有Flicker:10和Trail:1。
之后是教大家如何自定义烟花颜色,也就是Colors和FadeColors这2个NBT用的。前面我写的都是0,也就是黑色。计算颜色有一种特殊的公式:
B+256*G+65536*R = x
公式里的RGB就是颜色属性。R是红色,G是绿色,B是蓝色。大家可以用Photoshop之类的获得一个颜色的RGB值。
之后举个例子:如果要一个绿色的烟火,那就是红色和蓝色都是0,绿色是255 (颜色最高属性是255),那么公式就是:
0+256*255+65536*0 = 65280
于是知道数值了后就可以写入了。比如:Colors:[65280],FadeColors:[0]。大家看到本人FadeColors后面写的还是0,因为本人要让烟花首先是绿色,然后再转换成黑色。当然,如果要全都是绿的话就2个全部写65280。之后算法就一样了。但是黑色的就是0,白色的话就是RGB都是255,算出来是。不知道颜色的RGB的话,那就可以用Photoshop或者Windows系统自带的画图,可以看出RGB属性。发几个常用的:
蓝色:255
白色:
黑色:0
绿色:65280
红色:
注意:如果要多个颜色,直接括号分开就好了。比如:Colors:[255,]。
之后是如果同时刷出多个爆炸效果,也就是同一个烟花有多个效果。指令:
/summon FireworksRocketEntity ~ ~1 ~
{LifeTime:30,FireworksItem:{id:401,Count:1,tag:{Fireworks:
{Explosions:[{Flicker:10,Trail:1,Type:3,Colors:[0],FadeColors:[0]},
{Flicker:10,Trail:0,Type:1,Colors:[],FadeColors:[]}]}}}}
大家看见,只要把Explosion后面的NBT重复就好了。当大家分解完我这条指令后,效果应该是:黑色的苦力怕脸,外面包着白色的球体。当然,想有多少爆炸效果就有多少爆炸效果,都是复制粘贴的活。