Java基本技术讲解
一、基础语法三要素
暂时无法在飞书文档外展示此内容
🔑 黄金法则:每个变量都要声明类型!
二、程序逻辑控制(游戏行为核心)
- 条件判断:if-else - “岔路口选择”
// 捡到金币逻辑
if (isTouching(Coin.class)) { // 如果碰到金币
score += 1; // 分数+1
removeTouching(Coin.class); // 删除金币
} else { // 否则
move(); // 继续前进
} - 循环结构: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]
[图片]
-
类与对象:乐高说明书 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专属技术核心
🕹️ 游戏开发四步法
- 创建World(舞台)
public class GameWorld extends World {
public GameWorld() {
super(800, 600, 1); // 宽800px, 高600px
addObject(new Player(), 100, 300);
}
} - 定义Actor行为(角色行动)
public void act() {
checkKeyPress(); // 检测按键
checkCollision(); // 碰撞检测
} - 交互检测(碰撞/按键)
// 按空格发射子弹
if(Greenfoot.isKeyDown(“space”)) {
getWorld().addObject(new Bullet(), getX(), getY());
} - 游戏状态管理
// 血量归零游戏结束
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”); // 显示受伤动画
}
✅ 学习路径建议
- 基础阶段:先掌握 变量 → 条件判断 → 循环
- 进阶阶段:理解 类/对象 → 封装 → 继承
- 项目实战:用Greenfoot实现 → [键盘移动] → [发射子弹] → [计分系统]
✨ 效率技巧:
在Greenfoot中按 Ctrl + 点击类名 查看源码,
用 右击场景 → 运行参数 调试游戏速度!