使用 Vue 配合豆包MarsCode 实现“小恐龙酷跑“小游戏

作者:BLACK595

“小恐龙酷跑”,它是一款有趣的离线游戏,是Google给Chrome浏览器加的一个有趣的彩蛋。当我们浏览器断网时一只像素小恐龙便会出来提示断网。许多人认为这只是一个可爱的小图标, 但当我们按下空格后,小恐龙前面便出现了一片沙漠,小恐龙也随之奔跑起来,我们要做的也就是控制小恐龙跳跃,跨过沙漠中的荆棘,帮助小恐龙跑出沙漠。今天,我们也用豆包MarsCode AI编程助手来帮助我们用vue来实现这一经典的小游戏。

准备

豆包MarsCode 是字节跳动推出的免费AI编程助手,我们使用豆包MarsCode 时需要先去官网注册账号,并下载插件安装到我们的IDEA中,还不知道怎么操作的小伙伴可以看我之前的文章IntelliJ IDEA:MarsCode 插件初体验。

静态画面

首先,构成游戏的有五个物体,分别是云、小恐龙、大树、小树和路,我们先把他们都放置在同一个容器div中,通过css调整他们具体的位置。

画面移动

接着,要考虑画面的移动,在画面中,一直在移动的其实只有云,树,路,他们时刻都在发生左移,小恐龙只需要在原地蹦跳。 这时我们CTRL+U打开AI聊天界面,问问豆包MarsCode 怎么实现左移的效果。

 AI让我们加个roadMove的动画,改变路translateX位置,我们来试试看。

嗯😶‍🌫️,确实移动起来了,但是这路越跑越少,我们需要的是像轮播图一样的,能一直循环跑下去的。

好的,它叫我们加个road2在road的后面,在添加个动画在rode2上,试一下:

现在这样就很ok,两个road轮着跑,看上去就是一直在向前了。
路没问题了,再给树和云添加上动画,树和云跟路有些不同的时,树和云从最右侧出来向左匀速移动,直到移动到最左侧,来看看 AI 给的代码。

上贴上来后,发现这树跑的好慢,和路都不同步。

我们这里自己给它改一下,把速度和路同步,并且云和大树也加上这个动画。

这回速度虽然和路同步了,但是又粘在一起了,需要让云和大树分别先延时不同时间再执行动画,再css中 加上animation-delay: 3s;

恐龙移动

除了画面在移动外,我们还需要让恐龙看起来也在移动,让它跑起来,也就是多张恐龙图片的切换,但是多张图片切换切图数量太多,我们用雪碧图实现,把多个动作放在一张图片上,通过改变background-position实现动作切换。原理知道后,先看看AI给我们生成的代码。
第一次给我们的是使用css的动画效果。

显然,这是有问题的,恐龙移动不能像画面移动那么平滑,它要在短时间内马上切换到下一张图。可能是我描述的不太准确,给 AI 说了它还是给我们的动画切换。
看来我们要直接给它讲方法,用定时器做到每0.2秒切换一帧,这下就符合要求了。

恐龙跳跃

恐龙能动了后,还需要它能够跳跃,也就是当我们按下空格后,恐龙的跳跃动画,让恐龙升高之后再下降,还需要考虑加速度,不然动作显得太硬了。功能很简单,但如果自己想代码肯定很打脑壳,我们还是交给 AI 先来生成看看吧。

看这代码还真有板有眼的,先不管,把代码粘贴进来试试效果。

呦,还真行,就是跳的高度还不够,再手动给它调高点translateY(-80px)就可以了。

碰撞检测

在完成小游戏基本的动画和事件监听后,我们要来加上游戏结束的条件了,也就是当小恐龙碰到树就game over了,专业一点的名字叫“碰撞检测”。还是直接老样子,AI,直接上代码。

