当前位置:首页>java>Scratch代码详细教程:复刻《火柴人中世纪战争》!含格斗 / 枪战 / 射击玩法,含完整的素材.

Scratch代码详细教程:复刻《火柴人中世纪战争》!含格斗 / 枪战 / 射击玩法,含完整的素材.

  • 2026-09-05 09:03:06
Scratch代码详细教程:复刻《火柴人中世纪战争》!含格斗 / 枪战 / 射击玩法,含完整的素材.

点击蓝字 关注我们

一、课程导入

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

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

(扫码获取源码)

二、作品效果

  1. 点击开始按钮,游戏开始

  2. 基地会自动获得金币

  3. 点击下方按钮购买不同类型的士兵

  4. 士兵会自动向敌人基地进军

  5. 士兵会与敌人战斗,攻击敌方单位和基地

  6. 敌人会不断从对面基地出现

  7. 先摧毁对方基地的一方获胜

三、用到的模块

  1. 运动模块:移到x:x,y:y、将X坐标增加、将Y坐标增加、移到最前/最后、面向方向

  2. 外观模块:隐藏、显示、切换造型、将大小设置为、将特效设置为、下一个造型

  3. 事件模块:当绿旗被点击、当角色被点击、当接收到广播、当作为克隆体启动时

  4. 控制模块:重复执行、重复x次、如果xxx那么、等待x秒、克隆、删除克隆体、停止脚本

  5. 侦测模块:碰到对象、颜色碰到颜色、按下鼠标

  6. 变量模块:新建变量、将变量设置为、将变量增加、显示变量、隐藏变量

  7. 列表模块:新建列表、将项目加入列表、删除列表中的项目、替换列表中的项目

  8. 声音模块:播放声音、播放声音直到完成

四、逻辑分析

中世纪战争游戏逻辑├── 游戏初始化│   ├── 设置初始变量(金钱、HP、EnemiesHP等)│   ├── 显示开始按钮│   └── 隐藏所有游戏元素├── 游戏开始│   ├── 点击开始按钮│   ├── 广播游戏开始消息│   └── 隐藏开始按钮├── 资源管理│   ├── 金矿自动生产金币│   ├── 购买士兵消耗金币│   └── 购买金矿消耗金币├── 我方单位│   ├── 剑士(swordsman):近距离攻击,生命值中等│   ├── 弓箭手(archer):远距离攻击,生命值低│   ├── 法师(mage):远距离魔法攻击,生命值中等│   ├── 长矛兵(spearman):近距离攻击,生命值高│   └── 投石车(catapult):远距离攻城武器,生命值高├── 敌方单位│   ├── 敌方剑士(enemySwordsman)│   ├── 敌方弓箭手(enemyArcher)│   ├── 敌方法师(enemyMage)│   ├── 敌方长矛兵(enemySpearman)│   └── 敌方投石车(enemyCatapult)├── 战斗系统│   ├── 碰撞检测(士兵碰到敌人或基地)│   ├── 攻击动画和伤害计算│   ├── 死亡动画和删除克隆体│   └── 基地生命值减少├── 胜负判定│   ├── 我方基地生命值为0:游戏失败│   └── 敌方基地生命值为0:游戏胜利

五、具体操作

1. 舞台设置

舞台变量:

  • 金钱:记录玩家的金币数量

  • HP:记录我方基地的生命值

  • EnemiesHP:记录敌方基地的生命值

  • shootingArcher:记录弓箭手是否在射击

  • shootingEnemyArcher:记录敌方弓箭手是否在射击

  • shootingMage:记录法师是否在施法

  • newEnemy:控制新敌人的生成

  • wait:控制敌人生成的等待时间

  • shootingEnemyMage:记录敌方法师是否在施法

  • Difficulty:游戏难度

  • Autospawn:是否自动生成敌人

  • Autogold:是否自动获得金币

  • EnemyGoldmines:敌方金矿数量

  • Next Enemy:下一个要生成的敌人类型

  • shootingCatapult:记录投石车是否在发射

  • shootingEnemyCatapult:记录敌方投石车是否在发射

  • 旷工:记录我方金矿数量

