【激分かりやすく!!】javaでじゃんけんゲームプログラム!!

公開 : → 更新 :

お久しぶりです。
ゲーム制作ページのブログなのに、なんか全然ゲーム制作できてないですね。

今作ってるゲームもちょっと放置プレイ状態だし……。
ちょっと待ったー!誰が放置プレイ状態だとっ!! (すんません、放置してました。

というわけで、今回は、放置プレイをされ続け、性的快感を得ていた『javaじゃんけんプログラム君』を完成させることにより、逆に性的快感を与えたいと思います。

ちなみに前回の記事は、一つ前のブログの記事『Javaで本格じゃんけんゲームを作ろうぜ!』の続きとなっております。ほぼ一年が経っております。

続きといっても、別に前の記事を見なくても理解できる様に、今回の記事は書いていくつもりです。
Javaの開発環境が整っている状態からのスタートです。eclipseもインストールしておいて下さい。

では、作っていきましょう!

続きとは書きましたが、前回のじゃんけんプログラムは、コンソールに文字が表示されるだけという糞プログラムでした!
せめてウィンドウを表示させたい。出来れば野球拳にしたい(しません)。と殆どの人がお思いでしょう。

じゃんけんゲーム

画像の様な、じゃんけんゲームを作っていこうと思います。
全く文字だけです。脱ぎません。

しかし、これを元に、野球拳を作ることも可能です。
まずは基礎を覚えて、野球拳をつくろう!(作りません

では、ウィンドウを表示させてみたいと思います。
まずは、ズボンの社会のウィンドウを………

Contents

新しいプロフジェクトとクラスを作成する

では、前回のJankenGameというプロジェクトは、放置して、新たにプロジェクトを作っていきます。(また放置かよ!

新規プロジェクトの作成

前回と同様に『File』→『New』→『Java Project』の順番でクリックしていきます。

New Java Project

今回はProject nameを、JankenGameWindowとします。ウィンドウを表示しますからねぇ。

そして、JREは、『Use a project specific JRE』を選択し、今回は『Java SE 7』を選びます。
現在のJavaの最新バージョンは、『Java SE 8』で、こちらは機能が増えておりますが、今回は特に使わないので、とりあえず『Java SE 7』でいきます。

では、Finishをクリックして、完了です。

クラスを作成する

それでは、クラスを作っていきましょう。

こちらも前回と同様に作っていきます。画面上部の『File』→『New』→『Class』と選択します。

すろと、この様な画面が表示されるので、画像の様に、入力します。

New Java Class

最後にFinishをクリックしてクラスが作成されます。
ここでの入力は、後々少しずつ解説したいと思います。

出来たソースの解説

package com.original_game.janken;

public class GameMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

一行目はパッケージですね。先ほどクラスを作った時、packageの所に入力しましたのが、この部分となります。
ちなみにこれは、ドメインを逆さまにしたものに、適当な名前をつけて使うことが多いと思います。同じものが出来てはいけないので、世界に一つのドメインを逆さまにするのが習慣のようです。
ドメインなんてねーよ!って方は、適当に。。。

本当は、original-game.comというドメインですが、ハイフン(-)が使えないので、今回はアンダースコア(_)を使っています。

三行目のGameMainクラスの中に、public static void main(String[] args){}と書かれています。
これは、プログラムの一番最初に読まれるメソッドです。

これは、先ほどクラスを作成した時に下の方に一つチェックが入っていましたね。
このチェックを入れると、このメソッドを自動的に作ってくれるのです。

また、四行目のコメントアウトされた部分は、ただのメモみたいなものです。
日本語でおkということで、削除しても構いません。

JFrameでウィンドウの表示

さて、ここからプログラミングらしくなってきましたね。
画像の様なウィンドウを表示します。今回はJFrameを使用します。

じゃんけんゲーム

ウィンドウが表示されると、やっぱりゲーム感がでてきますね。

ウィンドウ表示のプログラムを書いてみよう!

では、早速ソースを書いていきましょう。

package com.original_game.janken;

import javax.swing.JFrame;						//(1)

public class GameMain {

	public static void main(String[] args) {
		//ウィンドウの表示
		JFrame frame = new JFrame("じゃんけんゲーム");		//(2)
		frame.setSize(640, 480);				//(3)
		frame.setLocationRelativeTo(null);			//(4)
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	//(5)
		frame.setResizable(false);				//(6)
		frame.setVisible(true);					//(7)
	}
}

上のコードで、ウィンドウを表示することが出来ます。

(1)は、JFrameを簡単に書く為の処理をしています。もしもこれが書かれていない場合、(2)の部分で、

JFrame frame = new JFrame(“じゃんけんゲーム”);
を、
javax.swing.JFrame frame = new javax.swing.JFrame(“じゃんけんゲーム”);
と書く必要が生じます。
つまり、楽する為にimport文を書くという感じです。
ちなみに、(1)を書かなくても、先に(2)を書いて『Shift』+『command(windowsならばControl)』+『アルファベットのO』で、自動的に記述することが可能です。

(2)では、JFrameクラスのインスタンスを作っています。インスタンスって?
正直難しいですね。インスタンスとは、型から作られたものがインスタンスという感じでしょうか。

クッキーを焼く時に例えれば、色々な型で形を作りますね。その型がクラス(今回で言うJFrame)。
さらに、その型の形に切り取られたものがインスタンスって感じです。

なので、一つのクラスから、複数の似た様なインスタンスが生成できるのです。今回は一つだけですが。
まぁ、難しいことは考えずに、ここで目には見えないウィンドウを作成したと思って下さい。

(3)では、作ったウィンドウのサイズを設定しています。ここは単純に640*480のサイズに設定しました。

(4)で、ウィンドウを画面の中心に設定します。

(5)で、ウィンドウの×をクリックして終了できる様にします。これがないと、×をクリックしても終了しないというド変態なウィンドウになってしまいます。

(6)で、ウィンドウのサイズを固定します。これがないと、ウィンドウのサイズが自由に変更できてしまうので、ゲーム全体のレイアウトが崩れたりします。

(7)で、見えなかったウィンドウを実際に表示します。

ウィンドウに三つのパネルを貼付ける。

なんで三つなんでしょう?
今回のじゃんけんゲームでは、ウィンドウを三つに分割して作っていきたいと思っています。

何故三つのパネルを貼るのか?

今回のじゃんけんゲームでは、今の状況を説明する部分と、ゲームのメインとなる部分、そしてゲームを操作する部分の三つに分けるという感じで作っていこうと思います。

header panel contents panel footer panel

今回は、一番上のパネルをヘッダーパネル(header panel)、真ん中のパネルをコンテンツパネル(contents panel)、一番下のパネルをフッターパネル(footer panel)とします。

実際にパネルを貼付けてみる。

では、実際にパネルを貼付けてみましょう。ますはヘッダーパネルから貼付けようと思います。
パネルを表示するプログラムを書いてみましょう。

パネル表示のプログラムは、import文以外setVisibleよりも前に書きます。
何故なら、setVisibleでウィンドウ内のパネルなどの表示も同時にされるからです。

package com.original_game.janken;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JPanel;

public class GameMain {

	public static void main(String[] args) {
		//ウィンドウの設定
		javax.swing.JFrame frame = new javax.swing.JFrame("じゃんけんゲーム");
		frame.setSize(640, 480);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		
		//パネルの表示
		JPanel headerPanel = new JPanel();				//(1)
		
		headerPanel.setBackground(Color.BLACK);				//(2)
		
		Dimension HeaderPanelDimension = new Dimension(640, 50);	//(3)
		headerPanel.setPreferredSize(HeaderPanelDimension);		//(4)
		
		frame.add(headerPanel,BorderLayout.NORTH);			//(5)
		
		//ウィンドウの表示
		frame.setVisible(true);
	}
}

import文は『Shift』+『command(windowsならばControl)』+『アルファベットのO』で自動的に記述できるので、良いとして。。。

(1)では、JPanelクラスのインスタンスを生成しています。先ほどはJFrameでしたが、今度はJPanelのインスタンスです。

(2)で、そのパネル全体の色を指定します。今回は黒を指定しました。

(3)は(1)と同様にインスタンスの生成ですが、今度はDimensionクラスのインスタンスを生成します。Dimensionって?
640と50を引数として指定してやると、横幅640、縦幅50に設定されます。
それを(4)の様にすると、横幅640、縦幅50のパネルということになります。

そして、最後に(5)では、ここまでで設定したパネル(headerPanel)を、ウィンドウ(frame)に追加するという感じです。
BorderLayout.NORTHで、パネルを追加する位置を指定しています。今回は一番上に表示したいので、NORTHとしました。

同様にほかのパネルも表示する。

では、同様にコンテンツパネル、フッタパネルも表示していこうと思います。

じゃんけんゲーム

この二つのパネルを表示すれば、この様になります。
ちょっとだけゲームって感じになってきませんか?

package com.original_game.janken;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JPanel;

public class GameMain {

	public static void main(String[] args) {
		//ウィンドウの設定
		javax.swing.JFrame frame = new javax.swing.JFrame("じゃんけんゲーム");
		frame.setSize(640, 480);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		
		///////パネルの表示///////
		//ヘッダパネル
		JPanel headerPanel = new JPanel();
		headerPanel.setLayout(new BorderLayout());
		headerPanel.setBackground(Color.BLACK);
		Dimension headerPanelDimension = new Dimension(640, 50);
		headerPanel.setPreferredSize(headerPanelDimension);
		frame.add(headerPanel,BorderLayout.NORTH);
		
		//コンテンツパネル
		JPanel contentsPanel = new JPanel();
		contentsPanel.setLayout(new BorderLayout());
		contentsPanel.setBackground(Color.WHITE);
		frame.add(contentsPanel,BorderLayout.CENTER);
		
		//フッタパネル
		JPanel footerPanel = new JPanel();
		footerPanel.setLayout(new BorderLayout());
		footerPanel.setBackground(Color.BLACK);
		Dimension footerPanelDimension = new Dimension(640, 50);
		footerPanel.setPreferredSize(footerPanelDimension);
		frame.add(footerPanel,BorderLayout.SOUTH);
		
		//ウィンドウの表示
		frame.setVisible(true);
	}
}

ここでふと、似た様な記述が多くて無駄なことやってんじゃないの?と思ったアナタは鋭い!
正直言って、似た様な部分は一つにまとめることが出来ます。

メソッドを使い、繰り返し使う部分を何度も呼び出して使う。

ここで登場するのが、メソッドでございます。
メソッドとは、繰り返し使う部分を別の所に記述し、なんども呼び出して使うとこで、ソースを少なくすることが出来ます。

メソッドを使用して、プログラムを書き換えてみる。

それではメソッドを使って、ソースをまとめてみましょう!

package com.original_game.janken;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JPanel;

public class GameMain {

	public static void main(String[] args) {
		//ウィンドウの設定
		javax.swing.JFrame frame = new javax.swing.JFrame("じゃんけんゲーム");
		frame.setSize(640, 480);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		
		///////パネルの表示///////
		//ヘッダパネル
		Dimension headerPanelDimension = new Dimension(640, 50);
		JPanel headerPanel = settingPanel(Color.BLACK,headerPanelDimension);	//(1)
		frame.add(headerPanel,BorderLayout.NORTH);
		
		//コンテンツパネル
		Dimension contentsPanelDimension = new Dimension(640, 380);
		JPanel contentsPanel = settingPanel(Color.WHITE,contentsPanelDimension);
		frame.add(contentsPanel,BorderLayout.CENTER);
		
		//フッタパネル
		Dimension footerPanelDimension = new Dimension(640, 50);
		JPanel footerPanel = settingPanel(Color.BLACK,footerPanelDimension);
		frame.add(footerPanel,BorderLayout.SOUTH);
		
		//ウィンドウの表示
		frame.setVisible(true);
	}
	//パネルの設定
	public static JPanel settingPanel(Color color,Dimension PanelDimension) {		//(2)
		JPanel panel = new JPanel();
		panel.setPreferredSize(PanelDimension);
		panel.setLayout(new BorderLayout());
		panel.setBackground(color);
		return(panel);
	}
}

それぞれ重なった部分を、ソース一番下のパネルの設定の部分に移動させています。

ヘッダパネルであれば、(1)で、メソッドを呼び出しています。
(1)の()の中に書かれたものは引数といい、ここに書いた値を、(2)での()の中で宣言した変数が受け取ります。

そしてこの値を元に、(2)のメソッド内でパネルの設定をします。
最後にそれをreturn文で(1)に返し、(1)のheaderPanelに入ります。

これを戻り値と言います。

パネル内に文字を表示してみよう!

パネル内に文字を表示しようと思うのですが、文字を表示するだけでも、色々な設定があります。

何も考えずに文字を表示しようとすると?

文字を表示するには、JLabelクラスを使います。

じゃんけんゲーム「さあ、じゃんけんで勝負だ!」

と、言う感じで作りたいのですが、ヘッダーパネルに表示するだけでも

JLabel headerLabel = new JLabel("「さあ、じゃんけんで勝負だ!」");
headerLabel.setForeground(Color.WHITE);
Font headerLabelFont = new Font("MS ゴシック",Font.PLAIN,24);
headerLabel.setFont(headerLabelFont);
headerLabel.setHorizontalAlignment(JLabel.CENTER);
headerLabel.setVerticalAlignment(JLabel.CENTER);
headerPanel.add(headerLabel);

という記述が必要になります。長くね!?

とりあえず、説明しますと。。。
一行目で、JLabelクラスのインスタンスを生成し、引数を「さあ、じゃんけんで勝負だ!」という文字列(String型)にします。
二行目で、文字の色を指定し、
三行目で、Fontクラスのインスタンスを生成。書体やフォントサイズを引数とし、四行目のsetFontで、それを設定します。
五行目で水平位置、六行目で垂直位置を中央に指定し、
六行目で設定したラベルをヘッダパネルに追加するという感じです。

でもさ、これをコンテンツパネルでも同じことを書くのは無駄な気がするし、かといってパネル設定のメソッド、settingPanelの中にぶち込むのは、文字列や色、フォントサイズは部分部分で変えたい時に、引数の数が多すぎて、見る人が訳分かんなくなっちゃいそうじゃ無いの。

フォント設定のメソッドを作る!

という訳で、もう一つフォントの設定メソッドを作るという形で、プログラム全体を変更してみたいと思います。

じゃんけんゲーム「さあ、じゃんけんで勝負だ!」じゃんけん

こんな感じになります。

package com.original_game.janken;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

import javax.swing.JLabel;
import javax.swing.JPanel;

public class GameMain {

	public static void main(String[] args) {
		//ウィンドウの設定
		javax.swing.JFrame frame = new javax.swing.JFrame("じゃんけんゲーム");
		frame.setSize(640, 480);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		
		///////パネルの表示///////
		//ヘッダパネル
		Dimension headerPanelDimension = new Dimension(640, 50);
		JPanel headerPanel = settingPanel(Color.BLACK,headerPanelDimension);
		JLabel headerLabel = new JLabel("「さあ、じゃんけんで勝負だ!」");
		headerLabel = settingFont(Color.WHITE,headerLabel,24);
		headerPanel.add(headerLabel);
		frame.add(headerPanel,BorderLayout.NORTH);
		
		//コンテンツパネル
		Dimension contentsPanelDimension = new Dimension(640, 380);
		JPanel contentsPanel = settingPanel(Color.WHITE,contentsPanelDimension);
		JLabel contentsLabel = new JLabel("じゃんけん・・・");
		contentsLabel = settingFont(Color.BLACK,contentsLabel,54);
		contentsPanel.add(contentsLabel);
		frame.add(contentsPanel,BorderLayout.CENTER);
		
		//フッタパネル
		Dimension footerPanelDimension = new Dimension(640, 50);
		JPanel footerPanel = settingPanel(Color.BLACK,footerPanelDimension);
		frame.add(footerPanel,BorderLayout.SOUTH);
		
		//ウィンドウの表示
		frame.setVisible(true);
	}
	
	//パネルの設定
	public static JPanel settingPanel(Color color,Dimension PanelDimension) {
		JPanel panel = new JPanel();
		panel.setPreferredSize(PanelDimension);
		panel.setLayout(new BorderLayout());
		panel.setBackground(color);
		return(panel);
	}
	
	//フォントの設定
	public static JLabel settingFont(Color clr,JLabel label,int strSize) {
		label.setForeground(clr);
		Font labelFont = new Font("MS ゴシック",Font.PLAIN,strSize);
		label.setFont(labelFont);
		label.setHorizontalAlignment(JLabel.CENTER);
		label.setVerticalAlignment(JLabel.CENTER);
		return(label);
	}
}

今までの流れが理解できている人は、今回のフォントの設定の話も理解できていると思います。
全部、上で説明した話ですからね。わっかんねーよ!って人は、上をもう一度読み返せば理解できると思います。

ボタンを作ってみよう!

後ボタンさえあれば、形にはなると。
早くボタンを作りたい!という訳で、ボタンを作ってみます。

じゃんけんゲーム「さあ、じゃんけんで勝負だ!」じゃんけんグーチョキパー

この様な状態になります。まだ、クリックしても何も起きないけどね!

ボタンを表示するプログラムを書いてみる

それでは、ボタンを表示するプログラムを書いてみますが、恒例の無駄の多いプログラムから。

ボタンを表示するには、以下のソースが必要です。

int buttonSizeX = (640 - 20)/3;
		
JButton btnGu = new JButton("グー");
btnGu.setPreferredSize(new Dimension(buttonSizeX, 50));
btnGu.setFont(new Font("MS ゴシック",Font.PLAIN,24));
footerPanel.add(btnGu, BorderLayout.WEST);
		
JButton btnChoki = new JButton("チョキ");
btnChoki.setPreferredSize(new Dimension(buttonSizeX, 50));
btnChoki.setFont(new Font("MS ゴシック",Font.PLAIN,24));
footerPanel.add(btnChoki, BorderLayout.CENTER);
		
JButton btnPa = new JButton("パー");
btnPa.setPreferredSize(new Dimension(buttonSizeX, 50));
btnPa.setFont(new Font("MS ゴシック",Font.PLAIN,24));
footerPanel.add(btnPa, BorderLayout.EAST);
		
frame.add(footerPanel,BorderLayout.SOUTH);

もう、こんなソースは見たくもありませんね。糞ソースです。お好み焼きにかけてもマズそうです。

とりあえず、一行目が何なのか意味が分からないと思うのですが、ボタンを横並びに三つ表示したいので、ウィンドウの横幅から適当に20引いた値を三で割ったもの、つまりボタン一つの横幅を表しています。

ではこの糞ソースをsettingButtonというメソッドを作って、繰り返しをまとめます。

package com.original_game.janken;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class GameMain {

	public static void main(String[] args) {
		//ウィンドウの設定
		javax.swing.JFrame frame = new javax.swing.JFrame("じゃんけんゲーム");
		frame.setSize(640, 480);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		
		///////パネルの表示///////
		//ヘッダパネル
		Dimension headerPanelDimension = new Dimension(640, 50);
		JPanel headerPanel = settingPanel(Color.BLACK,headerPanelDimension);
		JLabel headerLabel = new JLabel("「さあ、じゃんけんで勝負だ!」");
		headerLabel = settingFont(Color.WHITE,headerLabel,24);
		headerPanel.add(headerLabel);
		frame.add(headerPanel,BorderLayout.NORTH);
		
		//コンテンツパネル
		Dimension contentsPanelDimension = new Dimension(640, 370);
		JPanel contentsPanel = settingPanel(Color.WHITE,contentsPanelDimension);
		JLabel contentsLabel = new JLabel("じゃんけん・・・");
		contentsLabel = settingFont(Color.BLACK,contentsLabel,54);
		contentsPanel.add(contentsLabel);
		frame.add(contentsPanel,BorderLayout.CENTER);
		
		//フッタパネル
		Dimension footerPanelDimension = new Dimension(640, 60);
		JPanel footerPanel = settingPanel(Color.BLACK,footerPanelDimension);

		//ボタンを表示
		JButton btnGu = new JButton("グー");
		btnGu = settingButton(btnGu);
		footerPanel.add(btnGu, BorderLayout.WEST);
		
		JButton btnChoki = new JButton("チョキ");
		btnChoki = settingButton(btnChoki);
		footerPanel.add(btnChoki, BorderLayout.CENTER);
		
		JButton btnPa = new JButton("パー");
		btnPa = settingButton(btnPa);
		footerPanel.add(btnPa, BorderLayout.EAST);
		
		frame.add(footerPanel,BorderLayout.SOUTH);
		
		//ウィンドウの表示
		frame.setVisible(true);
	}
	
	//パネルの設定
	public static JPanel settingPanel(Color color,Dimension PanelDimension) {
		JPanel panel = new JPanel();
		panel.setPreferredSize(PanelDimension);
		panel.setLayout(new BorderLayout());
		panel.setBackground(color);
		return(panel);
	}
	
	//フォントの設定
	public static JLabel settingFont(Color clr,JLabel label,int strSize) {
		label.setForeground(clr);
		Font labelFont = new Font("MS ゴシック",Font.PLAIN,strSize);
		label.setFont(labelFont);
		label.setHorizontalAlignment(JLabel.CENTER);
		label.setVerticalAlignment(JLabel.CENTER);
		return(label);
	}
	
	//ボタンの設定
	public static JButton settingButton(JButton button) {
		int buttonSizeX = (640 - 20)/3;
		Dimension buttonDimesion = new Dimension(buttonSizeX, 50);
		button.setPreferredSize(buttonDimesion);
		Font buttonFont = new Font("MS ゴシック",Font.PLAIN,24);
		button.setFont(buttonFont);
		return(button);
	}
}

やっていることは、インスタンスを生成して……と、今までとほぼ変わりないんで省きます。

そろそろソースが長くなって読みにくいと思っている人が殆どでしょう。
そこでクラスというものを使ってみます。

新しくクラスを作り、ソースを分かりやすくする。

クラスって、学校とかのクラスか?
と、思ってしまいますが、まぁ、実際そんな感じでしょう。

しかし、Javaでのクラスは、学校のクラスの様にテキトーに1組とか2組とか分かれている訳ではありません。
クラス分けは、ちゃんとその人の役割に合ったクラスでないといけません。

説明よりも実際にやってみる!

説明するより、実際にクラス分けを行ってみましょう。
とりあえず、パネルを生成する関係のものを別のクラスに移動させてみたいと思います。

『File』→『New』→『Class』と選択し、クラスを作成します。

今回はクラス名(Name)をPanelとします。

New Java Class

また、下の方のチェックは何も入れません。
先ほどは、public static void main(String[] args)にチェックを入れましたが、今回も入れてしまうと一番最初にどちらを呼び出していいのか分からなくなってしまいますね。

では、Finishでクラスを作成します。

package com.original_game.janken;

public class Panel {

}

この様なものができました。

パネル関係のものをクラス内にぶち込む。

それでは、この中に、パネル関係のものをぶち込んでいきます。
しかし、ただぶち込むだけでは動きません。どこのクラスにあるのかなども指定してやる必要があります。

パネル関係とは言いましたが、今回はちゃんと実行されるかどうかの確認も行いたい為、フォントの設定やボタンの設定などのメソッドもとりあえずこちらに移動させます。

では、ソースコードを見ていきましょう。

GameMain.java

package com.original_game.janken;


public class GameMain {

	public static void main(String[] args) {
		//ウィンドウの設定
		javax.swing.JFrame frame = new javax.swing.JFrame("じゃんけんゲーム");
		frame.setSize(640, 480);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		Panel.createPanel(frame);
		frame.setVisible(true);
	}
}

Panel.java

package com.original_game.janken;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;



public class Panel{
	public static void createPanel(JFrame frame) {
		///////パネルの表示///////
		//ヘッダパネル
		Dimension headerPanelDimension = new Dimension(640, 50);
		JPanel headerPanel = settingPanel(Color.BLACK,headerPanelDimension);
		JLabel headerLabel = new JLabel("「さあ、じゃんけんで勝負だ!」");
		headerLabel = settingFont(Color.WHITE,headerLabel,24);
		headerPanel.add(headerLabel);
		frame.add(headerPanel,BorderLayout.NORTH);
		
		//コンテンツパネル
		Dimension contentsPanelDimension = new Dimension(640, 370);
		JPanel contentsPanel = settingPanel(Color.WHITE,contentsPanelDimension);
		JLabel contentsLabel = new JLabel("じゃんけん・・・");
		contentsLabel = settingFont(Color.BLACK,contentsLabel,54);
		contentsPanel.add(contentsLabel);
		frame.add(contentsPanel,BorderLayout.CENTER);
		
		//フッタパネル
		Dimension footerPanelDimension = new Dimension(640, 60);
		JPanel footerPanel = settingPanel(Color.BLACK,footerPanelDimension);

		//ボタンを表示
		JButton btnGu = new JButton("グー");
		btnGu = settingButton(btnGu);
		footerPanel.add(btnGu, BorderLayout.WEST);
		
		JButton btnChoki = new JButton("チョキ");
		btnChoki = settingButton(btnChoki);
		footerPanel.add(btnChoki, BorderLayout.CENTER);
		
		JButton btnPa = new JButton("パー");
		btnPa = settingButton(btnPa);
		footerPanel.add(btnPa, BorderLayout.EAST);
		
		frame.add(footerPanel,BorderLayout.SOUTH);
	}
	//パネルの設定
	public static JPanel settingPanel(Color color,Dimension PanelDimension) {
		JPanel panel = new JPanel();
		panel.setPreferredSize(PanelDimension);
		panel.setLayout(new BorderLayout());
		panel.setBackground(color);
		return(panel);
	}
	
	//フォントの設定
	public static JLabel settingFont(Color clr,JLabel label,int strSize) {
		label.setForeground(clr);
		Font labelFont = new Font("MS ゴシック",Font.PLAIN,strSize);
		label.setFont(labelFont);
		label.setHorizontalAlignment(JLabel.CENTER);
		label.setVerticalAlignment(JLabel.CENTER);
		return(label);
	}
	
	//ボタンの設定
	public static JButton settingButton(JButton button) {
		int buttonSizeX = (640 - 20)/3;
		Dimension buttonDimesion = new Dimension(buttonSizeX, 50);
		button.setPreferredSize(buttonDimesion);
		Font buttonFont = new Font("MS ゴシック",Font.PLAIN,24);
		button.setFont(buttonFont);
		return(button);
	}
}

と、まだまだPanel.javaの方が見にくいので、更にクラスを作っていきたいと思います。

Playerクラスを作ってみる。

では、ボタンなど、プレイヤーが操作するものを集めたクラスを作成します。

『File』→『New』→『Class』と選択します。

New Java Class

今回はクラス名(Name)をPlayerとします。
Finishをクリックします。

package com.original_game.janken;

public class Player {

}

それでは、ここにプレイヤーが操作を行う関連のものを移動させていきます。
GameMain.javaは特に変わりはありません。

Playerクラスに移動させる

それでは、プレイヤーの操作に関連する部分を、Playerメソッドに移動させていきます。

GameMain.java

package com.original_game.janken;


public class GameMain {

	public static void main(String[] args) {
		//ウィンドウの設定
		javax.swing.JFrame frame = new javax.swing.JFrame("じゃんけんゲーム");
		frame.setSize(640, 480);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		Panel.createPanel(frame);
		frame.setVisible(true);
	}
}

Panel.java

package com.original_game.janken;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;



public class Panel{
	public static void createPanel(JFrame frame) {
		///////パネルの表示///////
		//ヘッダパネル
		Dimension headerPanelDimension = new Dimension(640, 50);
		JPanel headerPanel = settingPanel(Color.BLACK,headerPanelDimension);
		JLabel headerLabel = new JLabel("「さあ、じゃんけんで勝負だ!」");
		headerLabel = settingFont(Color.WHITE,headerLabel,24);
		headerPanel.add(headerLabel);
		frame.add(headerPanel,BorderLayout.NORTH);
		
		//コンテンツパネル
		Dimension contentsPanelDimension = new Dimension(640, 370);
		JPanel contentsPanel = settingPanel(Color.WHITE,contentsPanelDimension);
		JLabel contentsLabel = new JLabel("じゃんけん・・・");
		contentsLabel = settingFont(Color.BLACK,contentsLabel,54);
		contentsPanel.add(contentsLabel);
		frame.add(contentsPanel,BorderLayout.CENTER);
		
		//フッタパネル
		Dimension footerPanelDimension = new Dimension(640, 60);
		JPanel footerPanel = settingPanel(Color.BLACK,footerPanelDimension);
		Player.createButton(footerPanel);
		
		frame.add(footerPanel,BorderLayout.SOUTH);
	}
	//パネルの設定
	public static JPanel settingPanel(Color color,Dimension PanelDimension) {
		JPanel panel = new JPanel();
		panel.setPreferredSize(PanelDimension);
		panel.setLayout(new BorderLayout());
		panel.setBackground(color);
		return(panel);
	}
	
	//フォントの設定
	public static JLabel settingFont(Color clr,JLabel label,int strSize) {
		label.setForeground(clr);
		Font labelFont = new Font("MS ゴシック",Font.PLAIN,strSize);
		label.setFont(labelFont);
		label.setHorizontalAlignment(JLabel.CENTER);
		label.setVerticalAlignment(JLabel.CENTER);
		return(label);
	}
}

Player.java

package com.original_game.janken;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;

import javax.swing.JButton;
import javax.swing.JPanel;

public class Player {
	//ボタンを表示
	public static void createButton(JPanel footerPanel) {
		JButton btnGu = new JButton("グー");
		btnGu = settingButton(btnGu);
		footerPanel.add(btnGu, BorderLayout.WEST);
		
		JButton btnChoki = new JButton("チョキ");
		btnChoki = settingButton(btnChoki);
		footerPanel.add(btnChoki, BorderLayout.CENTER);
		
		JButton btnPa = new JButton("パー");
		btnPa = settingButton(btnPa);
		footerPanel.add(btnPa, BorderLayout.EAST);
	}
	
	//ボタンの設定
	public static JButton settingButton(JButton button) {
		int buttonSizeX = (640 - 20)/3;
		Dimension buttonDimesion = new Dimension(buttonSizeX, 50);
		button.setPreferredSize(buttonDimesion);
		Font buttonFont = new Font("MS ゴシック",Font.PLAIN,24);
		button.setFont(buttonFont);
		return(button);
	}
}

なんか、フォントの設定がPanelクラスに入ってるというのが少し気に入らないけど、まあいいや。
分割されたことで、ソースが見やすくなったのではないでしょうか。

プレイヤーの操作を反映させる。

今の状態では、形だけで、全くゲームにはなっていません。
ボタンを押しても反応がない。。。押しても引いても揉んでも、反応がないというのは寂しいです。

じゃんけんゲーム「さあ、じゃんけんで勝負だ!」チョキグーチョキパー

やっぱり、相手も何か出してくれなきゃ……。しかし、まずはプレイヤーが出したものと同じものを出すプログラムを作っていきたいと思います。
今回は『反応する!!』というだけ。

ボタンを押すと反応するプログラム

という訳で、ボタンを押すことで反応する様に作っていきたいと思います。
今回はGameMain.javaの変更はありません。

Panel.java

public class Panel{
	public static JLabel headerLabel;
	public static JLabel contentsLabel;
	public static void createPanel(JFrame frame) {
		///////パネルの表示///////
		//ヘッダパネル
		Dimension headerPanelDimension = new Dimension(640, 50);
		JPanel headerPanel = settingPanel(Color.BLACK,headerPanelDimension);
		headerLabel = new JLabel("「さあ、じゃんけんで勝負だ!」");
		headerLabel = settingFont(Color.WHITE,headerLabel,24);
		headerPanel.add(headerLabel);
		frame.add(headerPanel,BorderLayout.NORTH);
		
		//コンテンツパネル
		Dimension contentsPanelDimension = new Dimension(640, 370);
		JPanel contentsPanel = settingPanel(Color.WHITE,contentsPanelDimension);
		contentsLabel = new JLabel("じゃんけん・・・");
		contentsLabel = settingFont(Color.BLACK,contentsLabel,54);
		contentsPanel.add(contentsLabel);
		frame.add(contentsPanel,BorderLayout.CENTER);
		
		//フッタパネル
		Dimension footerPanelDimension = new Dimension(640, 60);
		JPanel footerPanel = settingPanel(Color.BLACK,footerPanelDimension);
		Player.createButton(footerPanel);
		
		frame.add(footerPanel,BorderLayout.SOUTH);
	}
	//パネルの設定
	public static JPanel settingPanel(Color color,Dimension PanelDimension) {
		JPanel panel = new JPanel();
		panel.setPreferredSize(PanelDimension);
		panel.setLayout(new BorderLayout());
		panel.setBackground(color);
		return(panel);
	}
	
	//フォントの設定
	public static JLabel settingFont(Color clr,JLabel label,int strSize) {
		label.setForeground(clr);
		Font labelFont = new Font("MS ゴシック",Font.PLAIN,strSize);
		label.setFont(labelFont);
		label.setHorizontalAlignment(JLabel.CENTER);
		label.setVerticalAlignment(JLabel.CENTER);
		return(label);
	}
}

まず、Panel.javaの方ですが、二行目と三行目でPlayer.javaから、headerLabelとcontentsLabelを使いたいので、この二つをメソッドの外で宣言しました。なので、メソッド内の宣言は外しています。

つづいて、Player.javaの方です。

Player.java

package com.original_game.janken;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JPanel;



public class Player implements ActionListener {
	//ボタンを表示
	public static void createButton(JPanel footerPanel) {
		JButton btnGu = new JButton("グー");
		btnGu = settingButton(btnGu);
		footerPanel.add(btnGu, BorderLayout.WEST);
		
		JButton btnChoki = new JButton("チョキ");
		btnChoki = settingButton(btnChoki);
		footerPanel.add(btnChoki, BorderLayout.CENTER);
		
		JButton btnPa = new JButton("パー");
		btnPa = settingButton(btnPa);
		footerPanel.add(btnPa, BorderLayout.EAST);
	}
	
	//ボタンの設定
	public static JButton settingButton(JButton button) {
		int buttonSizeX = (640 - 20)/3;
		Dimension buttonDimesion = new Dimension(buttonSizeX, 50);
		button.setPreferredSize(buttonDimesion);
		Font buttonFont = new Font("MS ゴシック",Font.PLAIN,24);
		button.setFont(buttonFont);
		
		Player playerClass = new Player();		//(1)
		button.addActionListener(playerClass);		//(1)
		return(button);
	}
	
	//ボタンが押された時の処理
	public void actionPerformed(ActionEvent e) {
		//プレイヤーの出したものが何か決める。
		String command = e.getActionCommand();		//プレイヤーがクリックしたボタンの文字列を変数に代入
		int playerHand = 0;
		if (command.equals("グー")) playerHand = 1;	//playerHandは、グーが1、チョキが2、パーが3とする。
		else if (command.equals("チョキ")) playerHand = 2;
		else if (command.equals("パー"))  playerHand = 3;
		
		if (playerHand == 1) Panel.contentsLabel.setText("グー");
		else if (playerHand == 2) Panel.contentsLabel.setText("チョキ");
		else if (playerHand == 3) Panel.contentsLabel.setText("パー");
	}
}

まず、settingButtonメソッドの終わりの方の(1)二行で、ボタンが押された時のメソッドactionPerformedを呼び出しています。
そして今回は、playerHandの値で、じゃんけんの勝敗を計算していくつもなので、グーが1、チョキが2、パーが3という感じでいきます。

相手もランダムで出す様にし、実際に勝負だ!!

そろそろクラス作成の画像はいらないですよね。。。

『File』→『New』→『Class』と選択し、クラス名を『Computer』として作ります。
下の四つのチェックはいれません。

まずは相手が何を出すか決める。

Computer.java

package com.original_game.janken;

import java.util.Random;

public class Computer {
	public static int decidesComputerHand() {
		Random random = new Random();
		int rnd = random.nextInt(3)+1;		//(1)
		if (rnd == 1) Panel.contentsLabel.setText("グー");
		else if (rnd == 2) Panel.contentsLabel.setText("チョキ");
		else if (rnd == 3) Panel.contentsLabel.setText("パー");
		return (rnd);
	}
}

(1)でランダムな数値を生成します。この様に書くと、1〜3までのランダムな数値が、変数rndに代入されます。

相手の出したものの表示と、ゲームの勝敗!

これで、ゲームは完成となりますが、もう少しやることが。

じゃんけんゲーム「さあ、じゃんけんで勝負だ!」パーグーチョキパー

では、Playerクラスに色々と書き込んでみますが、Playerに関係のないプログラムも書き込んでしまうので、後で整理したいと思います。

Player.java

package com.original_game.janken;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JPanel;

public class Player implements ActionListener {
	private static int point = 0;
	//ボタンを表示
	public static void createButton(JPanel footerPanel) {
		JButton btnGu = new JButton("グー");
		btnGu = settingButton(btnGu);
		footerPanel.add(btnGu, BorderLayout.WEST);
		
		JButton btnChoki = new JButton("チョキ");
		btnChoki = settingButton(btnChoki);
		footerPanel.add(btnChoki, BorderLayout.CENTER);
		
		JButton btnPa = new JButton("パー");
		btnPa = settingButton(btnPa);
		footerPanel.add(btnPa, BorderLayout.EAST);
	}
	
	//ボタンの設定
	public static JButton settingButton(JButton button) {
		int buttonSizeX = (640 - 20)/3;
		Dimension buttonDimesion = new Dimension(buttonSizeX, 50);
		button.setPreferredSize(buttonDimesion);
		Font buttonFont = new Font("MS ゴシック",Font.PLAIN,24);
		button.setFont(buttonFont);
		
		Player playerClass = new Player();
		button.addActionListener(playerClass);
		return(button);
	}
	
	//ボタンが押された時の処理
	public void actionPerformed(ActionEvent e) {
		//プレイヤーの出したものが何か決める。
		String command = e.getActionCommand();		//プレイヤーがクリックしたボタンの文字列を変数に代入
		int playerHand = 0;
		if (command.equals("グー")) playerHand = 1;	//playerHandIntは、グーが1、チョキが2、パーが3とする。
		else if (command.equals("チョキ")) playerHand = 2;
		else if (command.equals("パー"))  playerHand = 3;
		
		int computerHand = Computer.decidesComputerHand();
		
		int playerHandTemp = playerHand;
		playerHandTemp++;
		
		if (playerHand == computerHand) {
			Panel.headerLabel.setText("あいこかよ!(" + point + ")");
		}
		else if ((playerHand == 3 && computerHand == 1)||(playerHandTemp == computerHand)) {
			point+=1;
			Panel.headerLabel.setText("お前の勝ちかよ!(" + point + ")");
		}			
		else {
			point=0;
			Panel.headerLabel.setText("お前の負けかよ!(" + point + ")");
		}
	}
}

ソースの最初の方にprivate static int point = 0;という記述が増えました。
これはじゃんけんで勝ったポイントを表しています。

このじゃんけんゲームのルールは、勝ったらプラス1点、あいこならばプラス0点、負けたら0点に戻るです。
これで、最高何点までいけるかという遊びを、永遠に繰り返すゲームです。楽しい!!(全く面白く無い。

actionPerformedメソッドの終わりの方では、じゃんけんの勝敗をいかに簡単に記述できるかということを考えて、なるべく短く書きました。
後は説明が無くても大体分かるんじゃないでしょうか。

最後にソースを整理する。

じゃんけんの勝敗を決める為のクラスを作成し、ソースを整理していきたいと思います。

クラス名は『VictoryOrDefeat』とします。

ソースを整理してじゃんけんゲームの完成だ!

それでは整理したものがこちらです。

GameMain.java

package com.original_game.janken;


public class GameMain {

	public static void main(String[] args) {
		//ウィンドウの設定
		javax.swing.JFrame frame = new javax.swing.JFrame("じゃんけんゲーム");
		frame.setSize(640, 480);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		Panel.createPanel(frame);
		frame.setVisible(true);
	}
}

Panel.java

package com.original_game.janken;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Panel{
	public static JLabel headerLabel;
	public static JLabel contentsLabel;
	public static void createPanel(JFrame frame) {
		///////パネルの表示///////
		//ヘッダパネル
		Dimension headerPanelDimension = new Dimension(640, 50);
		JPanel headerPanel = settingPanel(Color.BLACK,headerPanelDimension);
		headerLabel = new JLabel("「さあ、じゃんけんで勝負だ!」");
		headerLabel = settingFont(Color.WHITE,headerLabel,24);
		headerPanel.add(headerLabel);
		frame.add(headerPanel,BorderLayout.NORTH);
		
		//コンテンツパネル
		Dimension contentsPanelDimension = new Dimension(640, 370);
		JPanel contentsPanel = settingPanel(Color.WHITE,contentsPanelDimension);
		contentsLabel = new JLabel("じゃんけん・・・");
		contentsLabel = settingFont(Color.BLACK,contentsLabel,54);
		contentsPanel.add(contentsLabel);
		frame.add(contentsPanel,BorderLayout.CENTER);
		
		//フッタパネル
		Dimension footerPanelDimension = new Dimension(640, 60);
		JPanel footerPanel = settingPanel(Color.BLACK,footerPanelDimension);
		Player.createButton(footerPanel);
		
		frame.add(footerPanel,BorderLayout.SOUTH);
	}
	//パネルの設定
	public static JPanel settingPanel(Color color,Dimension PanelDimension) {
		JPanel panel = new JPanel();
		panel.setPreferredSize(PanelDimension);
		panel.setLayout(new BorderLayout());
		panel.setBackground(color);
		return(panel);
	}
	
	//フォントの設定
	public static JLabel settingFont(Color clr,JLabel label,int strSize) {
		label.setForeground(clr);
		Font labelFont = new Font("MS ゴシック",Font.PLAIN,strSize);
		label.setFont(labelFont);
		label.setHorizontalAlignment(JLabel.CENTER);
		label.setVerticalAlignment(JLabel.CENTER);
		return(label);
	}
}

Player.java

package com.original_game.janken;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JPanel;

public class Player implements ActionListener {
	//ボタンを表示
	public static void createButton(JPanel footerPanel) {
		JButton btnGu = new JButton("グー");
		btnGu = settingButton(btnGu);
		footerPanel.add(btnGu, BorderLayout.WEST);
		
		JButton btnChoki = new JButton("チョキ");
		btnChoki = settingButton(btnChoki);
		footerPanel.add(btnChoki, BorderLayout.CENTER);
		
		JButton btnPa = new JButton("パー");
		btnPa = settingButton(btnPa);
		footerPanel.add(btnPa, BorderLayout.EAST);
	}
	
	//ボタンの設定
	public static JButton settingButton(JButton button) {
		int buttonSizeX = (640 - 20)/3;
		Dimension buttonDimesion = new Dimension(buttonSizeX, 50);
		button.setPreferredSize(buttonDimesion);
		Font buttonFont = new Font("MS ゴシック",Font.PLAIN,24);
		button.setFont(buttonFont);
		
		Player playerClass = new Player();
		button.addActionListener(playerClass);
		return(button);
	}
	
	//ボタンが押された時の処理
	public void actionPerformed(ActionEvent e) {
		//プレイヤーの出したものが何か決める。
		String command = e.getActionCommand();		//プレイヤーがクリックしたボタンの文字列を変数に代入
		int playerHand = 0;
		if (command.equals("グー")) playerHand = 1;	//playerHandIntは、グーが1、チョキが2、パーが3とする。
		else if (command.equals("チョキ")) playerHand = 2;
		else if (command.equals("パー"))  playerHand = 3;
		
		int computerHand = Computer.decidesComputerHand();
		
		VictoryOrDefeat.decision(computerHand, playerHand);
	}
}

Computer.java

package com.original_game.janken;

import java.util.Random;

public class Computer {
	public static int decidesComputerHand() {
		Random random = new Random();
		int rnd = random.nextInt(3)+1;
		if (rnd == 1) Panel.contentsLabel.setText("グー");
		else if (rnd == 2) Panel.contentsLabel.setText("チョキ");
		else if (rnd == 3) Panel.contentsLabel.setText("パー");
		return (rnd);
	}
}

VictoryOrDefeat.java

package com.original_game.janken;

public class VictoryOrDefeat {
	private static int point = 0;
	public static final void decision(int computerHand,int playerHand) {
		int playerHandTemp = playerHand;
		playerHandTemp++;
		
		if (playerHand == computerHand) {
			Panel.headerLabel.setText("あいこかよ!(" + point + ")");
		}
		else if ((playerHand == 3 && computerHand == 1)||(playerHandTemp == computerHand)) {
			point+=1;
			Panel.headerLabel.setText("お前の勝ちかよ!(" + point + ")");
		}			
		else {
			point=0;
			Panel.headerLabel.setText("お前の負けかよ!(" + point + ")");
		}
	}
}

いかがだったでしょうか?
納得のいくじゃんけんゲームは出来ましたか?

これを元に、オリジナルのじゃんけんゲームを作ってみて下さい。

今回は、継承とかインターフェースとか、そういう機能はあまり使わなかったのですが……使う部分が無かった。
ちなみに、グーチョキパーの数値で定数とか使ってみるともっと分かりやすいプログラムが書けたりします。

自分自身、javaの勉強は頑張って、こんな講座みたいなことをやってみた訳ですが、まだまだ能力は全然不完全だと思っています。
もしもこんな風に書いた方が良いよってなアドバイスがあれば、気軽にコメントください!

制作したじゃんけんゲームと、サンプルソース。

今回制作したじゃんけんゲームは、サンプルソースと一緒にダウンロード可能にしておきます。良かったらプレイしてみて下さい!

じゃんけんゲームダウンロード!

それでは、今後もゲーム制作続けていきますのでよろしくお願いします!

スポンサードリンク

おすすめの記事♪

Swift

【Xcode7】Swift2でMacアプリ開発。画像を読み込む為のボタンを作る。

[email protected]_is_Rです。 最近はSwiftの記事が多いと思っている人もいるのでは無いでしょうか。実はRは現在、Swiftを使ってゲーム開発のお助けアプリを

java

Javaのクラスとメソッドの違いとは?ゲーム風に解説。

この頃小説を読んでいなく、何か読みたいなと思[email protected]_is_Rです。 Javaを勉強し始めたばかりの人は、何やら難しい単語に混乱する人も多いでしょう。その中で、クラスとメソッドって一体何が

java

【Java】スーパクラス、サブクラスとは?継承について。

猿も木から落ちますが、Rは木から落ちません。だって登らないから。 @It_is_R です。いや、登ろうと思っても登れません。 Javaを使っていると継承という言葉をよく耳にしますよね。どういうも

enchant.js

ゲームに背景画像を表示する方法!( enchant.js )

[email protected]_is_Rです。 ゴールデンウィークいかがお過ごしでしょうか。 今回は、 enchant.js を使った横スクロールアクションゲームの背景を表示してみようと思います。 空と

【Android Studio】新規プロジェクトを作成する方法。

インスタント焼きそばを作ろうとすると、なぜか焼うどんになります。 @It_is_R です。 しかも、ラーメン作ろうと思うと焼きそばができあがります。 前回、 Android Studio のイ

【Android Studio】開発したアプリの実機テストを行う方法。

[email protected]_is_Rです。 やかましいわ。 今回は Android Studio で実機テストする方法を紹介します。 これからアプリ開発をしていく上で必要不可欠な実機テ

【Android Studio】Button(ボタン)を作る基本中の基本。

ボタンを作る基本中の基本ですが、ボタンを作る[email protected]_is_Rです。 タイトルなんてどうだっていいんです。肝心のなのは真心です。 Androidアプリ開発、7回目とな

enchant.jsのロード画面を、好きな画像に変更する方法。

[email protected]_is_Rです。 enchant.jsのロード画面はカッコわるいなとずっと思っていました。「あ、これenchant.jsで作ったんだな」って思われてしまうじゃないで

developing my games

男性が海の世界へと迷い込む!?人魚ストーリーのゲーム開発中です。

こんにちわ。現在様々な方面からゲーム開発中の@It_is_Rです。 今回はRが今、超頑張って制作中のゲームについて書いてみようと思います。 今開発中のゲームは横スクロールアクションゲームと、人

enchant.js100行未満!!本格シューティングゲーム作り方。

[email protected]_is_Rです。 さて、今回はenchant.jsのネタです。enchant.jsを使うと、javascriptのプログラムがものすごく簡単に書けてしま


コメントをどうぞ!

メールアドレスが公開されることはありません。




Games