动起来!
让角色动起来,还要抛开传统的方式
那先用传统的方式动起来呢?
捋一下思路
是这样对吧?那么,回到代码区
把上面的实现一下
好啦,这很简单不是吗?
不过这是传统的办法…
我们要改进的话,先把这个缩短!
来我给你看一个好东西!
这是什么?它就是一个布尔值对吧?
有同学要问了:啥是布尔值?
问得好!我们来看看!
了解布尔值
定义:布尔运算是一种数字符号化的逻辑推演法,包括联合、相交和相减,可用于图形处理操作,以组简单的基图形产生新的形体。计算机语言中将逻辑运算称为布尔运算,其结果称为布尔值。
说简单点就是这样↓
一个表达式,成立了就是true,不成立就是fales
但是,你却有所不知……
fales=0,true=1
那么,在知道这一点之后……
你有什么想法了吗?
继续看下去吧!
W与S是在操作中相反的,一个是向前,一个是向后
但是都控制着y轴的数值
有同学又要问了:不是xy是啥啊?
来,我们来好好看看……
了解平面直角坐标系
定义:直角坐标系是一种由两个互相垂直的数轴构成的平面坐标系,通常取水平轴为x轴,垂直轴为y轴,由其公共原点组成原点,标识平面中各点的位置。
y表示y轴
x表示x轴
中间的交叉点为原点,标为0,向箭头方向不断增加↓
就是这样……
每个物体都可以找到自己的位置!
当然在scratch中,它不仅仅只有这么点
在16:9(gandi默认)中x轴有足足640,y轴有360!
可以理解为,x轴的范围从-320到320(从左到右),y轴从-180到180(从下到上)
完成任务
我们既然知道了布尔值可以作为数字1、0 且了解了平面直角坐标系之后,我们来继续我们的事情!
我们想要W是向前,S是向后,然而在坐标系中+是向前,-是向后,所以我们用W-S可以得到x要变的系数
我们列个表格看看↓
x轴系数变化表 | w | s | 结果 |
第一种情况 | 0 | 1 | 0 - 1 = -1(向后) |
第二种情况 | 1 | 0 | 1 - 0 = 1(向前) |
第三种情况 | 1 | 1 | 1 - 1 = 0(不动) |
第四种情况 | 0 | 0 | 0 - 0 = 0(不动) |
这样,系数就出来了
y轴如法炮制↓
y轴系数变化表 | d | a | 结果 |
第一种情况 | 0 | 1 | 0 - 1 = -1(向后) |
第二种情况 | 1 | 0 | 1 - 0 = 1(向前) |
第三种情况 | 1 | 1 | 1 - 1 = 0(不动) |
第四种情况 | 0 | 0 | 0 - 0 = 0(不动) |
代码长这样↓
很不错,对吧!再弄两个变量出来储存玩家x和玩家y
我们在套上增加,一定是增加!不然一直设置就只能原地踏步了
而且AD是x轴,WS是y轴,不明白可以回去看看 任务1-2
但是这只能是1,-1,0太慢了,可不可以乘以一个速度呢?
有啦!
很不错,终于完成了!
👏为自己呱唧呱唧👏
我躺在sofa上面
为自己鼓掌
“I have so many 实力s!”(奇怪的英文,还注意了单复数呢
这一节算是写完了awa
突然我想到了什么!
我垂死病中惊坐起!(好像是这么说的吧
如果我同时按下W和A那么它是不是x和y都要增加?
是不是意味着有bug要出现了?
我又打开电脑
逝了世,好的,在AW同时按下是确实会比只按下A快一些……
掐指一算,大概差了1.4倍的样子。
我该怎么办呢?
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=avg101/ben/lec1/01&type=comment"
title="{冒险游戏初级教程-第一课第一节}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>