点击蓝字 关注我们

哈喽,小朋友们!今天我们要进入一个充满冒险和挑战的中世纪世界啦!想象一下,你是一位勇敢的指挥官,指挥着士兵们与敌人战斗,保卫自己的基地,是不是很刺激?今天我们就用Scratch来做一个超级好玩的"中世纪战争"游戏!

真正的课程导入语:同学们!有没有想过自己能成为一位伟大的将军,指挥千军万马与敌人作战?今天的Scratch课堂,我们就要解锁超酷的"中世纪战争"游戏开发!想象一下:你亲手指挥不同类型的士兵,有拿着剑的剑士、射箭的弓箭手、会魔法的法师,还有威力强大的投石车!你需要合理分配金币,建造金矿,训练士兵,保卫自己的基地,同时摧毁敌人的基地。通过这节课,我们会学会角色移动、碰撞检测、克隆、变量控制这些核心编程技巧,更能锻炼战略思维和创造力。接下来,就让我们一起化身小小指挥官,用积木搭建属于自己的中世纪战场,看看谁能成为真正的战争之王!准备好开启这场编程冒险了吗?现在,Let's code!

(扫码获取源码)
点击开始按钮,游戏开始
基地会自动获得金币
点击下方按钮购买不同类型的士兵
士兵会自动向敌人基地进军
士兵会与敌人战斗,攻击敌方单位和基地
敌人会不断从对面基地出现
先摧毁对方基地的一方获胜
运动模块:移到x:x,y:y、将X坐标增加、将Y坐标增加、移到最前/最后、面向方向
外观模块:隐藏、显示、切换造型、将大小设置为、将特效设置为、下一个造型
事件模块:当绿旗被点击、当角色被点击、当接收到广播、当作为克隆体启动时
控制模块:重复执行、重复x次、如果xxx那么、等待x秒、克隆、删除克隆体、停止脚本
侦测模块:碰到对象、颜色碰到颜色、按下鼠标
变量模块:新建变量、将变量设置为、将变量增加、显示变量、隐藏变量
列表模块:新建列表、将项目加入列表、删除列表中的项目、替换列表中的项目
声音模块:播放声音、播放声音直到完成
中世纪战争游戏逻辑├── 游戏初始化│ ├── 设置初始变量(金钱、HP、EnemiesHP等)│ ├── 显示开始按钮│ └── 隐藏所有游戏元素├── 游戏开始│ ├── 点击开始按钮│ ├── 广播游戏开始消息│ └── 隐藏开始按钮├── 资源管理│ ├── 金矿自动生产金币│ ├── 购买士兵消耗金币│ └── 购买金矿消耗金币├── 我方单位│ ├── 剑士(swordsman):近距离攻击,生命值中等│ ├── 弓箭手(archer):远距离攻击,生命值低│ ├── 法师(mage):远距离魔法攻击,生命值中等│ ├── 长矛兵(spearman):近距离攻击,生命值高│ └── 投石车(catapult):远距离攻城武器,生命值高├── 敌方单位│ ├── 敌方剑士(enemySwordsman)│ ├── 敌方弓箭手(enemyArcher)│ ├── 敌方法师(enemyMage)│ ├── 敌方长矛兵(enemySpearman)│ └── 敌方投石车(enemyCatapult)├── 战斗系统│ ├── 碰撞检测(士兵碰到敌人或基地)│ ├── 攻击动画和伤害计算│ ├── 死亡动画和删除克隆体│ └── 基地生命值减少├── 胜负判定│ ├── 我方基地生命值为0:游戏失败│ └── 敌方基地生命值为0:游戏胜利
舞台变量:
金钱:记录玩家的金币数量
HP:记录我方基地的生命值
EnemiesHP:记录敌方基地的生命值
shootingArcher:记录弓箭手是否在射击
shootingEnemyArcher:记录敌方弓箭手是否在射击
shootingMage:记录法师是否在施法
newEnemy:控制新敌人的生成
wait:控制敌人生成的等待时间
shootingEnemyMage:记录敌方法师是否在施法
Difficulty:游戏难度
Autospawn:是否自动生成敌人
Autogold:是否自动获得金币
EnemyGoldmines:敌方金矿数量
Next Enemy:下一个要生成的敌人类型
shootingCatapult:记录投石车是否在发射
shootingEnemyCatapult:记录敌方投石车是否在发射
旷工:记录我方金矿数量
舞台代码:当绿旗被点击时,舞台会初始化所有变量,设置背景,然后开始游戏。当接收到特定广播时,会处理敌人生成、金币自动增加等逻辑。

