全国服务热线:400-6263-721

位置:厦门小码王少儿编程 > 学校动态 > Scratch与Python Arcade对比整理

Scratch与Python Arcade对比整理

来源:厦门小码王少儿编程时间:2023/6/6 15:33:00

Scratch是少儿编程入门的标配了,Python也是乘着AI造势的东风,不少孩子在学,当然Python的确也是很适合入门的语言。
但是学了Scratch之后的孩子再学Python,究竟怎么起步?

在这里 拿Scratch与Python的Arcade游戏库作一下对比,以便找到一条教孩子们入门Python的较佳路线。

为什么选择了Arcade游戏库呢?之前有一篇发布的文章,说了说自己对教学、对游戏的思考:

Arcade游戏库的接口与Scratch的实现方式相似度还是极高的。好好利用这一游戏库,可以帮助学生顺利从Scratch过渡至Python。详细情况请见下方大表。
左 Scratch 右 Python Arcade

(?表示无对应实现)

运动
移动……步移到(随机/鼠标/角色)位置移到x……y……将x/y坐标增加……将x/y坐标设为…… sprite.position/center_x/center_y
左转/右转……度面向……方向面向(鼠标/角色) sprite.angle/radians
在……秒内滑行到x……y……在……秒内滑行到(随机位置/鼠标指针/角色) sprite.position/center_x/center_ywindow.on_update()(间接实现)
碰到边缘就反弹 sprite.collides_with_point()/collides_with_sprite()/collides_with_list()
(间接实现)
将旋转方式设为左右翻转 arcade.load_texture(flipped_horizontally: bool = False)


外观
说……2秒/说……思考……2秒/思考…… arcade.draw_text()
换成……造型下一个造型 arcade.load_texture()arcade.load_texture_pair()arcade.load_textures()sprite.cur_texture_index/texture/texturessprite.set_texture()
换成……背景下一个背景 window.background_color/current_viewwindow.show_view()
将大小增加……将大小设为…… sprite.scale
将颜色/鱼眼/漩涡/像素化/马赛克/亮度增加/设定为……
将虚像增加/设定为……显示/隐藏 sprite.alpha
移到较前面/后面前/后移……层 (用window.on_draw中代码调用的先后顺序实现)


声音
播放声音…… sound.play()
播放声音……等待播完 sound.play()/get_length/is_complete()/get_stream_position()/get_length()(间接实现)
停止所有声音 sound.stop()
将音量增加/设为…… sound.get_volume()/set_volume()
将音调/左右平衡音效增加/设为……


事件
当小绿旗被点击 window.__init__()/setup()
当按下……键 window.on_key_press()/on_key_release()
当角色被点击 window.on_mouse_press()/on_mouse_release()
当背景换成…… (间接实现)
当响度大于……
广播……/广播……并等待/当接收到…… (间接实现)
(使用重复执行+移到鼠标指针间接实现) window.on_mouse_motion()/on_mouse_drag()


控制
等待……秒 window.on_update(delta_time)(间接实现)
重复执行……次/重复执行 for i in rangefor item in itemswhile
如果……那么……如果……那么……否则…… ifif elseif elif else
等待…… whileif(间接实现)
重复执行直到…… for i in rangefor item in itemswhileifif elseif elif else(间接实现)
停止这个脚本/当前角色的其他脚本/全部脚本 breakwindow.close()
克隆自己/角色当作为克隆体启动时删除此克隆体 (使用Sprite类+SpriteList实现)


侦测
碰到鼠标指针/舞台边缘/角色 sprite.collides_with_point()/collides_with_sprite()/collides_with_list()(间接实现)
碰到颜色……颜色……碰到颜色……
到……的距离 arcade.get_distance()arcade.get_distance_between_sprites()
询问……并等待/回答
计时器 window.on_update()(间接实现)
当前时间的年/月/日/星期/时/分/秒2000年至今的天数 (使用datetime库实现)
用户名


运算
+-*/><= +-*/><=
在a和b之间取随机数 random.randint(a,b)
a与b a and b
a或b a or b
a不成立 not a
连接a和b 'a'+'b'
abc的第1个字符 'abc'[0]
abc的字符数 len(abc)
abc包含a a in abc
a除以b的余数 a%b
四舍五入a round(a)
值a abs(a)
向上取整a math.ceil(a)
向下取整a math.floor(a)
平方根等其他运算符 (略)


变量
将a设为0 a = 0
将a增加1 a += 1
显示变量 print(a)
隐藏变量 #print(a)
适用于所有角色的变量 self.a
仅适用于当前角色的变量 self._aself.__a
? 函数局部变量


列表
将e加入list list.append(e)
删除list的第i项 list.pop(i)
删除list的全部项 list.clear()
在list的第i项前插入x list.insert(i,x)
将list的第i项替换为x list[i]=x
list的第i项 list[i]
list中个x的编号 list.index(x)str_list.find(x)
list的项目数 len(list)
list包含x x in list
显示列表list print(list)
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/8400/news/629647/违者必究! 以上就是厦门小码王少儿编程 小编为您整理 Scratch与Python Arcade对比整理的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6263-721