可以看到给我们的代码主体判断部分还是可以的,但是触发条件是animationiteration,也就是当小恐龙重新播放动画的时候才触发,但是我们小恐龙用的定时器都没用动画,这个监听器便永远触发不了,我把他改为用定时器,每0.1秒判断一次是否发生了碰撞,再来试一下。

嗯🌟,不错不错🥰,虽然功能被阉割了,但小恐龙终归是跑起来了,后面有时间再给他完善下,加上计分和下蹲功能。
完整代码:(writing_front: 小恐龙酷跑 (gitee.com))了。

结语

豆包MarCode 着实能够为我们节省大量的开发时间。有 bug 时,可以先让它进行检查;面对功能点需求时,也能让它先生成代码给我们试试,看看它的思路。不过,它生成的代码或许并不完全符合我们的预期,此时我们需要添加更为详细的描述,或者换种思路的代码让它再试试。AI 在算法和逻辑方面表现得极为强大,但在具体功能实现方面,当我们参考它生成的代码时,仍需进行一定的调整。最后,希望咱们的豆包MarCode 在未来的发展道路上能够稳中求进,不断完善,为用户带来更多的惊喜与便利。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

运行ts文件出错及解决办法

运行ts文件出错及解决办法 TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension “.ts” 这个错误是因为 ts-node 无法直接处理 TypeScript 文件作为 ES 模块。你可以尝试以下解决方案: 解决方案 1: 使用 --loader ts-node/esm 选项 如果你使用的是 …

Unity中IK动画与布偶死亡动画切换的实现

在Unity游戏开发中,Inverse Kinematics(IK)是创建逼真角色动画的强大工具。同时,能够在适当的时候切换到布偶物理状态来实现死亡动画等效果,可以极大地增强游戏的视觉体验。本文将详细介绍如何在Unity中利用IK实现常规…

JS爬虫实战之TikTok_Shop验证码

TikTok_Shop验证码逆向 逆向前准备思路1- 确认接口2- 参数确认3- 获取轨迹参数4- 构建请求5- 结果展示 结语 逆向前准备 首先我们得有TK Shop账号,否则是无法抓取到数据的。拥有账号后,我们直接进入登录。 TikTok Shop 登录页面 思路 逆向步骤一般分为…

易泊车牌识别相机:4S 店的智能之选

在当今数字化时代,科技的进步不断为各个行业带来更高效、便捷的解决方案。对于 4S 店来说,易泊车牌识别相机的出现,无疑为其运营管理带来了全新的变革。 一、易泊车牌识别相机的强大功能 易泊车牌识别相机以其卓越的性能和精准的识别能力&…

音频数据的处理

前言 在研究android音频架,音频驱动等的时候,就有涉及到dump音频数据debug,重采样,downmixer,位深转换的处理,那这些的操作原理以及相关算法是如何实现的呢? 带着这个问题,开始探讨…

【前端】手写一个简单的分页器

1. 前言 分页器基本上是任何网站必须要有的一个组件,为什么需要分页器,当后台传入了大量的数据,那么在前端拿到数据,如果直接展示很有可能或造成卡顿,同时消耗过多的内存,给用户带来的浏览效果就不好。所以…

如何在Linux中使用Cron定时执行SQL任务

文章目录 前言一、方案分析二、使用步骤1.准备脚本2.crontab脚本执行 踩坑 前言 演示数据需要每天更新监控数据,不想手动执行,想到以下解决方案 navicat 创建定时任务java服务定时执行linux crontab 定时执行sql脚本 一、方案分析 我选择了第三个方案…

超好用shell脚本NuShell mac安装

利用管道控制任意系统 Nu 可以在 Linux、macOS 和 Windows 上运行。一次学习,处处可用。 一切皆数据 Nu 管道使用结构化数据,你可以用同样的方式安全地选择,过滤和排序。停止解析字符串,开始解决问题。 强大的插件系统 具备强…

过程自动化的新黄金标准:Ethernet-APL

