Day34 ( 游戏设计 ) 射击外星人

射击外星人

教学原文参考:射击外星人

这篇文章会介绍,如何在 Scratch 3 里使用建立分身、移动、重复无限次、绘制角色、变数...等积木,实作简单的射击外星人游戏。

相关文章参考:重复移动建立分身

角色设定

在角色编辑区,删除猫咪角色,使用绘画,绘制三个新角色,分别是大炮、子弹和外星人 ( 参考:造型与绘图 )。

Scratch 3 教学 - 射击外星人

大炮角色使用圆形和方形绘制,炮口向右,轴心定义在角色中心点的位置。

Scratch 3 教学 - 射击外星人

子弹角色使用圆形绘制,因为子弹会从炮口发射出,所以将子弹位置移动到接近炮口的位置

Scratch 3 教学 - 射击外星人

外星人角色使用笔刷绘制,绘制「两个造型」,一个是「正常」的状态,另外一个是「被打到」( 被子弹打到 )的状态。

Scratch 3 教学 - 射击外星人

再来将舞台背景更换成宇宙星空的背景,舞台上就能看到大炮、子弹和外星人,出现在宇宙里中。

Scratch 3 教学 - 射击外星人

积木程序原理 ( 大炮 )

点击「大炮」角色,将大炮定位到舞台中间正下方,使用重复无限次积木,让大炮跟着滑鼠转动

Scratch 3 教学 - 射击外星人

积木程序原理 ( 子弹 )

点击「子弹」角色,因为会发射多颗子弹,所以透过「分身」建立子弹,当滑鼠移动时,将子弹「面朝滑鼠方向」,当滑鼠按下时,设定每隔 0.1 秒发射子弹,避免按着滑鼠时,出现一连串子弹的状况,当分身产生时,使用重复无限次积木,让子弹移动,就能做出发射子弹的效果。最後设定碰到舞台边缘和外星人时,就让删除子弹分身。

注意,碰到外星人时,有额外等待 0.01 秒,避免删除了子弹分身,影响到外星人的程序判断

Scratch 3 教学 - 射击外星人

完成後,点击绿旗,就可以移动滑鼠旋转大炮,点击滑鼠就能发射子弹。

Scratch 3 教学 - 射击外星人

积木程序原理 ( 外星人 )

点击「外星人」角色,因为外星人会不断出现,所以透过「分身」建立外星人,设定每隔 1 秒,从舞台最上方水平随机位置,产生一个外星人分身,接着透过重复无限次积木,让外星人往下移动,设定碰到子弹的时候,透过重复 4 次积木,让外星人进行碰到子弹的造型切换,最後删除分身。

Scratch 3 教学 - 射击外星人

完成效果

完成後,点击绿旗,就可以看到外星人不断出现并往下移动,使用滑鼠旋转大炮,点击滑鼠就能发射子弹,射击外星人。

Scratch 3 教学 - 射击外星人

范例解答

范例解答:射击外星人

延伸练习

如果已经熟悉了射击外星人的原理,还可以尝试更多好玩的作法:

  • 使用「函式」积木,让出现的外星人移动速度会有所不同。( 解答 )
  • 加入计分与扣分机制,打到外星人可以加分,外星人碰到底部会扣分。( 解答 )

关於我

大家好,我是 OXXO,是个即将迈入中年的斜杠青年,如果对我有点兴趣(笑,可以与我联系,一起来做点有玩又有创意的东西吧!


<<:  Day20-React 简易动画篇-上篇

>>:  Day34 ( 电子元件 ) 小夜灯 ( 光敏电阻 )

[Day 9] 逻辑回归 (Logistic Regression)

逻辑回归 (Logistic Regression) 今日学习目标 认识逻辑回归 线性分类器 逻辑回...

【没钱买ps,PyQt自己写】Day 19 - 使用 QProgressBar,制作进度条的功能

看完这篇文章你会得到的成果图 前言 这篇我们要来学一个新的东西 QProgressBar! QPro...

Day 27:刷题

前言 刷题是应徵流程的一环,但并不是每一家公司都要,通常小公司比较不会有刷题的环节,可以把刷题想成是...

【Day7】:GPIO输入输出(下)

昨天讲完了基本的输入输出模式,而事实上输出有分成两种,开漏输出与推挽输出,我们来实际看一下这两种模式...

我们的基因体时代-AI, Data和生物资讯 Day07- 蛋白质结构和机器学习02:AlphaFold2 和 RoseTTAFold

上一篇我们的基因体时代-AI, Data和生物资讯 Day06-蛋白质结构和机器学习01我们继续分享...