舞台代码:当绿旗被点击时,舞台会初始化所有变量,设置背景,然后开始游戏。当接收到特定广播时,会处理敌人生成、金币自动增加等逻辑。

2. 角色详解

角色:startButton(开始按钮)

【角色:startButton】

这个角色是游戏的开始按钮,点击它就可以开始游戏啦!

详细程序讲解:当绿旗被点击时,按钮会隐藏一下,然后显示在舞台中央,等待玩家点击。当玩家点击按钮时,它会播放声音,广播游戏开始的消息,然后隐藏自己。

为什么要这样设计呢?因为我们需要一个明确的开始点,让玩家知道游戏什么时候开始。点击按钮的动作也让游戏更有仪式感,就像我们按下游戏手柄的开始键一样!

角色:yourBase(我方基地)

【角色:yourBase】

这个角色是我们的基地,需要好好保护它哦!

详细程序讲解:当游戏开始时,基地会显示出来,并且设置初始生命值为500。它会不断检查自己的生命值,如果生命值低于400、300、200或100,就会切换不同的造型,显示受损的状态。如果生命值降到0以下,就会广播游戏失败的消息。

为什么要这样设计呢?基地的生命值是游戏的核心目标之一,我们需要让玩家清楚地看到基地的状态变化,就像游戏中血条减少一样,这样玩家就能及时做出反应,购买更多士兵来保护基地。

角色:enemyBase(敌方基地)

【角色:enemyBase】

这个角色是敌人的基地,我们的目标就是摧毁它!

详细程序讲解:当游戏开始时,敌方基地会显示出来,并且根据游戏难度设置初始生命值。它也会不断检查自己的生命值,根据生命值的多少切换不同的造型,显示受损的状态。如果生命值降到0以下,就会广播游戏胜利的消息。

为什么要这样设计呢?和我方基地一样,敌方基地的状态变化让玩家知道战斗的进展,当看到敌方基地越来越受损时,玩家会感到兴奋,更有动力继续战斗!

角色:swordsman(剑士)

【角色:swordsman】

这个角色是我们的剑士,拿着剑近距离攻击敌人!

详细程序讲解:当我们购买剑士时,会克隆一个剑士角色。克隆体开始时会隐藏,然后设置初始位置和生命值。当它没有碰到敌人时,会一直向前奔跑;当碰到敌人或敌方基地时,会停下来攻击;当被敌人攻击时,会播放受伤动画,生命值减少;当生命值降到0以下时,会播放死亡动画,然后删除自己。

为什么要这样设计呢?剑士是最基础的士兵,移动速度快,攻击力适中,适合用来快速进攻或阻挡敌人。通过克隆技术,我们可以同时拥有多个剑士,就像真正的军队一样!

角色:archer(弓箭手)

【角色:archer】

这个角色是我们的弓箭手,可以在远处攻击敌人!

详细程序讲解:当我们购买弓箭手时,会克隆一个弓箭手角色。克隆体开始时会隐藏,然后设置初始位置和生命值。当它没有碰到敌人时,会一直向前奔跑;当跑到一定距离时,会停下来射箭攻击敌人;当被敌人攻击时,会播放受伤动画,生命值减少;当生命值降到0以下时,会播放死亡动画,然后删除自己。

为什么要这样设计呢?弓箭手可以在远处攻击敌人,不需要靠近敌人就能造成伤害,这样可以减少自己受到的攻击。但是弓箭手的生命值比较低,需要其他士兵保护,就像真正的战争中一样,弓箭手通常站在后面,由其他士兵保护。

角色:mage(法师)

【角色:mage】

这个角色是我们的法师,可以释放魔法攻击敌人!