| Ethernet-APL为终客户和设备制造商带来益处 Ethernet-APL(Advanced Physical Layer,高级物理层)是一种两线制以太网物理层,它使用了由IEEE 802.3cg所定义的10BASE-T1L,并采用了新的工艺制造规定,因此构成…

扫雷游戏代码分享(c基础)

hi , I am 36. 代码来之不易👍👍👍 创建两个.c 一个.h 1:test.c #include"game.h"void game() {//创建数组char mine[ROWS][COLS] { 0 };char show[ROWS][COLS] { 0 };char temp[ROWS][COLS] { 0 };//初始化数…

OceanBase 应用实践:如何处理数据空洞,降低存储空间

问题描述 某保险行业客户的核心系统,从Oracle 迁移到OceanBase之后,发现数据存储空间出现膨胀问题,数据空间 datasize9857715.48M,实际存储占用空间17790702.00M。根据 required_mb - data_mb 值判断,数据空洞较为严重…

算法学习第一弹——C++基础

早上好啊,大佬们。来看看咱们这回学点啥,在前不久刚出完C语言写的PTA中L1的题目,想必大家都不过瘾,感觉那些题都不过如此,所以,为了我们能更好的去处理更难的题目,小白兔决定奋发图强&#xff0…

立体工业相机提升工业自动化中的立体深度感知

深度感知对仓库机器人应用至关重要,尤其是在自主导航、物品拾取与放置、库存管理等方面。 通过将深度感知与各种类型的3D数据(如体积数据、点云、纹理等)相结合,仓库机器人可以在错综复杂环境中实现自主导航,物品检测…

【测试框架篇】单元测试框架pytest(3):用例执行参数详解

一、前言 上一篇内容介绍了用例编写的规则以及执行用例,执行用例时我们发现有些print输出内容,结果没有给我们展示,这是因为什么原因呢?接下来我们会针对这些问题进行阐述。 二、参数大全 我们可以在cmd中通过输入 pytest -h 或…

web安全测试渗透案例知识点总结(上)——小白入狱

目录 一、Web安全渗透测试概念详解1. Web安全与渗透测试2. Web安全的主要攻击面与漏洞类型3. 渗透测试的基本流程 二、知识点详细总结1. 常见Web漏洞分析2. 渗透测试常用工具及其功能 三、具体案例教程案例1:SQL注入漏洞利用教程案例2:跨站脚本&#xff…

罕见的 iPhone 14 Pro 原型机固态按钮设计曝光

虽然 iPhone 16 已出,但是看看苹果旧的原型机也很有趣,因为它可以展示苹果在开发过程中一些被舍弃的细节。现在,一款罕见的 iPhone 14 Pro 原型机可以看到了传闻中的触觉音量按钮的样子。 2022 年初关于 iPhone 15 Pro 的第一个传闻表明&…

STM32H750 COMP模拟比较器

STM32H750 COMP模拟比较器 🔖STM32H750内置两个超低功耗比较器通道(COMP1 和 COMP2). 📄功能应用: 在模拟信号的触发下从低功耗模式唤醒模拟信号调理与定时器的 PWM 输出结合使用时,构成逐周期电流控制环路…

5G智能对讲终端|北斗有源终端|北斗手持机|单兵|单北斗

在当今这个快速发展的数字化时代,5G技术的广泛应用正以前所未有的速度推动着各行各业的变革。作为这一技术浪潮中的重要一环,5G智能终端QM630D凭借其卓越的性能和多样化的功能,在林业、渔业、安保、电力、交通等多个领域展现出了巨大的应用潜…

动态规划习题其七【力扣】【算法学习day.29】

前言 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴&am…

Selenium+Pytest自动化测试框架 ------ 禅道实战

前言 有人问我登录携带登录的测试框架该怎么处理,今天就对框架做一点小升级吧,加入登录的测试功能。 选用的测试网址为我电脑本地搭建的禅道 更改了以下的一些文件,框架为原文章框架主体 conftest.py更改 conftest.py #!/usr/bin/env python3 # -*…