【角色:startButton】
这个角色是游戏的开始按钮,点击它就可以开始游戏啦!
详细程序讲解:当绿旗被点击时,按钮会隐藏一下,然后显示在舞台中央,等待玩家点击。当玩家点击按钮时,它会播放声音,广播游戏开始的消息,然后隐藏自己。
为什么要这样设计呢?因为我们需要一个明确的开始点,让玩家知道游戏什么时候开始。点击按钮的动作也让游戏更有仪式感,就像我们按下游戏手柄的开始键一样!

【角色:yourBase】
这个角色是我们的基地,需要好好保护它哦!
详细程序讲解:当游戏开始时,基地会显示出来,并且设置初始生命值为500。它会不断检查自己的生命值,如果生命值低于400、300、200或100,就会切换不同的造型,显示受损的状态。如果生命值降到0以下,就会广播游戏失败的消息。
为什么要这样设计呢?基地的生命值是游戏的核心目标之一,我们需要让玩家清楚地看到基地的状态变化,就像游戏中血条减少一样,这样玩家就能及时做出反应,购买更多士兵来保护基地。

【角色:enemyBase】
这个角色是敌人的基地,我们的目标就是摧毁它!
详细程序讲解:当游戏开始时,敌方基地会显示出来,并且根据游戏难度设置初始生命值。它也会不断检查自己的生命值,根据生命值的多少切换不同的造型,显示受损的状态。如果生命值降到0以下,就会广播游戏胜利的消息。
为什么要这样设计呢?和我方基地一样,敌方基地的状态变化让玩家知道战斗的进展,当看到敌方基地越来越受损时,玩家会感到兴奋,更有动力继续战斗!

【角色:swordsman】
这个角色是我们的剑士,拿着剑近距离攻击敌人!
详细程序讲解:当我们购买剑士时,会克隆一个剑士角色。克隆体开始时会隐藏,然后设置初始位置和生命值。当它没有碰到敌人时,会一直向前奔跑;当碰到敌人或敌方基地时,会停下来攻击;当被敌人攻击时,会播放受伤动画,生命值减少;当生命值降到0以下时,会播放死亡动画,然后删除自己。
为什么要这样设计呢?剑士是最基础的士兵,移动速度快,攻击力适中,适合用来快速进攻或阻挡敌人。通过克隆技术,我们可以同时拥有多个剑士,就像真正的军队一样!

【角色:archer】
这个角色是我们的弓箭手,可以在远处攻击敌人!
详细程序讲解:当我们购买弓箭手时,会克隆一个弓箭手角色。克隆体开始时会隐藏,然后设置初始位置和生命值。当它没有碰到敌人时,会一直向前奔跑;当跑到一定距离时,会停下来射箭攻击敌人;当被敌人攻击时,会播放受伤动画,生命值减少;当生命值降到0以下时,会播放死亡动画,然后删除自己。
为什么要这样设计呢?弓箭手可以在远处攻击敌人,不需要靠近敌人就能造成伤害,这样可以减少自己受到的攻击。但是弓箭手的生命值比较低,需要其他士兵保护,就像真正的战争中一样,弓箭手通常站在后面,由其他士兵保护。

【角色:mage】
这个角色是我们的法师,可以释放魔法攻击敌人!
详细程序讲解:当我们购买法师时,会克隆一个法师角色。克隆体开始时会隐藏,然后设置初始位置和生命值。当它没有碰到敌人时,会一直向前奔跑;当跑到一定距离时,会停下来释放魔法攻击敌人;当被敌人攻击时,会播放受伤动画,生命值减少;当生命值降到0以下时,会播放死亡动画,然后删除自己。
为什么要这样设计呢?法师的魔法攻击比弓箭手的箭更远,伤害也更高,但是攻击速度比较慢。法师需要更多的金币来购买,就像游戏中高级单位通常更贵一样。

【角色:spearman】
这个角色是我们的长矛兵,生命值很高,可以承受很多伤害!
详细程序讲解:当我们购买长矛兵时,会克隆一个长矛兵角色。克隆体开始时会隐藏,然后设置初始位置和生命值。当它没有碰到敌人时,会一直向前奔跑;当碰到敌人或敌方基地时,会停下来攻击;当被敌人攻击时,有一定几率躲避攻击,减少受到的伤害;当生命值降到0以下时,会播放死亡动画,然后删除自己。
为什么要这样设计呢?长矛兵的生命值很高,可以承受很多伤害,是保护其他脆弱单位(如弓箭手和法师)的最佳选择。长矛兵就像游戏中的"坦克",冲在前面吸引敌人的攻击,为后面的远程单位创造攻击机会。

【角色:catapult】
这个角色是我们的投石车,可以发射巨石攻击敌人的基地!
详细程序讲解:当我们购买投石车时,会克隆一个投石车角色。克隆体开始时会隐藏,然后设置初始位置和生命值。当它没有碰到敌人时,会一直向前奔跑;当跑到一定距离时,会停下来发射巨石攻击敌人的基地;当被敌人攻击时,会播放受伤动画,生命值减少;当生命值降到0以下时,会播放死亡动画,然后删除自己。
为什么要这样设计呢?投石车是专门用来攻击敌方基地的武器,攻击力很高,但是移动速度慢,生命值虽然不低但也需要保护。投石车就像游戏中的"攻城武器",是摧毁敌方基地的重要力量。