详细程序讲解:当我们购买法师时,会克隆一个法师角色。克隆体开始时会隐藏,然后设置初始位置和生命值。当它没有碰到敌人时,会一直向前奔跑;当跑到一定距离时,会停下来释放魔法攻击敌人;当被敌人攻击时,会播放受伤动画,生命值减少;当生命值降到0以下时,会播放死亡动画,然后删除自己。

为什么要这样设计呢?法师的魔法攻击比弓箭手的箭更远,伤害也更高,但是攻击速度比较慢。法师需要更多的金币来购买,就像游戏中高级单位通常更贵一样。

角色:spearman(长矛兵)

【角色:spearman】

这个角色是我们的长矛兵,生命值很高,可以承受很多伤害!

详细程序讲解:当我们购买长矛兵时,会克隆一个长矛兵角色。克隆体开始时会隐藏,然后设置初始位置和生命值。当它没有碰到敌人时,会一直向前奔跑;当碰到敌人或敌方基地时,会停下来攻击;当被敌人攻击时,有一定几率躲避攻击,减少受到的伤害;当生命值降到0以下时,会播放死亡动画,然后删除自己。

为什么要这样设计呢?长矛兵的生命值很高,可以承受很多伤害,是保护其他脆弱单位(如弓箭手和法师)的最佳选择。长矛兵就像游戏中的"坦克",冲在前面吸引敌人的攻击,为后面的远程单位创造攻击机会。

角色:catapult(投石车)

【角色:catapult】

这个角色是我们的投石车,可以发射巨石攻击敌人的基地!

详细程序讲解:当我们购买投石车时,会克隆一个投石车角色。克隆体开始时会隐藏,然后设置初始位置和生命值。当它没有碰到敌人时,会一直向前奔跑;当跑到一定距离时,会停下来发射巨石攻击敌人的基地;当被敌人攻击时,会播放受伤动画,生命值减少;当生命值降到0以下时,会播放死亡动画,然后删除自己。

为什么要这样设计呢?投石车是专门用来攻击敌方基地的武器,攻击力很高,但是移动速度慢,生命值虽然不低但也需要保护。投石车就像游戏中的"攻城武器",是摧毁敌方基地的重要力量。

角色:goldmine(金矿)

【角色:goldmine】

这个角色是我们的金矿,可以自动生产金币!

详细程序讲解:当我们购买金矿时,会克隆一个金矿角色。克隆体开始时会隐藏,然后设置在基地附近的随机位置,开始工作。它会不断地播放挖矿动画,每过一段时间就会生产5个金币,然后播放收集金币的声音。

为什么要这样设计呢?金币是购买士兵和金矿的资源,没有金币就无法购买任何东西。金矿可以自动生产金币,这样玩家就不需要一直手动点击来获得金币,可以更专注于指挥战斗。就像真实的战争中,国家需要不断生产资源来支持军队一样。

敌方单位

游戏中还有各种各样的敌方单位,包括敌方剑士、敌方弓箭手、敌方法师、敌方长矛兵和敌方投石车。它们的行为和我方单位类似,但是会从敌方基地出发,向我方基地进攻。

详细程序讲解:敌方单位会根据游戏难度和时间自动从敌方基地出现。它们会一直向我方基地奔跑,当碰到我方单位或基地时,会停下来攻击。当被我方单位攻击时,会受伤,生命值减少;当生命值降到0以下时,会死亡并被删除。

为什么要这样设计呢?敌方单位是游戏的挑战来源,没有敌人就不是战争游戏了!不同类型的敌方单位会给玩家带来不同的挑战,玩家需要根据敌人的类型选择合适的我方单位来应对,这就锻炼了玩家的战略思维能力。

五、具体操作

1. 游戏开始

  1. 点击开始按钮:游戏开始时,舞台中央会出现一个开始按钮,点击它就可以开始游戏。

  2. 设置难度:在开始按钮下方,有一个难度按钮,点击它可以切换游戏难度(1-4级),难度越高,敌人的生命值越多,游戏越有挑战性。

