如何解决 Scratch 中很难去除的bug?

news2024/11/26 5:55:01

大家好,今天我们就来讲讲我们在使用Scratch编程中遇到的一些典型的bug,相信也有你遇到的,我这里讲的名称稍微专业了一点,但是也希望你都能看完整篇文章,说不定就有你遇到的,给作者一个关注和赞吧!


首先

为了保证不是自己粗心导致bug出现,你得这样做:

1:重读代码,确保逻辑无问题

2:读返回部分,比如说看看会不会把 [列表]中的第一个n,写成[列表]的第{[列表]中的第一个n}

然后,接下来就是知识问题了


Scartch新手常见问题

大小限制

        你可能在有些时候发现如果将角色大小设置为一个超级大的数字时,角色的大小并不会按照你理想中的设置,那么这个时候你可以选择创建一个空白造型。

        这个造型不需要画画,空着就行了,然后你先把造型切换到这个空白造型,并在此时设置你想设置的大小,接着再把造型切换成你的角色样子的造型,你就会发现,你设置成功了。

移动限制

        有时候我们会发现角色不管怎么移,都移不出舞台区,这是很麻烦的一件事,我们没法将角色藏在舞台区外,但是,遇到这种问题没有关系,只需要创建一个特别大的造型,这个造型的造型大小需要大于我们原本的角色样子的造型的造型大小,而且要大很多,然后我们重复执行,先切换成大的那个造型,然后执行移动代码(比如说x增加10),最后再切换成我们角色原本的造型,然后你一直移动,等到移出舞台区时,那就证明你成功了。

克隆体限制

        在Scratch原版中,一个游戏里的克隆体数量是不可以超过300个的,也就是说,所有角色加起来你的克隆体不能超过300个,因为超过300个,Scratch就不会给你克隆出第301个克隆体了,所以我们要减少克隆体的使用,尽量想办法做出那些克隆体数量不超过300个且不影响玩家体验的作品

画笔限制

        有时候我们会发现我们画笔画出一个样子后,再把角色移到这个画笔画出的样子的上方,就会发现角色把这个画笔画出来的样子给彻底的挡住了,那怎么解决呢?真的很抱歉,这个问题是解决不了的,你只能尽量综合一下,要么都用画笔做游戏(HPP作品,就是纯画笔),要么就不要用画笔制作了。


Scratch多线程限制

        我在新版Scratch(Scratch3.29.1)中测试,如果程序中有某些特殊代码时(至于这个特殊代码到底是什么我也不清楚),Scratch就不能运行太多程序,比方说我发送一个广播,如果你的接收者够多,那么一定就会出现有接收者没有收到消息的情况,我称这个情况为Scratch多线程限制。

        那么,如何减少Scratch多线程限制对我们的干扰呢?

减少广播,使用克隆体

        众所周知,Scratch多线程限制所限制的数是很少的,但是我们的克隆体却可以克隆出300个!这意味着我们可以使用克隆体执行300个程序!这就完美解决了我们所发生的限制问题。那这个操作具体该怎么实现呢?

        我们只需要让一个角色克隆一下,然后把这个角色的代码放到“克隆体启动时”的代码下面,这样就完美解决问题了,我们又腾出了一个多线程的空间。那么,到这里可还没有结束,我们如果要制作广播又该怎么办呢?我们克隆体接收广播的时候需要做一个是否为克隆体的判断,但是,你得注意,我们的广播是向所有单位发送的,这个单位是包括本体与克隆体的,也就是说,我们的本体也会接收到这个广播,进行一个判断,判断自己是不是克隆体,这就很糟糕了,本体执行代码是会占据多线程空间的,那么我们这时又该如何解决此问题呢?

        很简单,用变量,比如说我们把变量设为0,然后克隆体在克隆的时候就等待这个变量=1,就是说等到这个变量等于1的时候执行代码,接着我们如果要广播的话,就可以把这个变量设置为1,接收广播的克隆体就可以知道接下来要做什么了,就是在“等待”这个代码之后加入我们要进行的程序,如果你想让克隆体每时每刻都侦测,也就是说不止可以接收这个广播一次,那么你可以使用如下程序:

当克隆体启动时
        如果  <当前克隆体是这个广播的接收者>
                重复执行
                        等待< (变量)=1 >
                        执行广播之后要执行的代码
                        等待< [(变量)=1 不成立] >

        这样就完美解决了这个问题,就是等待可以广播的时候再广播,不过我这个做法还需要一个设置,就是在将变量设置为1的时候,也就是说广播的时候,你再等几帧就要把变量重新设置为0,这样我们上面的个代码才有效


Scratch运行速度问题

