【豆包MarsCode 蛇年编程大作战】蛇形烟花

news2025/1/29 14:12:36

项目体验地址:项目体验地址

官方活动地址:活动地址


目录

【豆包MarsCode 蛇年编程大作战】蛇形烟花演示

引言

豆包 MarsCode介绍

项目准备

第一步:安装插件

第二步:点击豆包图标来进行使用豆包

使用豆包 MarsCodeAI助手实现蛇形烟花

没有优化提示词之前

优化提示词后

豆包MarsCode的优势

整体代码


 

【豆包MarsCode 蛇年编程大作战】蛇形烟花演示

引言

作为豆包官方蛇年创意项目的参与者,我选择运用豆包 MarsCode 来打造别具一格的蛇形烟花特效。在项目推进过程中,我深刻体会到精准提示词的关键作用。起初,由于提示词不够精准,豆包生成的代码与我心中的预期效果存在偏差。但经过反复摸索与深入研究,我逐渐掌握了其中的门道:得先向豆包清晰阐明项目的整体目标,再围绕细节层层追问。

就拿这次的蛇形烟花来说,我详细描述道:烟花在升空之际,灵动地左右摇曳,勾勒出蜿蜒的蛇形轨迹;抵达预定高度后,瞬间炸裂成无数绚丽粒子,绽放夜空。在视觉呈现上,借助半透明背景精心营造出梦幻的拖尾效果,同时强化轨迹线条渲染,让烟花的每一次绽放都极具视觉冲击力。交互设计方面也独具匠心,设置便捷按钮用以手动触发烟花发射,每 2 秒便有新的烟花冲向苍穹,多枚烟花还可同时闪耀天际,互不干扰。

经我这般细致入微的设定,豆包迅速领会意图,轻松将我脑海中的梦幻场景完美复刻,高效呈现出令人惊叹的蛇形烟花特效。

豆包 MarsCode介绍

  1. 智能代码补全
    MarsCode 搭载了先进的人工智能算法,能够深度理解代码上下文,在您输入代码的瞬间,精准预测后续的代码片段。无论是常见的函数调用、变量命名,还是复杂的类结构初始化,它都能给出符合编程规范与逻辑的补全建议,大大节省敲击键盘的时间,让编程流程如丝般顺滑。
  2. 代码错误检测与修复
    编写代码过程中,语法错误与逻辑漏洞常常令人头疼。MarsCode 具备敏锐的 “洞察力”,它会实时扫描您的代码,一旦发现错误,不仅能精准定位问题所在,还会提供详细的修复方案。无论是简单的拼写错误、括号不匹配,还是深层次的算法逻辑偏差,都逃不过它的 “法眼”,帮助您快速排除故障,确保代码质量。
  3. 多语言支持
    深知开发者们在不同项目中会涉猎多种编程语言,MarsCode 打破了语言壁垒,全面兼容 Python、Java、C++、JavaScript 等主流编程语言,以及新兴的如 Rust、Go 等语言。无论您是专注于后端开发、前端交互、移动端应用,还是深入数据科学、人工智能领域,MarsCode 都能成为您得心应手的编码伴侣。
  4. 项目代码导航与理解
    面对大型复杂项目,海量的代码文件和错综复杂的模块关系极易让人迷失方向。MarsCode 为您点亮前行的路,通过可视化的代码导航功能,清晰呈现项目的架构层次,让您能够快速在不同文件、函数间跳转,轻松理解代码流程,无论是接手新项目还是回溯旧代码,都能胸有成竹。

 

项目准备

首先我们需要在IDEA或者VSCode中安装豆包MarsCode插件,这里我使用VSCode来进行举例:

第一步:安装插件

直接搜索MarsCode后点击Install进行安装,安装完成后先登录账号,随后切记要进行重启要不然插件不会生效。

第二步:点击豆包图标来进行使用豆包

使用豆包 MarsCodeAI助手实现蛇形烟花

当我详细的对豆包表达我的需求之后,豆包给了我想要的效果,但是在之前由于我的表达不明确导致实现的效果并不好!

没有优化提示词之前

这个时候跟我想要的区别巨大

优化提示词后

随后我开始优化提示词:

