一、基础语法三要素
暂时无法在飞书文档外展示此内容

🔑 黄金法则​:每个变量都要声明类型!


二、程序逻辑控制(游戏行为核心)

  1. 条件判断:if-else - “岔路口选择”
    // 捡到金币逻辑
    if (isTouching(Coin.class)) { // 如果碰到金币
    score += 1; // 分数+1
    removeTouching(Coin.class); // 删除金币
    } else { // 否则
    move(); // 继续前进
    }
  2. 循环结构:for - “重复做N次”
    // 生成3个敌人
    for (int i=0; i<3; i++) {
    getWorld().addObject(new Enemy(), 100, 50*i);
    }

三、面向对象编程(OOP)核心概念
🧩 三大特性图解
graph TB
A[类Class] -->|设计图| B[对象Object]
A -->|继承| C[子类Subclass]
B -->|封装| D[方法Method]
[图片]

  1. 类与对象:​乐高说明书 vs 拼好的模型
    // 定义怪物类(说明书)
    class Monster extends Actor {
    private int hp = 50; // 封装血量

    // 行为:碰到子弹掉血
    public void act() {
    if (isTouching(Bullet.class)) {
    hp -= 10; // 减血
    }
    }
    }

// 创建具体怪物(模型)
Monster zombie = new Monster();
2. 继承:​子类获得超能力
class FlyingMonster extends Monster { // 继承Monster
public void fly() { // 新增飞行能力
setLocation(getX(), getY()-5);
}
}


四、Greenfoot专属技术核心
🕹️ 游戏开发四步法

  1. 创建World​(舞台)
    public class GameWorld extends World {
    public GameWorld() {
    super(800, 600, 1); // 宽800px, 高600px
    addObject(new Player(), 100, 300);
    }
    }
  2. 定义Actor行为​(角色行动)
    public void act() {
    checkKeyPress(); // 检测按键
    checkCollision(); // 碰撞检测
    }
  3. 交互检测​(碰撞/按键)
    // 按空格发射子弹
    if(Greenfoot.isKeyDown(“space”)) {
    getWorld().addObject(new Bullet(), getX(), getY());
    }
  4. 游戏状态管理
    // 血量归零游戏结束
    if (hp <= 0) {
    Greenfoot.playSound(“game_over.wav”);
    Greenfoot.stop(); // 停止游戏
    }

五、实用代码片段库
🎮 键盘控制角色移动
public void act() {
if (Greenfoot.isKeyDown(“left”)) setRotation(180);
if (Greenfoot.isKeyDown(“right”)) setRotation(0);
if (Greenfoot.isKeyDown(“up”)) setRotation(270);
if (Greenfoot.isKeyDown(“down”)) setRotation(90);
move(3); // 持续移动
}
💥 碰撞检测与处理
// 碰到敌人掉血
Actor enemy = getOneIntersectingObject(Enemy.class);
if(enemy != null) {
hp -= 20;
setImage(“hurt.png”); // 显示受伤动画
}


✅ 学习路径建议

  1. 基础阶段​:先掌握 变量 → 条件判断 → 循环
  2. 进阶阶段​:理解 类/对象 → 封装 → 继承
  3. 项目实战​:用Greenfoot实现 → [键盘移动] → [发射子弹] → [计分系统]
    ✨ 效率技巧​:
    在Greenfoot中按 Ctrl + 点击类名 查看源码,
    用 右击场景 → 运行参数 调试游戏速度!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91714.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91714.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/91714.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络基础2】路由器的 “两扇门”:二层接口和三层接口到底有啥不一样?

目录 前言:路由器不是只有 “插网线的口” 一、先搞懂一个基础:路由器是 “网络交通枢纽” 二、二层接口:“小区内部的单元门”,只认 “住户身份证” 1. 啥是二层接口? 2. 用 “小区内部串门” 理解二层接口 步骤 1:手机打包数据,写上 “收件人身份证” 步骤 2:二…

MLIR TableGen