自制积木

自制积木是有一个鲜为人知的问题的,比如说下图:

图1

图2

        先给大家介绍一下,这是一个大地图的引擎。看起来图1与图2实现效果相同,但是我可以很负责的告诉你:这两个的效果是不一样的!因为自制积木在读取“能侦测的实体”这一块的时候是会消耗时间的,而图1则没有这一步。结果发现图1的碰撞代码符合理想,但是图2的代码却非常差劲。所以更建议在使用自制积木布尔值的时候,把它替换成原来的,总的来说就是要少用。

广播

        例如说一个广播者发送广播,接收者收到广播,你别看这一步普普通通,实际上在中间是有消耗时间的,也就是说,广播的过程是有时间的,所以大家平常多多注意这个问题,等广播有问题的时候看看是不是这个问题。


Scratch缺点造成问题

自制积木的不刷新屏幕

        如果你在不刷新屏幕的自制积木下,放置了运行需要时间的积木,那么你的计算机就会特别的卡,因为Sc是不管你有没有等待时间的积木的,所以各位请注意

按下特殊按键

        到目前为止,Sc可以侦测的按键除了常规的,还有enter、shift等(操作方法就是让返回值积木返回出按键名称即可,例如连接积木、变量积木等),但是像一些系统按键不能侦测,例如backsapce、esc、tab等,所以不要自己尝试了。


结尾

        我是自学编程的,这些点都是我苦心钻研出来的,很少有人会跟你讲这个,也希望大家能给渐终末滨多多支持,做这个教程真的不容易。当然,还是有一些特性没有在这里说,因为这期教程只讲几个比较典型的问题,希望大家能给我收藏,谢谢了!

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

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

相关文章

Vue如何做一个左边栏

要求一-------点击之后能够实现页面跳转,使用router&#xff0c;点击之后跳到指定页面&#xff1a; 第二步&#xff1a;如何实现简易的前端路由 第三步 左侧边栏的正确写法&#xff0c;ul中li套router-link 第四步 实现嵌套路由 第五步 ul中嵌套着li 第六步嵌套路由 第七步&…

elementUI 实现动态表单数据校验

转载http://t.csdn.cn/XuTa2 1、探讨需求 首先我们需要探讨一下需求&#xff1a; 表单中的部分el-form-item 的label都是从接口拿到的&#xff0c;需要遍历进行动态渲染。 需要给每个el-form-item加上校验至少是必填校验 有的el-form-item不需要校验&#xff0c;也不是从接口…

express学习笔记1 - 框架搭建

1、创建项目 mkdir admin-node cd admin-node npm init -y 安装依赖 npm i -S express 创建 app.js const express require(express)// 创建 express 应用 const app express()// 监听 / 路径的 get 请求 app.get(/, function(req, res) {res.send(hello node) })// 使 …

GoogleLeNet Inception V2 V3

文章目录 卷积核分解第一步分解&#xff0c;对称分解第二步分解&#xff0c;非对称分解在Inception中的改造一般模型的参数节省量可能导致的问题 针对两个辅助分类起的改造特征图尺寸缩减Model Regularization via Label Smoothing——LSR问题描述&#xff0c;也就是LSR解决什么…

问道管理:市盈率市净率市销率三者之间的关系?

市盈率、市净率和市销率是股票剖析中最常用的三种金融目标&#xff0c;它们是评价股票价值和价格是否合理的重要工具。那么&#xff0c;三者之间到底有什么联系呢&#xff1f;本文将从多个视点进行剖析。 1. 基本概念 市盈率 (PE Ratio) 是一个衡量公司的股价相对于其每股收益…

安卓音视频多对多级联转发渲染

最近利用自己以前学习和用到的音视频知识和工程技能做了一个android的sdk,实现了本地流媒体ipc rtsp 拉流以及自带mip usb等camera audio节点产生的流媒体通过webrtc sfu的方式进行多对多级联发布共享,网状结构&#xff0c;p2p组网&#xff0c;支持实时渲染以及转推rtmp&#x…

Java版工程行业管理系统源码-专业的工程管理软件- 工程项目各模块及其功能点清单

&#xfeff; 工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据…

【Android】APP启动优化学习笔记

启动优化目的 用户体验&#xff1a; 应用的启动速度直接影响用户体验。用户希望应用能够快速启动并迅速响应他们的操作。如果应用启动较慢&#xff0c;用户可能会感到不满&#xff0c;并且有可能选择卸载或切换到竞争对手的应用。通过启动优化&#xff0c;可以提高应用的启动…

Inobitec DICOM Viewer Pro 2.11.0 Crack