我想开发一个蛇形烟花秀的HTML、JS、CSS作品,效果是烟花像蛇一样蜿蜒移动,然后爆炸成粒子效果。首先需要一个画布元素(canvas)来绘制动画。然后,用JavaScript来控制烟花的运动和绘制。CSS用于美化页面背景和按钮样式。接下来,蛇形移动的实现。蛇形通常是指有多个节点组成的身体,每个节点跟随前一个节点的路径。可以用一个数组来保存每个节点的位置,然后每帧更新节点的位置,让后面的节点跟随前面的。比如,头部按一定方向移动,身体节点逐步跟随。然后,烟花爆炸的效果。当蛇到达某个点或者用户点击时,烟花爆炸成多个粒子。粒子需要有散开的效果,用随机角度和速度,同时考虑重力下落。颜色方面,可以让蛇和烟花有不同的颜色,增加视觉效果。用HSL颜色模式,根据角度变化颜色,或者随机选择颜色。用户交互部分,需要一个按钮来触发烟花秀。事件监听器来处理点击事件,然后生成蛇形烟花。

我优化提示词思路逻辑表达清晰后,这次效果真的比我想象中的还好!!!

 

豆包MarsCode的优势

  • 智能代码生成:通过自然语言描述需求,AI自动生成代码片段或函数逻辑。

  • 实时纠错与优化:智能检测代码错误、性能瓶颈,并提供修复建议,降低调试成本。

  • 文档自动生成:根据代码结构自动生成API文档,减少手动维护成本。

整体代码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>蛇形烟花雨</title>
    <style>
        body {
            margin: 0;
            overflow: hidden;
            background-color: #000;
        }
        canvas {
            display: block;
        }
        #controls {
            position: fixed;
            top: 20px;
            left: 20px;
        }
        button {
            padding: 10px 20px;
            background-color: #2196F3;
            border: none;
            color: white;
            border-radius: 5px;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div id="controls">
        <button onclick="launch()">发射烟花蛇 🎆</button>
    </div>
    <canvas id="canvas"></canvas>
    <script>
        const canvas = document.getElementById('canvas');
        const ctx = canvas.getContext('2d');
        
        // 正确设置画布尺寸
        function resizeCanvas() {
            canvas.width = window.innerWidth;
            canvas.height = window.innerHeight;
        }
        resizeCanvas();
        window.addEventListener('resize', resizeCanvas);

        class Particle {
            constructor(x, y, color) {
                this.x = x;
                this.y = y;
                this.color = color;
                this.radius = Math.random() * 2 + 1;
                this.velocity = {
                    x: (Math.random() - 0.5) * 5,
                    y: (Math.random() - 0.5) * 5
                };
                this.alpha = 1;
            }

            draw() {
                ctx.globalAlpha = this.alpha;
                ctx.beginPath();
                ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2);
                ctx.fillStyle = this.color;
                ctx.fill();
            }

            update() {
                this.draw();
                this.x += this.velocity.x;
                this.y += this.velocity.y;
                this.alpha -= 0.005;
            }
        }

        class Firework {
            constructor(x, y, targetY, color) {
                this.x = x;
                this.y = y;
                this.targetY = targetY;
                this.color = color;
                this.velocity = { x: 0, y: 5 };
                this.angle = 0;
                this.trail = [];
                this.exploded = false;
            }

            draw() {
                // 绘制轨迹
                ctx.strokeStyle = this.color;
                ctx.lineWidth = 2;
                ctx.beginPath();
                ctx.moveTo(this.trail[0].x, this.trail[0].y);
                this.trail.forEach(pos => ctx.lineTo(pos.x, pos.y));
                ctx.stroke();

                // 绘制头部
                ctx.fillStyle = this.color;
                ctx.beginPath();
                ctx.arc(this.x, this.y, 3, 0, Math.PI * 2);
                ctx.fill();
            }

            update() {
                if (this.exploded) return;

                // 蛇形运动
                this.angle += 0.15;
                this.x += Math.sin(this.angle) * 3;
                this.y -= this.velocity.y;

                // 记录轨迹
                this.trail.push({ x: this.x, y: this.y });
                if (this.trail.length > 25) this.trail.shift();

                // 到达目标高度时爆炸
                if (this.y <= this.targetY) {
                    this.explode();
                    this.exploded = true;
                }

                this.draw();
            }

            explode() {
                for (let i = 0; i < 80; i++) {
                    particles.push(new Particle(this.x, this.y, this.color));
                }
            }
        }

        let fireworks = [];
        let particles = [];

        function animate() {
            ctx.fillStyle = 'rgba(0, 0, 0, 0.05)';
            ctx.fillRect(0, 0, canvas.width, canvas.height);

            // 更新烟花
            fireworks = fireworks.filter(firework => {
                firework.update();
                return !firework.exploded;
            });

            // 更新粒子
            particles = particles.filter(particle => {
                particle.update();
                return particle.alpha > 0;
            });

            requestAnimationFrame(animate);
        }

        function launch() {
            const colors = ['#FF0000', '#00FF00', '#FFFF00', '#00FFFF', '#FF00FF'];
            const color = colors[Math.floor(Math.random() * colors.length)];
            
            fireworks.push(new Firework(
                Math.random() * canvas.width,  // 随机起始位置
                canvas.height,
                Math.random() * canvas.height/2,
                color
            ));
        }

        // 添加自动发射和点击发射
        animate();
        setInterval(launch, 2000);
        
        // 添加点击事件监听
        canvas.addEventListener('click', launch);
    </script>