简介 TableGen 是一种领域特定语言&#xff08;DSL&#xff09;&#xff0c;TableGen 的设计目标是允许编写灵活的描述&#xff0c;并将记录的通用特性提取出来&#xff0c;从而减少重复代码并提高代码的可维护性。 TableGen的工作流程&#xff1a; 前端解析&#xff1a; Ta…

2、docker容器命令 | 信息查看

1、命令总览命令作用docker ps查看运行中的容器&#xff08;-a查看所有容器&#xff09;docker logs [CONTAINER]查看容器日志&#xff08;-f实时追踪日志&#xff09;docker inspect [CONTAINER]查看容器详细信息&#xff08;JSON格式&#xff09;docker stats [CONTAINER]实时…

【MySQL】MySQL中锁有哪些?

一、按照粒度分类&#xff1a; 粒度越小&#xff0c;并发度越高&#xff0c;锁开销越大。 1.全局锁&#xff1a; 作用&#xff1a; 锁定整个MySQL实例(所有数据库)。适用场景&#xff1a; 全库逻辑部分。(确保备份期间数据的一致性。)实现方式&#xff1a; 通过 FLUSH TABLES W…

语义分割--deeplabV3+

根据论文网络结构图讲一下&#xff1a;网络分为两部分&#xff1a;encoder和decoder部分。 Encoder&#xff1a;DCNN就是主干网络&#xff0c;例如resnet&#xff0c;Xception&#xff0c;MobileNet这些&#xff08;主干网络也要使用空洞卷积&#xff09;&#xff0c;对dcnn的结…

Azure DevOps 中的代理

必知词汇 深入研究 Azure DevOps 中的代理之前需要掌握的基本概念: 代理:Azure DevOps 中的代理是一个软件组件,负责执行流水线中的任务和作业。这可能包括数据中心内的物理服务器、本地或云端托管的虚拟机,甚至是容器化环境。这些代理可以在各种操作系统和环境中运行,例如…

AUTOSAR进阶图解==>AUTOSAR_SRS_ADCDriver