【角色:goldmine】
这个角色是我们的金矿,可以自动生产金币!
详细程序讲解:当我们购买金矿时,会克隆一个金矿角色。克隆体开始时会隐藏,然后设置在基地附近的随机位置,开始工作。它会不断地播放挖矿动画,每过一段时间就会生产5个金币,然后播放收集金币的声音。
为什么要这样设计呢?金币是购买士兵和金矿的资源,没有金币就无法购买任何东西。金矿可以自动生产金币,这样玩家就不需要一直手动点击来获得金币,可以更专注于指挥战斗。就像真实的战争中,国家需要不断生产资源来支持军队一样。
游戏中还有各种各样的敌方单位,包括敌方剑士、敌方弓箭手、敌方法师、敌方长矛兵和敌方投石车。它们的行为和我方单位类似,但是会从敌方基地出发,向我方基地进攻。
详细程序讲解:敌方单位会根据游戏难度和时间自动从敌方基地出现。它们会一直向我方基地奔跑,当碰到我方单位或基地时,会停下来攻击。当被我方单位攻击时,会受伤,生命值减少;当生命值降到0以下时,会死亡并被删除。
为什么要这样设计呢?敌方单位是游戏的挑战来源,没有敌人就不是战争游戏了!不同类型的敌方单位会给玩家带来不同的挑战,玩家需要根据敌人的类型选择合适的我方单位来应对,这就锻炼了玩家的战略思维能力。
点击开始按钮:游戏开始时,舞台中央会出现一个开始按钮,点击它就可以开始游戏。
设置难度:在开始按钮下方,有一个难度按钮,点击它可以切换游戏难度(1-4级),难度越高,敌人的生命值越多,游戏越有挑战性。
游戏开始后,屏幕下方会出现一排按钮,分别对应不同的单位:
剑士按钮:点击它花费100金币购买一个剑士。
弓箭手按钮:点击它花费200金币购买一个弓箭手。
法师按钮:点击它花费500金币购买一个法师。
长矛兵按钮:点击它花费300金币购买一个长矛兵。
投石车按钮:点击它花费1000金币购买一个投石车。
金矿按钮:点击它花费100金币购买一个金矿,金矿会自动生产金币。
合理搭配单位:不同的单位有不同的特点,要根据敌人的类型合理搭配。比如,用长矛兵保护弓箭手和法师,用剑士快速进攻,用投石车攻击敌方基地。
控制金币使用:金币是有限的资源,要合理使用。初期可以先购买几个剑士和一个金矿,然后再慢慢购买更高级的单位。
注意基地安全:如果敌人太多,要及时购买士兵来保护基地,不要让基地的生命值降到0以下。
进攻是最好的防守:不要只防守,要积极进攻,摧毁敌方基地才能赢得游戏。
如果想让游戏更有趣,你可以尝试添加一些新功能:
添加更多单位类型:比如骑兵、医生(可以治疗其他单位)、刺客(可以隐身接近敌人)等。
添加升级系统:让士兵可以升级,提高攻击力和生命值。
添加技能系统:给玩家一些特殊技能,比如召唤援兵、使用魔法攻击敌人等。
添加地图:创建不同的地图,比如平原、森林、山地等,不同的地图对不同单位有不同的影响。
添加音效和音乐:为游戏添加更多的音效和背景音乐,让游戏更有氛围。
添加多人模式:让两个玩家可以在同一台电脑上对战,一人控制一边的基地。
通过这个"中世纪战争"游戏,我们学到了很多重要的编程概念:
变量的使用:用变量来记录游戏状态,比如金钱、生命值等。
克隆技术:用克隆体来创建多个相同的单位,就像真正的军队一样。
碰撞检测:用碰撞检测来判断单位是否碰到了敌人或基地。
广播机制:用广播来传递游戏消息,比如游戏开始、游戏结束等。
动画效果:通过切换造型和改变大小来创建动画效果,让游戏更生动。
资源管理:通过金矿自动生产金币,学习资源管理的概念。
战略思维:通过选择不同的单位和战术,锻炼战略思维能力。
小朋友们,你们学会了吗?现在就去试试自己制作一个中世纪战争游戏吧!如果有什么问题,欢迎在评论区留言哦!我们下期再见~拜拜~
喜欢这篇文章的话,记得点赞、收藏、转发给你的小伙伴们哦!我们下期再见!👋

。即使下载了,也要上传,不是特别方便,尤其是不好查找。

关注即可领取,下载不限速,方便快捷。



微信号|scratch-coco