当前位置: 首页 > news >正文

Java基本技术讲解

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

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


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

  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.lryc.cn/news/609097.html

相关文章:

  • 深入解析C++函数重载:从原理到实践
  • 【1】WPF界面开发入门—— 图书馆程序:登录界面设计
  • K8S部署ELK(五):集成Kibana实现日志可视化
  • B+树索引结构原理解析与最佳实践
  • 创建型设计模式:对象诞生的艺术与智慧
  • 设计模式学习[17]---组合模式
  • 控制建模matlab练习06:比例积分控制-②PI控制器
  • 【stm32】按键控制LED以及光敏传感器控制蜂鸣器
  • STM32-驱动OLED显示屏使用SPI(软件模拟时序)实现
  • Spring Boot 的事务注解 @Transactional 失效的几种情况
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-55,(知识点:STM32,外设及其特点)
  • 前端开发(HTML,CSS,VUE,JS)从入门到精通!第四天(DOM编程和AJAX异步交互)
  • 08【C++ 初阶】类和对象(下篇) --- 类知识的额外补充
  • MySQL 事务原理 + ACID笔记
  • 计算机网络(TCP篇)
  • Python3 中使用zipfile进行文件(夹)的压缩、解压缩
  • Qt-vs加载exe图标
  • 【机器人】VLN-R1 微调 | 增强训练 | 连续导航
  • 江协科技STM32 14-1 WDG看门狗
  • 一键安装RabbitMQ脚本
  • 数据结构(概念及链表)
  • 【数据分享】各省粮食外贸依存度、粮食波动率等粮食相关数据合集(2011-2022)(获取方式看文末)
  • 达梦数据库备份与还原终极指南:从基础到增量策略实战
  • 【2025/08/03】GitHub 今日热门项目
  • Spring 核心之 Bean 管理:配置、作用域与生命周期详解
  • 计算机核心概念辨析与解析
  • LeetCode 2122.还原原数组
  • OpenWrt | 如何在 ucode 脚本中打印日志
  • C语言的基本结构
  • 加密流量论文复现:《Detecting DNS over HTTPS based data exfiltration》(上)