はじめに:Javaでゲームが作れるって知ってた?
「ゲームを自分で作ってみたい!」
その夢、Javaでも叶えられます!
Javaはスマホ・Web・業務システムだけでなく、2Dゲームの制作にも向いている言語です。
ゲームを作ることで、プログラミングの力がぐんぐん伸びていきます。
今回は、プログラミング初心者がJavaでゲームを作る方法を、やさしく順を追って解説します。
1. Javaゲーム開発に必要な環境
🛠 開発ツールを準備しよう:
- JDK(Java Development Kit):Javaを動かす基盤
- IDE(統合開発環境):Eclipse、IntelliJ IDEA、VSCodeなど
✅ 最初のコードで確認!
1 |
public class HelloGame {<br> public static void main(String[] args) {<br> System.out.println("ゲームを作ろう!");<br> }<br>}<br> |
これが実行できたら、準備はOKです!
2. CUIゲームから始めてみよう
🎯 ミニゲーム①:「数当てゲーム」
1 |
import java.util.Scanner;<br>import java.util.Random;<br><br>public class NumberGuess {<br> public static void main(String[] args) {<br> Random rand = new Random();<br> int answer = rand.nextInt(10) + 1;<br> Scanner sc = new Scanner(System.in);<br> int guess;<br><br> System.out.println("1〜10の数字を当ててください");<br><br> do {<br> System.out.print("予想:");<br> guess = sc.nextInt();<br> if (guess < answer) {<br> System.out.println("もっと大きい!");<br> } else if (guess > answer) {<br> System.out.println("もっと小さい!");<br> }<br> } while (guess != answer);<br><br> System.out.println("正解!");<br> sc.close();<br> }<br>}<br> |
💡ここで学べること:
Random
で乱数生成Scanner
で入力受付if
とdo-while
でループ制御
3. Java2Dで描画してみよう
Javaには「Java2D」という描画機能があり、図形や文字を画面に描くことができます。
🎨 簡単な円の描画:
1 |
import javax.swing.*;<br>import java.awt.*;<br><br>public class DrawCircle extends JPanel {<br> public void paintComponent(Graphics g) {<br> super.paintComponent(g);<br> g.setColor(Color.BLUE);<br> g.fillOval(50, 50, 100, 100);<br> }<br><br> public static void main(String[] args) {<br> JFrame frame = new JFrame("円の描画");<br> DrawCircle panel = new DrawCircle();<br> frame.add(panel);<br> frame.setSize(300, 300);<br> frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br> frame.setVisible(true);<br> }<br>}<br> |
4. ゲームループの基礎
ゲームでは、**「描画→待機→更新→再描画」**を繰り返します。これを「ゲームループ」といいます。
⏱ ゲームループの例(タイマー利用):
1 |
import javax.swing.*;<br>import java.awt.*;<br>import java.awt.event.*;<br><br>public class MovingBall extends JPanel implements ActionListener {<br> int x = 0;<br> Timer timer = new Timer(20, this);<br><br> public MovingBall() {<br> timer.start();<br> }<br><br> public void paintComponent(Graphics g) {<br> super.paintComponent(g);<br> g.fillOval(x, 100, 30, 30);<br> }<br><br> public void actionPerformed(ActionEvent e) {<br> x++;<br> repaint();<br> }<br><br> public static void main(String[] args) {<br> JFrame frame = new JFrame();<br> MovingBall ball = new MovingBall();<br> frame.add(ball);<br> frame.setSize(400, 300);<br> frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br> frame.setVisible(true);<br> }<br>}<br> |
5. イベント処理で操作できるようにしよう
ゲームでは、キーボード操作やマウス操作が欠かせません。
🎮 キーボード操作の例(KeyListener):
1 |
import javax.swing.*;<br>import java.awt.*;<br>import java.awt.event.*;<br><br>public class MoveBox extends JPanel implements KeyListener {<br> int x = 150, y = 150;<br><br> public MoveBox() {<br> setFocusable(true);<br> addKeyListener(this);<br> }<br><br> public void paintComponent(Graphics g) {<br> super.paintComponent(g);<br> g.fillRect(x, y, 30, 30);<br> }<br><br> public void keyPressed(KeyEvent e) {<br> int code = e.getKeyCode();<br> if (code == KeyEvent.VK_UP) y -= 10;<br> if (code == KeyEvent.VK_DOWN) y += 10;<br> if (code == KeyEvent.VK_LEFT) x -= 10;<br> if (code == KeyEvent.VK_RIGHT) x += 10;<br> repaint();<br> }<br><br> public void keyReleased(KeyEvent e) {}<br> public void keyTyped(KeyEvent e) {}<br><br> public static void main(String[] args) {<br> JFrame frame = new JFrame("操作ゲーム");<br> MoveBox box = new MoveBox();<br> frame.add(box);<br> frame.setSize(400, 300);<br> frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br> frame.setVisible(true);<br> }<br>}<br> |
6. ミニゲームを作ってみよう!
🎮 例:「じゃんけんゲーム」
1 |
import java.util.Scanner;<br>import java.util.Random;<br><br>public class RockPaperScissors {<br> public static void main(String[] args) {<br> Scanner sc = new Scanner(System.in);<br> Random rand = new Random();<br> String[] hands = {"グー", "チョキ", "パー"};<br><br> System.out.print("0:グー 1:チョキ 2:パー → ");<br> int user = sc.nextInt();<br> int cpu = rand.nextInt(3);<br><br> System.out.println("あなた:" + hands[user]);<br> System.out.println("相手:" + hands[cpu]);<br><br> if (user == cpu) {<br> System.out.println("あいこ!");<br> } else if ((user + 1) % 3 == cpu) {<br> System.out.println("あなたの負け!");<br> } else {<br> System.out.println("あなたの勝ち!");<br> }<br><br> sc.close();<br> }<br>}<br> |
7. GUI版ゲームに挑戦しよう(Swing)
SwingでGUIゲームを作ると、見た目も操作も一気にレベルアップ!
JFrame
→ ウィンドウJButton
→ ボタンJLabel
→ ラベル(文字表示)
GUIの構築例はこれまでのミニアプリとも連動させて応用できます。
8. 作ったゲームを公開・共有!
🔸 JARファイルとして保存
IDE(Eclipseなど)で「Export → Runnable JAR File」とすれば、誰でも実行できる形式にできます。
🔸 GitHubで作品をアップ
コードを公開して感想やアドバイスをもらいましょう。
9. さらに学びたいあなたへ
🔹 自分で学ぶなら…
📘 絶対にJavaプログラマーになりたい人へ。
ミニゲームにも応用できる、文法+例題の王道本です!
🔹 サポートを受けながら作りたい人は…
- ゲームコードのレビューOK
- 初心者からの転職支援も対応
- ゲームを作りながら学べる学習コースも!
✨まとめ
ゲーム開発は、学習に最高のモチベーションと実力を与えてくれます。
まずは小さなミニゲームから、楽しく始めてみましょう!
コメント