</body>
</html>

@豆包MarsCode

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2282939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2013年蓝桥杯第四届CC++大学B组真题及代码

目录 1A&#xff1a;高斯日记&#xff08;日期计算&#xff09; 2B&#xff1a;马虎的算式&#xff08;暴力模拟&#xff09; 3C&#xff1a;第39级台阶&#xff08;dfs或dp&#xff09; 4D&#xff1a;黄金连分数&#xff08;递推大数运算&#xff09; 5E&#xff1a;前缀…

14.杂谈:领域知识库与知识图谱:概念、关系与重要性

文章目录 1. 领域知识库的概念2. 知识图谱的概念3. 领域知识库与知识图谱的关系与差异3.1 关系3.2 差异 4. 为什么要构建领域知识库&#xff1f;4.1 知识的集中管理与共享4.2 知识的标准化与规范化4.3 促进知识创新与应用 5. 为什么要进行知识融合&#xff1f;5.1 异构数据的整…

【GoLang】利用validator包实现服务端参数校验时自定义错误信息

在C/S架构下&#xff0c;服务端在校验请求参数时&#xff0c;若出现参数错误&#xff0c;要响应给客户端一个错误消息&#xff0c;通常我们会统一响应“参数错误”。 但是&#xff0c;如果只是一味的提示参数错误&#xff0c;我并不知道具体是哪个参数错了呀&#xff01;能不能…

c#实现重启Explorer.exe并且启动某个命令

由于经常需要重启Explorer.exe 然后接着又需要马上启动一个命令行&#xff0c;于是干脆写一个程序&#xff0c;实现了此功能。 可以直接在运行中&#xff0c;或者在资源管理器中新建任务。 注意&#xff0c;下方的设置为应用程序&#xff0c;可以避免启动时出现黑框。 直接上代…

C语言自定义数据类型详解(一)——结构体类型(上)

什么是自定义数据类型呢&#xff1f;顾名思义&#xff0c;就是我们用户自己定义和设置的类型。 在C语言中&#xff0c;我们的自定义数据类型一共有三种&#xff0c;它们分别是&#xff1a;结构体(struct)&#xff0c;枚举(enum)&#xff0c;联合(union)。接下来&#xff0c;我…

绘制决策树尝试2 内含添加环境变量步骤

目录 step1 ai码 ai改 step2 下面就是环境配置问题 “ExecutableNotFound: failed to execute WindowsPath(‘dot’), make sure the Graphviz executables are on your systems’ PATH” dot -v愣是没有​编辑 graphviz安装指导 对于Windows用户&#xff1a; 对于Lin…

ChatGPT被曝存在爬虫漏洞,OpenAI未公开承认

OpenAI的ChatGPT爬虫似乎能够对任意网站发起分布式拒绝服务&#xff08;DDoS&#xff09;攻击&#xff0c;而OpenAI尚未承认这一漏洞。 本月&#xff0c;德国安全研究员Benjamin Flesch通过微软的GitHub分享了一篇文章&#xff0c;解释了如何通过向ChatGPT API发送单个HTTP请求…

【优选算法】10----无重复字符的最长子串

