Skip to content

Commit 885634a

Browse files
committed
Merge branch 'DylanMeeus-master'
2 parents 37b6970 + a2cc351 commit 885634a

File tree

2 files changed

+107
-41
lines changed

2 files changed

+107
-41
lines changed

src/com/redomar/game/Game.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.awt.Color;
66
import java.awt.Dimension;
77
import java.awt.Graphics;
8+
import java.awt.im.InputContext;
89
import java.awt.image.BufferStrategy;
910
import java.awt.image.BufferedImage;
1011
import java.awt.image.DataBufferInt;
@@ -56,7 +57,8 @@ public class Game extends Canvas implements Runnable {
5657
private static int steps;
5758
private static boolean devMode;
5859
private static boolean closingMode;
59-
60+
private static boolean isAzertyCountry;
61+
6062
private static JFrame frame;
6163

6264
private static boolean running = false;
@@ -88,12 +90,14 @@ public class Game extends Canvas implements Runnable {
8890
private static GameClient socketClient;
8991
private GameServer socketServer;
9092
private Printing print = new Printing();
91-
93+
private static InputContext context;
94+
9295
/**
9396
* @author Redomar
9497
* @version Alpha 1.8
9598
*/
9699
public Game() {
100+
context = InputContext.getInstance();
97101
setMinimumSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE));
98102
setMaximumSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE));
99103
setPreferredSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE));
@@ -328,7 +332,15 @@ public void render() {
328332
+ WordUtils.capitalizeFully(player
329333
.getSantizedUsername()), 3, getHeight() - 17);
330334
g.setColor(Color.ORANGE);
331-
g.drawString("Press Q to quit", (getWidth()/2)-("Press Q to quit".length()*3), getHeight() -17);
335+
336+
if(context.getLocale().getCountry().equals("BE") || context.getLocale().getCountry().equals("FR"))
337+
{
338+
g.drawString("Press A to quit", (getWidth()/2)-("Press A to quit".length()*3), getHeight() -17);
339+
}
340+
else
341+
{
342+
g.drawString("Press Q to quit", (getWidth()/2)-("Press Q to quit".length()*3), getHeight() -17);
343+
}
332344
g.setColor(Color.YELLOW);
333345
g.drawString(time.getTime(), (getWidth() - 58), (getHeight() - 3));
334346
g.setColor(Color.WHITE);

src/com/redomar/game/InputHandler.java

Lines changed: 92 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.awt.event.KeyEvent;
44
import java.awt.event.KeyListener;
5+
import java.awt.im.InputContext;
56

67
import com.redomar.game.lib.SleepThread;
78
import com.redomar.game.script.PopUp;
@@ -10,7 +11,14 @@
1011