Inobitec DICOM Viewer Pro 2.11.0 专业DICOM查看器、匿名器、转换器、PACS客户端、迷你PACS服务器、患者CD/DVD刻录机(带查看器)等功能的医学影像专业必备的DICOM工作站和查看器 动态渐进版本&#xff08;每季度发布&#xff09;扩展功能 高级 3D 重建 以 OBJ、STL、PLY、…

uni-app:实现分页功能,单击行获取此行指定数据,更改行样式

效果&#xff1a; 分段解析代码 分页功能实现&#xff1a; 一、标签 1、搜索栏-模糊查询 <!-- 搜索框--><form action"" submit"search_wip_name"><view class"search_position"><view class"search"><…

【AGC】Publishing API调用问题汇总

【问题背景】 开发者可以通过Publishing API完成几乎所有应用的管理和发布工作&#xff0c;自己制定自动发布接口。Publishing API有很多接口&#xff0c;包括了查询应用信息、更新应用信息、上传文件、提交发布等主要接口。下面总结了一些开发者在使用Publishing API过程中容…

构建高效物理计划:从逻辑查询到算子实现

​一、前言 本文主要介绍内容一条查询语句如何实现由逻辑计划生成物理计划。查询语句要执行的操作、涉及的表信息等存放于逻辑计划的 PlanNode 中&#xff0c;物理计划的构建就是通过解析逻辑计划的 PlanNode&#xff0c;将对应的 PlanNode 转换为对应算子&#xff08;Process…

springboot整合tio-websocket方案实现简易聊天

写在最前&#xff1a; 常用的http协议是无状态的&#xff0c;且不能主动响应到客户端。最初想实现状态动态跟踪只能用轮询或者其他效率低下的方式&#xff0c;所以引入了websocket协议&#xff0c;允许服务端主动向客户端推送数据。在WebSocket API中&#xff0c;浏览器和服务…

富士通“Actlyzer”提供基于AI的基于视频的行为分析

想象一下这样的场景&#xff1a;一个男人走近一个家的前门&#xff0c;蹲下并检查钥匙孔。这是丢失房屋钥匙的居民还是客人&#xff1f;还是寻找入口点的窃贼&#xff1f;“Actlyzer”是一种新的人工智能安全系统&#xff0c;旨在区分这种情况。富士通实验室和研发中心的行为分…

经典文献阅读之--Online Extrinsic Calibration(激光雷达,视觉和惯导外参在线标定)

0. 简介 为了实现精确定位&#xff0c;自动驾驶车辆通常依靠围绕移动平台的多传感器感知系统。校准是一个耗时的过程&#xff0c;机械畸变会导致外部校准误差。因此&#xff0c;《Lidar-Visual-Inertial Odometry with Online Extrinsic Calibration》提出了一种激光雷达-视觉…

安卓手机怎样录屏?手机录屏小技巧分享

如果你需要在安卓手机上录制一段视频或者教程&#xff0c;录屏功能是一个非常有用的工具。在这篇文章中&#xff0c;我们将会介绍安卓手机如何录屏&#xff0c;并分享一些小技巧。 在安卓手机上录屏的方法有很多种&#xff0c;这里我们介绍两种比较常用的方法。 方法一&#x…

Nodejs 爬虫 第二章(通过掘金 userId 抓取到所有文章)!HTML to Markdown

前言 就在昨天晚上&#xff0c;做了一个通过掘金文章链接进行解析html转化为markdown文档&#xff0c;并且把图片进行下载和替换&#xff0c;但是最后也留了个伏笔&#xff08;我一定会回来的&#xff5e;&#xff09;就是通过用户id&#xff0c;把所有的文章都转化出来&#x…

安卓嵌入h5页面方法笔记

<?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"><uses-featureandroid:name"android.hardware.t…

2023年的深度学习入门指南(24) - 处理音频的大模型 OpenAI Whisper

2023年的深度学习入门指南(24) - 处理音频的大模型 OpenAI Whisper 在这一讲之前&#xff0c;我们所用的大模型都是针对文本的。这一讲我们增加一个新的领域&#xff0c;即音频。我们将介绍OpenAI的Whisper模型&#xff0c;它是一个处理音频的大模型。 Whisper模型的用法 Wh…

万界星空/推出生产制造执行MES系统/开源MES/免费下载

免费MES系统介绍 什么是MES系统呢&#xff1f;MES系统主要功能就是解决“如何生产”的问题。通过实施MES系统&#xff0c;一站式解决您所困扰的所有生产制作流程问题。 普通的免费MES系统只提供简单的基本功能让客户体验&#xff0c;而万界星空MES系统运用低代码的形式开发&a…