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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
| import javax.swing.*; import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent;
public class GameJFrame extends JFrame implements ActionListener { JTextArea textArea = new JTextArea(); JMenuItem replayItem = new JMenuItem("重新游戏"); JMenuItem accountItem = new JMenuItem("作者微信"); JButton attackButton = new JButton("攻击对方"); JButton pickupButton = new JButton("捡起装备"); JButton checkPlayerButton = new JButton("查看属性"); JButton advanceButton = new JButton("前进"); JButton retreatButton = new JButton("后退");
public GameJFrame() { initJFrame(); initScrollPane(); initJMenuBar(); initButtons(); GameLogic(); this.setVisible(true); }
private void initJFrame() { this.setSize(800, 800); this.setTitle("Doomsday Game v1.0"); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(3); setLayout(new BorderLayout()); }
private void initScrollPane() { JScrollPane scrollPane = new JScrollPane(textArea); add(scrollPane, BorderLayout.CENTER); Font font = new Font("楷体", Font.BOLD, 40); textArea.setFont(font); textArea.setBackground(Color.black); textArea.setForeground(Color.white); textArea.setLineWrap(true); textArea.setWrapStyleWord(true); textArea.setEditable(false); textArea.append("欢迎来到末日世界游戏!\n请输入您的玩家身份并记得随时查看属性:\n"); }
private void initButtons() { JPanel buttonPanel = new JPanel(new GridLayout(1, 5, 10, 10)); Dimension buttonSize = new Dimension(160, 50); attackButton.addActionListener(this); pickupButton.addActionListener(this); checkPlayerButton.addActionListener(this); advanceButton.addActionListener(this); retreatButton.addActionListener(this); buttonPanel.add(attackButton); buttonPanel.add(pickupButton); buttonPanel.add(checkPlayerButton); buttonPanel.add(advanceButton); buttonPanel.add(retreatButton); add(buttonPanel, BorderLayout.SOUTH); }
private void initJMenuBar() { JMenuBar jMenuBar = new JMenuBar(); JMenu fonctionJMenu = new JMenu("功能"); JMenu aboutJMenu = new JMenu("关于作者"); fonctionJMenu.add(replayItem); aboutJMenu.add(accountItem); replayItem.addActionListener(this); accountItem.addActionListener(this); jMenuBar.add(fonctionJMenu); jMenuBar.add(aboutJMenu); this.setJMenuBar(jMenuBar); }
int Scene = 1; Player player = new Player("吴");
private void GameLogic() { switch (Scene) { case 1: textArea.append("你突然醒来,发现自己身处浓浓的迷雾中\n你尝试询问这是何处,但没有任何回答\n待迷雾渐渐散去,你却惊恐地发现自己的面前是深不见底的悬崖\n"); break; case 2: textArea.append("你转身一看,是一只胖胖的黄色小猫\n"); break; case 3: textArea.append("肉泥渐渐融入地里,很快长出了几朵纯白的花\n"); break; } }
@Override public void actionPerformed(ActionEvent e) { Object obj = e.getSource(); if (Scene == 1) { if (obj == attackButton) { textArea.append("你朝空中挥了一拳\n不过毫无疑问,这是浪费体力的愚蠢行为\n"); } else if (obj == pickupButton) { textArea.append("你往地上摸去,只摸到了几块石头\n"); } else if (obj == checkPlayerButton) { textArea.append(player.toString()); } else if (obj == advanceButton) { textArea.append("你前进了一步,然后愚蠢地掉入了悬崖\n"); player.Die(); } else if (obj == retreatButton) { textArea.append("你后退了一步,却被背后突然发出的声响吓了一跳\n"); Scene = 2; GameLogic(); } } else if (Scene == 2) { if (obj == attackButton) { textArea.append("你极度戒备,立即摸起一块石头\n将小猫砸成了肉泥\n"); Scene=3; GameLogic(); } else if (obj == pickupButton) { textArea.append("你往地上摸去,只摸到了几块石头\n"); } else if (obj == checkPlayerButton) { textArea.append(player.toString()); } else if (obj == advanceButton) { textArea.append("你向前走了一步想要看看小猫\n但是小猫的头颅突然裂开,钻出了几条触手将你撕裂\n并吞入口中\n"); player.Die(); } else if (obj == retreatButton) { textArea.append("你后退了一步,然后愚蠢地掉入了悬崖\n"); player.Die(); } } else if (Scene == 3) { if (obj == attackButton) { textArea.append("你朝空中挥了一拳\n不过毫无疑问,这是浪费体力的愚蠢行为\n"); } else if (obj == pickupButton) { textArea.append("你往地上摸去,只摸到了几块石头\n"); } else if (obj == checkPlayerButton) { textArea.append(player.toString()); } else if (obj == advanceButton) { textArea.append("你慢慢摸索着向前走,迷雾又渐渐加重,将你包裹入其中\n你感受到前所未有的未知恐惧\n"); } else if (obj == retreatButton) { textArea.append("你后退了几步,茫然而又恐惧地蹲了下去,抱紧双臂\n"); } } } }
|