文章

命令模式

状态模式是一种行为型模式,它允许对象在内部状态发生改变时改变它的行为。在游戏设计中,状态模式通常用于处理游戏对象的状态,例如游戏角色的生命值、装备状态等。下面是一个简单的状态模式的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public interface PlayerState {
    void attack();
    void defend();
}

public class NormalState implements PlayerState {
    public void attack() {
        // 普通状态下的攻击行为
    }
    
    public void defend() {
        // 普通状态下的防御行为
    }
}

public class InjuredState implements PlayerState {
    public void attack() {
        // 受伤状态下的攻击行为
    }
    
    public void defend() {
        // 受伤状态下的防御行为
    }
}

public class Player {
    private PlayerState state;
    
    public Player() {
        state = new NormalState();
    }
    
    public void setState(PlayerState state) {
        this.state = state;
    }
    
    public void attack() {
        state.attack();
    }
    
    public void defend() {
        state.defend();
    }
}

在这个示例中,Player 是一个拥有不同状态的游戏角色。PlayerState 接口定义了角色状态的行为,包括攻击和防御。NormalState 和 InjuredState 分别代表了正常状态和受伤状态,它们实现了 PlayerState 接口,并分别实现了攻击和防御行为。Player 类持有一个状态对象,可以通过 setState() 方法切换状态。当角色进行攻击或防御行为时,它们实际调用的是当前状态对象的方法。

本文由作者按照 CC BY 4.0 进行授权