1112
public class InputHandler implements KeyListener {
1213

14+
private boolean isAzertyCountry;
15+
1316
public InputHandler(Game game) {
17+
InputContext context = InputContext.getInstance();
18+
// Important to know wether the keyboard is in Azerty or Qwerty.
19+
// Azerty countries used QZSD instead of WASD keys.
20+
isAzertyCountry = context.getLocale().getCountry().equals("BE")
21+
|| context.getLocale().getCountry().equals("FR");
1422
game.addKeyListener(this);
1523
}
1624

@@ -32,8 +40,8 @@ public void toggle(boolean isPressed) {
3240
numTimesPressed++;
3341
}
3442
}
35-
36-
public void off(){
43+
44+
public void off() {
3745
pressed = false;
3846
numTimesPressed = 0;
3947
}
@@ -48,7 +56,7 @@ public void off(){
4856
private int map;
4957
private boolean ignoreInput = false;
5058
private PopUp popup = new PopUp();
51-
59+
5260
public void keyPressed(KeyEvent e) {
5361
toggleKey(e.getKeyCode(), true);
5462
}
@@ -62,21 +70,34 @@ public void keyTyped(KeyEvent e) {
6270
}
6371

6472
public void toggleKey(int keyCode, boolean isPressed) {
65-
if(isIgnoreInput() == false){
66-
if (keyCode == KeyEvent.VK_W || keyCode == KeyEvent.VK_UP) {
67-
getUp().toggle(isPressed);
73+
if (isIgnoreInput() == false) {
74+
if (isAzertyCountry) {
75+
if (keyCode == KeyEvent.VK_Z || keyCode == KeyEvent.VK_UP) {
76+
getUp().toggle(isPressed);
77+
}
78+
79+
if (keyCode == KeyEvent.VK_Q || keyCode == KeyEvent.VK_LEFT) {
80+
getLeft().toggle(isPressed);
81+
}
82+
} else {
83+
if (keyCode == KeyEvent.VK_W || keyCode == KeyEvent.VK_UP) {
84+
getUp().toggle(isPressed);
85+
}
86+
87+
if (keyCode == KeyEvent.VK_A || keyCode == KeyEvent.VK_LEFT) {
88+
getLeft().toggle(isPressed);
89+
}
6890
}
91+
6992
if (keyCode == KeyEvent.VK_S || keyCode == KeyEvent.VK_DOWN) {
7093
getDown().toggle(isPressed);
7194
}
72-
if (keyCode == KeyEvent.VK_A || keyCode == KeyEvent.VK_LEFT) {
73-
getLeft().toggle(isPressed);
74-
}
95+
7596
if (keyCode == KeyEvent.VK_D || keyCode == KeyEvent.VK_RIGHT) {
7697
getRight().toggle(isPressed);
7798
}
7899
}
79-
if(isIgnoreInput() == true){
100+
if (isIgnoreInput() == true) {
80101
getUp().toggle(false);
81102
getDown().toggle(false);
82103
getLeft().toggle(false);
@@ -85,24 +106,41 @@ public void toggleKey(int keyCode, boolean isPressed) {
85106
if (keyCode == KeyEvent.VK_M) {
86107
this.setPlayMusic(true);
87108
}
88-
if (keyCode == KeyEvent.VK_Z) {
89-
// if (map == 0){
90-
// Game.getGame().setMap("/levels/water_level.png");
91-
// map++;
92-
// } else{
93-
// Game.getGame().setMap("/levels/custom_level.png");
94-
// map--;
95-
// }
96-
if (Game.getMap() == 2) {
97-
Game.setChangeLevel(true);
98-
Game.setNpc(false);
109+
110+
if (isAzertyCountry) {
111+
if (keyCode == KeyEvent.VK_W) {
112+
// if (map == 0){
113+
// Game.getGame().setMap("/levels/water_level.png");
114+
// map++;
115+
// } else{
116+
// Game.getGame().setMap("/levels/custom_level.png");
117+
// map--;
118+
// }
119+
if (Game.getMap() == 2) {
120+
Game.setChangeLevel(true);
121+
Game.setNpc(false);
122+
}
123+
}
124+
} else {
125+
if (keyCode == KeyEvent.VK_Z) {
126+
// if (map == 0){
127+
// Game.getGame().setMap("/levels/water_level.png");
128+
// map++;
129+
// } else{
130+
// Game.getGame().setMap("/levels/custom_level.png");
131+
// map--;
132+
// }
133+
if (Game.getMap() == 2) {
134+
Game.setChangeLevel(true);
135+
Game.setNpc(false);
136+
}
99137
}
100138
}
101139
if (keyCode == KeyEvent.VK_N) {
102-
if (Game.getPlayer().isMoving()){
140+
if (Game.getPlayer().isMoving()) {
103141
setIgnoreInput(true);
104142
int n = popup.Warn("Stop moving before spawing dummy AI");
105-
if(n == 0){
143+
if (n == 0) {
106144
setIgnoreInput(false);
107145
}
108146
return;
@@ -120,31 +158,47 @@ public void toggleKey(int keyCode, boolean isPressed) {
120158
print.print("Dummy has been despawned", PrintTypes.GAME);
121159
}
122160
}
123-
if (keyCode == KeyEvent.VK_Q){
124-
Game.setClosing(true);
125-
try {
126-
Thread.sleep(1000);
127-
} catch (InterruptedException e) {
128-
e.printStackTrace();
161+
if (isAzertyCountry) {
162+
if (keyCode == KeyEvent.VK_A) {
163+
Game.setClosing(true);
164+
try {
165+
Thread.sleep(1000);
166+
} catch (InterruptedException e) {
167+
e.printStackTrace();
168+
}
169+
Game.getLevel().removeEntity(
170+
Game.getPlayer().getSantizedUsername());
171+
Game.setRunning(false);
172+
Game.getFrame().dispose();
173+
System.exit(1);
174+
}
175+
} else {
176+
if (keyCode == KeyEvent.VK_Q) {
177+
Game.setClosing(true);
178+
try {
179+
Thread.sleep(1000);
180+
} catch (InterruptedException e) {
181+
e.printStackTrace();
182+
}
183+
Game.getLevel().removeEntity(
184+
Game.getPlayer().getSantizedUsername());
185+
Game.setRunning(false);
186+
Game.getFrame().dispose();
187+
System.exit(1);
129188
}
130-
Game.getLevel().removeEntity(Game.getPlayer().getSantizedUsername());
131-
Game.setRunning(false);
132-
Game.getFrame().dispose();
133-
System.exit(1);
134189
}
135190

136-
if (keyCode == KeyEvent.VK_BACK_QUOTE){
137-
if (Game.isClosing() == false && Game.isDevMode() == false){
191+
if (keyCode == KeyEvent.VK_BACK_QUOTE) {
192+
if (Game.isClosing() == false && Game.isDevMode() == false) {
138193
Game.setDevMode(true);
139194
new Thread(new SleepThread());
140195
}
141196
}
142197
}
143-
144-
public void untoggle(boolean toggle){
198+
199+
public void untoggle(boolean toggle) {
145200
this.ignoreInput = toggle;
146201
}
147-
148202

149203
public int getMap() {
150204
return map;

0 commit comments

Comments
 (0)