2. 购买单位

游戏开始后,屏幕下方会出现一排按钮,分别对应不同的单位:

  1. 剑士按钮:点击它花费100金币购买一个剑士。

  2. 弓箭手按钮:点击它花费200金币购买一个弓箭手。

  3. 法师按钮:点击它花费500金币购买一个法师。

  4. 长矛兵按钮:点击它花费300金币购买一个长矛兵。

  5. 投石车按钮:点击它花费1000金币购买一个投石车。

  6. 金矿按钮:点击它花费100金币购买一个金矿,金矿会自动生产金币。

3. 战斗技巧

  1. 合理搭配单位:不同的单位有不同的特点,要根据敌人的类型合理搭配。比如,用长矛兵保护弓箭手和法师,用剑士快速进攻,用投石车攻击敌方基地。

  2. 控制金币使用:金币是有限的资源,要合理使用。初期可以先购买几个剑士和一个金矿,然后再慢慢购买更高级的单位。

  3. 注意基地安全:如果敌人太多,要及时购买士兵来保护基地,不要让基地的生命值降到0以下。

  4. 进攻是最好的防守:不要只防守,要积极进攻,摧毁敌方基地才能赢得游戏。

六、课程拓展

如果想让游戏更有趣,你可以尝试添加一些新功能:

  1. 添加更多单位类型:比如骑兵、医生(可以治疗其他单位)、刺客(可以隐身接近敌人)等。

  2. 添加升级系统:让士兵可以升级,提高攻击力和生命值。

  3. 添加技能系统:给玩家一些特殊技能,比如召唤援兵、使用魔法攻击敌人等。

  4. 添加地图:创建不同的地图,比如平原、森林、山地等,不同的地图对不同单位有不同的影响。

  5. 添加音效和音乐:为游戏添加更多的音效和背景音乐,让游戏更有氛围。

  6. 添加多人模式:让两个玩家可以在同一台电脑上对战,一人控制一边的基地。

七、总结

通过这个"中世纪战争"游戏,我们学到了很多重要的编程概念:

  1. 变量的使用:用变量来记录游戏状态,比如金钱、生命值等。

  2. 克隆技术:用克隆体来创建多个相同的单位,就像真正的军队一样。

  3. 碰撞检测:用碰撞检测来判断单位是否碰到了敌人或基地。

  4. 广播机制:用广播来传递游戏消息,比如游戏开始、游戏结束等。

  5. 动画效果:通过切换造型和改变大小来创建动画效果,让游戏更生动。

  6. 资源管理:通过金矿自动生产金币,学习资源管理的概念。

  7. 战略思维:通过选择不同的单位和战术,锻炼战略思维能力。

小朋友们,你们学会了吗?现在就去试试自己制作一个中世纪战争游戏吧!如果有什么问题,欢迎在评论区留言哦!我们下期再见~拜拜~


喜欢这篇文章的话,记得点赞、收藏、转发给你的小伙伴们哦!我们下期再见!👋

01
—
程序素材
获取程序素材,扫码加入QQ群,在群文件中
02
—
scratch素材--软件集成版
给孩子找素材是一件麻烦的事情,找的图片还有可能给孩子扣好背景,或者扣成孩子想要的样子。即使去淘宝买的素材,也要从百度网盘,但素材太多大了或者太多文件,也要充值百度网盘超级会员才能保存,提高下载速度。即使下载了,也要上传,不是特别方便,尤其是不好查找。
口口老师深知各位家长的痛点,将常用素材集成在软件角色和背景库当中,无需上传,只需要角色/背景库中查找。更有每月更新版,让孩子专注于编程,发挥创意即可。
关注即可领取,下载不限速,方便快捷。

微信号|scratch-coco

最新文章

随机文章