---------------------------------------begin--------------------------------------- 题目解析&#xff1a; 看到这一类题目&#xff0c;有没有那种一眼就感觉时要用到滑动窗口的感觉&#xff0c;铁子们&#xff1f; 讲解算法原理&#xff1a; 方法一: 暴力解法&#xff…

【模型】RNN模型详解

1. 模型架构 RNN&#xff08;Recurrent Neural Network&#xff09;是一种具有循环结构的神经网络&#xff0c;它能够处理序列数据。与传统的前馈神经网络不同&#xff0c;RNN通过将当前时刻的输出与前一时刻的状态&#xff08;或隐藏层&#xff09;作为输入传递到下一个时刻&…

开源鸿蒙开发者社区记录

lava鸿蒙社区可提问 Laval社区 开源鸿蒙项目 OpenHarmony 开源鸿蒙开发者论坛 OpenHarmony 开源鸿蒙开发者论坛

C语言中的|=代表啥意思?

在C语言中&#xff0c;| 是复合赋值运算符中的按位或赋值运算符。 其作用是将两个操作数按二进制位进行“或”运算&#xff0c;并将结果赋值给左操作数。例如&#xff0c;若有 x | y;&#xff0c;则等同于 x x | y;。其中&#xff0c;| 是按位或运算符&#xff0c;对两个操作数…

日志收集Day005

1.filebeat的input类型之filestream实战案例: 在7.16版本中已经弃用log类型,之后需要使用filebeat,与log不同&#xff0c;filebeat的message无需设置就是顶级字段 1.1简单使用&#xff1a; filebeat.inputs: - type: filestreamenabled: truepaths:- /tmp/myfilestream01.lo…

SVN客户端使用手册

目录 一、简介 二、SVN的安装与卸载 1. 安装&#xff08;公司内部一般会提供安装包和汉化包&#xff0c;直接到公司内部网盘下载即可&#xff0c;如果找不到可以看下面的教程&#xff09; 2. 查看SVN版本 ​编辑 3. SVN卸载 三、SVN的基本操作 1. 检出 2. 清除认证数据 3. 提交…

【深度学习基础】多层感知机 | 权重衰减

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…

怎么实现Redis的高可用?

大家好&#xff0c;我是锋哥。今天分享关于【请介绍一些常用的Java负载均衡算法&#xff0c;以实现高并发和高可用性?】面试题。希望对大家有帮助&#xff1b; 怎么实现Redis的高可用&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 要实现 Redis 的高…

“AI视觉贴装系统:智能贴装,精准无忧

嘿&#xff0c;朋友们&#xff01;今天我要跟你们聊聊一个特别厉害的技术——AI视觉贴装系统。这可不是普通的贴装设备&#xff0c;它可是融合了人工智能、计算机视觉和自动化控制等前沿科技的“智能贴装大师”。有了它&#xff0c;那些繁琐、复杂的贴装工作变得轻松又精准。来…

SQL基础、函数、约束(MySQL第二期)

p.s.这是萌新自己自学总结的笔记&#xff0c;如果想学习得更透彻的话还是请去看大佬的讲解 目录 SQL通用语法SQL数据类型SQL语句分类DDL数据库操作表操作-查询&创建典例表操作-修改字段表操作-改名&删除 DMLDML-插入(添加)数据DML-更新(修改)数据DML-删除数据 DQL基本…

hash路由、history路由

hash路由 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title><style>h…

unity 粒子系统实现碰撞检测(collision)且使粒子不受力

需求&#xff1a;通过碰撞检测的方式&#xff0c;获得粒子碰撞到的物体&#xff0c;并且碰撞之后&#xff0c;粒子的运动方向&#xff0c;旋转等物理性质都保持不变 为什么不用trigger&#xff1f;因为trigger虽然不会使粒子受力&#xff0c;但是在触发回调函数中&#xff0c;…

金融级分布式数据库如何优化?PawSQL发布OceanBase专项调优指南

前言 OceanBase数据库作为国产自主可控的分布式数据库&#xff0c;在金融、电商、政务等领域得到广泛应用&#xff0c;优化OceanBase数据库的查询性能变得愈发重要。PawSQL为OceanBase数据库提供了全方位的SQL性能优化支持&#xff0c;助力用户充分发挥OceanBase数据库的性能潜…