AUTOSAR ADC驱动详解 基于AUTOSAR标准的ADC驱动模块需求规范分析目录 ADC驱动模块概述 关键概念定义 ADC驱动架构 ADC驱动在AUTOSAR分层架构中的位置ADC驱动的主要职责 ADC驱动配置结构 通用配置(AdcGeneral)硬件单元配置(AdcHwUnit)通道配置(AdcChannel)通道组配置(AdcChanne…

宝马集团与SAP联合打造生产物流数字化新标杆

在德国雷根斯堡的宝马工厂&#xff0c;每57秒就有一辆新车下线。这座工厂不仅是汽车制造的基地&#xff0c;更是宝马集团向SAP S/4HANA云平台转型的先锋项目。通过“RISE with SAP”计划&#xff0c;宝马将该工厂的运营系统全面迁移至SAP S/4HANA Cloud Private Edition&#x…

Go 语言实战:构建一个高性能的 MySQL + Redis 应用

引言&#xff1a;为什么是 Go MySQL Redis&#xff1f;在现代后端技术栈中&#xff0c;Go MySQL Redis 的组合堪称“黄金搭档”&#xff0c;被广泛应用于各种高并发业务场景。Go 语言&#xff1a;以其卓越的并发性能、简洁的语法和高效的执行效率&#xff0c;成为构建高性能…

Excel超级处理器,多个word表格模板中内容提取到Excel表格中

在职场中&#xff0c;很多人习惯在word里插入表格&#xff0c;设计模板&#xff0c;填写内容&#xff0c;一旦有多个word文件需要整理在excel表格中&#xff0c;最常见的工作方式就是每个word文件打开&#xff0c;复制&#xff0c;粘贴到excel表格里&#xff0c;这样的工作方式…

前端工程化:ES6特性

本文为个人学习笔记整理&#xff0c;仅供交流参考&#xff0c;非专业教学资料&#xff0c;内容请自行甄别 文章目录一、let与var1.1、越狱问题1.2、变量的重复声明1.3、变量提升问题二、解构2.1、数组解构2.2、对象解构2.3、方法解构三、链判断四、参数默认值五、箭头函数六、模…

大屏项目展示

一、项目克隆与基础操作 我们参考的项目 互联网设备可视化平台---IofTV-Screen: 🔥一个基于 vue、datav、Echart 框架的物联网可视化(大屏展示)模板,提供数据动态刷新渲染、屏幕适应、数据滚动配置,内部图表自由替换、Mixins注入等功能,持续更新.... 将次项目克隆到本…

基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析实践技术应用

在自然和社会科学领域有大量与地理或空间有关的数据&#xff0c;这一类数据一般具有严重的空间异质性&#xff0c;而通常的统计学方法并不能处理空间异质性&#xff0c;因而对此类型的数据无能为力。以地理加权回归为基础的一系列方法&#xff1a;经典地理加权回归&#xff0c;…

【Flask 基础 ①】 | 路由、参数与模板渲染

0 序言 Flask 是 Python 生态中一款轻量级 Web 框架&#xff0c;以简洁、灵活著称。 学习 Flask 的意义在于&#xff1a; 快速开发&#xff1a;通过少量代码即可搭建功能完整的 Web 应用&#xff1b;理解原理&#xff1a;其设计清晰体现了 Web 框架的核心逻辑&#xff0c;如路由…

wordpress登陆前登陆后显示不同的顶部菜单

在WordPress中让“未登录”和“已登录”用户看到不同的顶部菜单&#xff0c;最干净、最安全、最可维护的做法是&#xff1a; 在同一个菜单位置(themelocation)里&#xff0c;根据is_user_logged_in()动态切换菜单。 下面给出三种常见实现方式&#xff0c;按推荐程度排序。任选…

【昇腾推理PaddleOCR】生产级部署方式

已知的在昇腾上推理Paddle OCR有三种方法&#xff1a; 概要&#xff1a; PyTorch官方提供了昇腾插件包&#xff0c;安装后虽然可以支持PytorchOCR和PaddlePaddle的推理任务&#xff0c;但性能较低。换句话说&#xff0c;PaddlePaddle框架层面支持了昇腾&#xff0c;但具体到某个…

LangChain摘要记忆组件的使用与解析

01. 摘要记忆组件的类型 在 LangChain 中使用缓冲记忆组件要不就保存所有信息&#xff08;占用过多容量&#xff09;&#xff0c;要不就保留最近的记忆信息&#xff08;丢失太多重要信息&#xff09;&#xff0c;那么有没有一种情况是既要又要呢&#xff1f; 所以折中方案就出…

NAT与智能选路

1、NAT 基础概念核心作用&#xff1a;私网地址无法在 Internet 上直接使用和分配&#xff0c;NAT 通过将私有地址与公有地址及端口进行转换&#xff0c;实现私网与公网的通信。转换示例&#xff1a;内网用户&#xff08;10.1.1.1&#xff09;访问外网 FTP Server&#xff08;12…

【05】VisionMaster入门到精通——圆查找

文章目录1 运行参数先检测出多个边缘点然后拟合成圆形&#xff0c;可用于圆的定位与测量 1 运行参数 先检测出多个边缘点然后拟合成圆形&#xff0c;可用于圆的定位与测量——运行参数 扇环半径——圆环ROI的内外圆半经&#xff1b; 边绿类型 最强——只检测扫描范围内梯度最…

p5.js 用 beginGeometry () 和 endGeometry () 打造自定义 3D 模型

点赞 关注 收藏 学会了 在 p5.js 的 3D 绘图中&#xff0c;这两个函数是一对 “黄金搭档”&#xff1a; beginGeometry()&#xff1a;像一个 “3D 模型的开关”&#xff0c;调用它之后&#xff0c;你画的所有简单 3D 形状&#xff08;比如球体、圆锥&#xff09;都会被 “…