Java Basic while 文 〜Step1_3_2〜
前回はfor文をやりました。
今回は、兄弟分のwhile文をやります。
書き方は以下の様に書きます。
while (ループする条件) {
// 処理
}
例1 無限ループしますがiが3になったら
ループを抜けます。
int i = 0;
while (true) {
if (i ==3) {
System.out.println(“The End”);
// ループを抜ける処理
break;
}
i++;
}
例2 例1同じ処理
int i = 0;
while (i <=3) {
if (i ==3) {
System.out.println(“The End”);
break;
}
i++;
}
例3 これも同じ
int i = 0;
do {
if (i ==3) {
System.out.println(“The End”);
}
i++;
} while(i <= 3);
以上の様に書きます。
詳細は、このページに記載します。
例1と2は上にループの条件を書きます
例3は条件を下に書きます
時と場合によって使いやすい方を使えば良いと思います。
が、大半は上に条件を書く方でやっちゃいますね(笑)
詳細は下のページにあります。
Java Basic While文 〜 Step1_3_2〜 – PGボックス
ゲームやサーバーの様に待機状態を作るときに
例1の様な書き方を使います。
あくまでやり方の1つです。タイミングを見て
サーバーの通信処理部分の実装をやろうと
思いますが、その時に上記の「while(true)」
の無限ループを使用します。
サンプルの実装はここからダウンロードできます。
ここまでやったらある程度動くものが作れると思います
でわでわ
<問題1>
while文を使って
int型の配列を初期化して5回ループして
計算式を表示した上で答えを表示して
ください。
例
—————————
1+2+3+4+5は
15です
—————————-
<問題2>
while文を使って
String型の配列を初期化して
配列の中身を全て、ループ文を使い
表示して下さい。→ヒントなし
Java Basic for文 〜Step1_3_1〜
前回は、Boolean型とif文に関してやりました。
今回は
毎度お馴染みループ文に関してやります
詳細はこちらに記載してあります。
そして、難敵→配列が出てきます。
charの配列は → char hako;
intは → int hako;
の様に宣言します。
兎にも角にもまずは(for文の)写経という事で
今回は、自分でクラスを作って下さい
public static void main(String args) {
char moji = { ‘m’, ‘o’, ‘j’, ‘i’};
for (int i = 0; i <= 3; i++) {
// println と違います
System.out.print(moji[i]);
}
}
上記の様なメインメソッドがあり
「for」で始まっている部分がループするところです。
詳細は下のページに記載します、
サンプルコードもダウンロードできます。
Java Basic for文 〜Step1_3_1〜 – PGボックス
上記の書き方は基本的な書き方です。
応用という訳ではないですがこんなのも
String[] hako = {“ひらけ”, "ゴマ"};
for(String nakami : hako) {
System.out.print(nakami);
}
拡張for文というやつです。
他にもループの仕方はありますが今回は
これでおしまいです。
でわでわ…
<問題1>
int型の配列を初期化して5回ループして
計算式を表示した上で答えを表示して
ください。
例
—————————
1+2+3+4+5は
15です
—————————-
<問題2>
String型の配列を初期化して
配列の中身を全て、ループ文を使い
表示して下さい。→ヒントなし
Java LWJGL ゲーム作成 〜ゲームの基本処理フロー〜
前回は、LWJGLの開発環境構築を行いました。
とりあえず(中身の解析は全然できませんでしたが)
「ゲームはプログラム的にどのように動いているの?」
と思う方もいると思います。
自分は下のチュートリアルをやって「ああ、そー?」
という感じでした(笑)。
確かに基本的な処理フローがあってしかるべきです。
というわけでその「基本処理フロー」について記載します。
ゲームの処理フロー
1. ゲームアプリケーションの起動
2. 初期化処理(ゲームに必要なリソース読み込み)
3. ゲームのプレイ(ゲームループ)
4. 終了処理
上記のような処理が基本的なフローです。
チュートリアルでは、ゲームループ(GameLoop)について
記載してありました、その実装をアップロードしました。
処理としては、上記の通りですが「ゲームループ」の部分
が重要、というか一番のポイントになります。
ゲームコントローラーの入力→データ更新
→画面の更新と処理を繰り返しゲームを成立させます。
詳細に関しては、以下のページを参照ください
Java Game作成 〜ゲームの処理フロー〜 – PGボックス
上記のページでは、まだ中身を実装していないので
TODOコメントとFIXMEコメントを記載しております。
はっきり言って、ほぼコードです。
そして、処理の中身を実装していないので
→メソッドの呼び出し順くらいしか書くこと
がありませんでした(笑)
この処理フローの中身を実装することで「ゲーム」が
作れます。
まずは概要を掴むということで。。。
でわでわ今回はこんなもんで
関連ページ一覧
LWJGL
- Chapter1[外枠の表示のみ]
- Chapter2-1〜クラスの構成〜
- Chapter2-2〜インターフェースの使い方と詳細〜
- Chapter2-3〜GameEngineクラス(サンプルクラス)〜/li>
- Chapter2-4〜Windowクラス(サンプルクラス)〜
- Chapter3〜描画処理を読む〜
- Chapter4〜シェーダについて〜
- Chapter5-1〜レンダリングについて〜
- Chapter5-2〜レンダリング詳細〜
- Chapter6〜Projection(投影)〜
- Chapter7-1〜Cubeを作る〜
- Chapter7-2〜Texture〜
- Java 3DGame LWJGL Retry Lv1 〜動かして理解する〜
- Java 3DGame LWJGL Retry Lv2 〜動かして理解する2〜
- Java 3DGame LWJGL Retry Lv3 Texture〜動かして理解する3〜「負け越し」
- Java 3DGame LWJGL Retry Lv4 デバック〜動かして理解する4〜「黒星」
- Java 3DGame LWJGL Retry Lv5 遊んでみる〜動かして理解する5〜「引分け」
- Java 3DGame LWJGL Retry Lv6 遊んでみる2〜動かして理解する6〜「白星」
- ava 3DGame LWJGL Retry Lv7 遊んでみる3〜全部テクスチャにする〜
Eclipse セットアップ
- Java Install Eclipse〜開発ツールのインストール〜
- TensorFlow C++環境〜EclipseにCDTをインストール〜
- Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
- Eclipse Meven 開発手順〜プロジェクトの作成〜
- Java OpenCV 環境セットアップ(on Mac)
- Eclipse SceneBuilderを追加する
- JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
Java Basic データ型 Boolean 〜Step1_2_2
前回は、データ型には何があるの?
ってのを確かめました。
※全部ではありません…
今回は、Boolean = 真偽値に関してやります。
※そのほかのサンプルも作りました。
プログラムでは〜の時はAの処理、
XXXの時はBの処理という様に条件分岐
を行いたい時があります。
そんな時に使用するのがBooleanです。
Booleanの値には、true, falseのみ
以下の様に使用します。
boolean flag = (1 == 1);
上のflagにはtrueが入ります
boolean flag = (1 == 0);
こうするとfalseが入ります
入力した値が”tiger”と等しいか判定する
プログラムを例に記述します。
入力する値→”あ”のケース
if (“tiger”.equals(入力値) {
System.out.println(“タイガー!アカパ”);
} else {
System.out.println(“トラじゃねーな…”);
}
上記の様な
条件分岐があるとして…
“tiger”以外の入力があった場合には
「トラじゃねーな…」とコンソールに出力されます。
条件分岐があるとできることが広がると思います。でわでわ…
<問題>
1.サンプルにあるプログラムに入力を受け付ける処理を加えてそれぞれの文言をコンソールに表示できるプログラムを作って下さい。
2.同様に作成したプログラムに追加して”norway”と入力があった時には「次行ってみよー"をコンソールに出力するプログラムを作って下さい。
なお、同じプログラムで他の文言も出力できる様に作成して下さい。
Java Basic ちょいと寄り道
プログラムの学習をするのも受験勉強も
ちょいと似ていて「休む」って大事です
大人になって、仕事する様になって…
仕事するのにオンとオフの切り替えが
出来ないと作業効率が悪かったり
体を壊したりします。※壊しました(笑)
さて、今回は「寄り道」と称して徒然と思った事を書きます。
2020年からプログラムを義務教育でも
行う事になるそうですが教育、人材育成
という観点で素晴らしいと思います。
理由は、人間は理不尽な生き物だからです。
理論的な思考を身につておくとわりかし楽です。
理由、理屈なしに動くと痛い目にあう事が多いので…
※ラッキーなこともあります⭐️
でも忘れてはいけないのは「何事もやって見なければ何もわからない」という事です、「理論的に考えて…」と言って行動を起こさないのはよくないと思います。
トライアンドエラーで人生を切り開くことも大切なことです。
プログラムの実装でも、何か行動を起こすのでも、想定外がつきものです。
この想定外に立ち向かえる、シンの強い人間が育って欲しいと願うばかりです。
生きていて、
「1人では無理だ」「実現不能かも?」
と思った時こそ理論的に考えてみて下さい。
そして、「仲間を大切にする」ということを忘れないでください。
1人でできることはたかが知れています。
※仲間がいなかったら仲間を作れば良いと思います。
→努力いたします(笑)
論理的思考は「何を」「どのように(どんな手順で)」「どの様な形で実現するか?」と考えて最善の方法を選択、実行する事です。この考え方は安全に人生を歩むのにとても有用だと思うこの頃でございます。
お後がよろしいようで(笑)
Java Basic データ型 〜Step1_2_1〜
前回は、 Javaで何をやるのか?
を考えました。
そして、はじめのプログラムを作成
コンソールにハローワールドを表示
上記の事をやりました。
今回は続きになります。
コンソールに文字を表示したので今度は
四則計算をやろうと思います。
予備知識としてデータ型を理解しておく
必要があります。
実際にコードを書くときは文字を入力
します。パソコン側からして見たら
数値と文字列の区別ができません。
※1〜9の文字、あ〜ん、a〜Zなど
パソコンの認識としては全部が2進数
になっています。
なので「型」を用意して区別します。
データ型は下のページにまとめました。
Java データ型 変数の扱い方〜Step1-2-1〜 – PGボックス
ソースもダウンロード出来ます。
本題に入ります。
四則計算なので数値のデータ型を使用します
上記のページには色々書きましたが
int, doubleの2つを使用します。
以下の書き方は「初期化」と呼びます
→宣言と同時に値をセット
int hensu = 1;
int goulei = 2 + 3;
ここでの1〜3の数字がint型の値です
小数点がつくとdouble型になります
double shosu = 1.23;
そして宣言というのは以下の書き方
int hensu;
値を代入しない場合です。
この時に宣言した変数にはデフォルト値
が入ります。
数値型のデフォルト値(初期値)は0です
int hensu; // 0
double hensu; // 0.0
こんな感じです。
でわ問題です。
問1.
変数「teihen」と「takasa」を初期化
して変数「gmukei」に代入し
コンソールに出力した下さい
三角形の面積を求めるプログラムになります。
問2.
問1を応用して立方体の面積を表示するプログラムを作って下さい。
問3.
同様に円の面積を求めて表示するプログラムを作成して下さい。
なお、円周率にはMath.PIを使用する事
【追申】
「やってみようかな?」と思ったら下のリンクにセットアップ手順を
記載したのでやってみてください。
<< 開発環境関連リンク >>
・Java 開発ツールのインストール – PGボックス
・Eclipse Gitリポジトリの取得 〜GitからソースをPullしよう〜 – PGボックス
Java Basic 〜Javaで何をやるのか?〜
イントロダクション
「プログラムやってみようかな?」と思っている人にはチャンスがあります。
プログラミングの世界への扉を開けるチャンスです。ぶっちゃけた話なんでもいいで。「XXXやってみようかな?」と思った時がチャンスです。
この様に思った時でないと中々新しい事を始めるという事はありません。やって良ければ続くし、そうでなければ続かない…それで良いと思います。
そして、Javaをやってみようかな?と思った方もそうでない方も、ちょいとこの記事を読んでって欲しい。ポイントは…
なぜ?を明確にする技術
「 Javaを学習してどーするの?」を主軸にして考えていきます。
まずは、疑問に対する理解が必要です。
頭の「Java」に対する理解を行います。
Javaで現在、作られているものは以下のようなものがあります。
・WebService → 企業が使用するウェブサイト、銀行のATMなども含む
Webサーバ(インターネットでアクセスしたときにいろんな機能を提供する
・Androidアプリ →実際は、Java + C++ と複数の言語が使用されていることが多い
・Iotアプリ → 2018/0507現在ではJava制のものよりC++の方がメジャー
※「Iotアプリ」はモノとインターネットをうまく繋げて作成された、アプリケーションの事を示しています。(ここでの言い回しです)。この分野では特に一次産業(農業、林業、酪農など)で活躍が期待されています。というか期待しています。
この様な、物事に使用されるプログラム言語がJavaです。開拓すれば、その他の用途にも使えます。詳細に関してはより深いところを理解する必要があるので今は割愛します。
次は「学んでどーする?」について理解します。この疑問は詰まる所「何ができるの?」という事になります。
そして、「出来る様になったあと…」について頭の中で良いのでシュミレートしてみます。これ以上の事はテスト(試験、実験)してみないとわかりませんので、優先順位を下げます。
「XXXができる様になったら…」これはビジネス書などでも時々記載されているのですが「XXXが実現したと思ってその時の周りや生活などの想像をする」という行為が必要になります。これが楽しかったりしますので是非是非やってみて下さい。
そして、プログラムをはじめて学ぶのにJavaを勧める理由は
どっちにしろ知らないものを学ぶのだから、幅の広い範囲で使えるものが良い
と思いますので、Javaを勧めます。
実践
「Javaを学んでゲームを作る」というケースで、記載していきます。
そして今の段階での、目的をゲーム作成(iPhoneアプリ)にします。
上にiPhoneアプリは載せなかったのはiPhoneアプリはSWIFTという言語で
作成されています。
Mac で使用できる「XCode」というIDEを使用して作成します。
色々と調べたところC++ → Qt, Java → AndroidStudio, SWIFT。。。。色々な言語で
ゲームが作成可能です。
なかでも有名なのはUnityです。そしてちょっと敷居が高い
Unreal Engine4(UE4)があります。
そして、最近発見したのがGluon でのクロスプラットホーム開発です。これはJavaを使って、スマホ(iPhone,Android)通常のpcで動くアプリを作れます。
UE4はGPUのスペックがある程度高くないと起動することができません。
その意味で「敷居が高い」のです。詳細は以下のサイトを参照ください。
自分なりに比較してみました。ので興味があればこちらもどうぞ
早い話が「ゲームを作ろう」ということです。
何はともあれ、プログラム(Java)がわからないと何も始まりません。
そして、初めてのプログラムの学習にはこれです。
「ハローワールド」→コンソールに文字を表示するだけ
ここでのポイントは以下の通り
1. Javaはクラスが起動する
2. メインメソッドが動く
理解の仕方は人によるのでなんとも言えませんが
実際に作って、動かして、内容を理解する
という手順で自分は理解してきました。
ここで大切なのはコードを覚える事でなく理解することです。
頭ごなしに覚える事もありますが(笑)
クラスの書き方〜メインメソッドの書き方は下のページを参考にして下さい。
ソースと細かいとこを記載してます。
Java Hello World はじめのプログラム 〜 Step1-1〜 – PGボックス
コンソールに文字が出力されるだけですが、自分で作ると感動するものがあります。
是非やってみて下さい。
【追伸】
GITから自分が作成したサンプルプログラムをダウンロードできます。
Eclipseにそのままインポートするやり方を下のページに記載しました。
Eclipse Gitリポジトリの取得 〜GitからソースをPullしよう〜 – PGボックス
そして、Eclipseなどの開発ツールからAndroidやiPhoneアプリの作成がJavaで出来る方法がありました。
関連ページ一覧
Eclipse セットアップ
- Java Install Eclipse〜開発ツールのインストール〜
- TensorFlow C++環境〜EclipseにCDTをインストール〜
- Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
- Eclipse Meven 開発手順〜プロジェクトの作成〜
- Java OpenCV 環境セットアップ(on Mac)
- Eclipse SceneBuilderを追加する
- JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
Java Basic
- Java Basic Level 1 〜Hello Java〜
- Java Basic Level2 〜Arithmetic Calculate〜
- Java Basic Level3 〜About String class〜
- Java Basic Level 4〜Boolean〜
- Java Basic Level 5〜If Statement〜
- Java Basic Summary from Level1 to 5
- Java Basic Level 6 〜Traning of If statement〜
- Java Basic Level8 〜How to use for statement〜
- Java Basic Level 8.5 〜Array〜
- Java Basic Level 9〜Training of for statement〜
- Java Basic Level 10 〜While statement 〜
- Java Basic Swing〜オブジェクト指向〜
- Java Basic Swing Level 2〜オブジェクト指向2〜
- サンプル実装〜コンソールゲーム〜
- Java Basic インターフェース・抽象クラスの作り方
- Java Basic クラスとは〜Step2_1〜
- Java Basic JUnit 〜テストスイートの作り方〜
JavaFX→LWJGL 〜ゲーム作成準備〜
Javaでのゲーム作成をするのに使用するフレームワークがLWJGLなので表題を変更します。
前回は、ゲーム作成をするのに仕様を考えました。
大雑把にどんなものを作るか?が決まったので早速作成!と行きたいのですが
LWJGLの使い方がわからないので
こいつの使い方を学びます。
先ずはチュートリアルを参考に実装を行います。
プログラム初心者の方にもわかる様に
基本からわかる様に頑張ります(笑)
まずは、環境構築を行います。
Javaを初めてやる人もゲームを作ろうという人もまずは環境構築
を行います。(Javaの基礎も一緒にやります。)
LWJGL 開発環境セットアップ〜Maven使用〜 – PGボックス
※Eclipseを使用すると設定が面倒なのでIntelliJ IDEAを使用します。
やろうとしていることは以下の通りです。
1. とりあえずゲーム作成の手順を学びます。
2. ゲーム作成を行うためにJavaの基礎が必要になる。
3. ここでJavaの基礎をやります。
使用するIDE(開発ツール)はEclipseを想定しております。
当然、NetBeansなど他のツールでも構いません。
セットアップではEclipseの場合のみを記載しますのでご了承ください。
<要点>
・ゲーム作成はLWJGLの学習を進めながらやっていきます。
・Javaの基礎は別個にやります
<手順>
1. ゲーム作成用のプロジェクトを作成してゲーム学習を開始
→ パッケージを切るときに「prac.lwjgl」のように作る
2. ゲームの作成時にJavaでわからないところが出てきたら基礎学習用に
→パッケージを「prac.basic」のように作る
※同じプロジェクト内に作成しておくとゲームで作った処理を使えます。
上のようにパッケージをゲーム用とJava基礎用に分けて作成します。
作って、理解して、動かして…
使えるものがあれば使うってな感じで
とりあえず「Javaを理解科したい」という人は下のリンクを参考にどうぞ
開発環境の構築: Java 開発ツールのインストール – PGボックス
初めのプログラム:Java Hello World はじめのプログラム 〜 Step1-1〜 – PGボックス
次回からLWJGLの学習を始めます。(基礎部分も学習します)
関連ページ一覧
Eclipse セットアップ
- Java Install Eclipse〜開発ツールのインストール〜
- TensorFlow C++環境〜EclipseにCDTをインストール〜
- Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
- Eclipse Meven 開発手順〜プロジェクトの作成〜
- Java OpenCV 環境セットアップ(on Mac)
- Eclipse SceneBuilderを追加する
- JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
LWJGL
- Chapter1[外枠の表示のみ]
- Chapter2-1〜クラスの構成〜
- Chapter2-2〜インターフェースの使い方と詳細〜
- Chapter2-3〜GameEngineクラス(サンプルクラス)〜/li>
- Chapter2-4〜Windowクラス(サンプルクラス)〜
- Chapter3〜描画処理を読む〜
- Chapter4〜シェーダについて〜
- Chapter5-1〜レンダリングについて〜
- Chapter5-2〜レンダリング詳細〜
- Chapter6〜Projection(投影)〜
- Chapter7-1〜Cubeを作る〜
- Chapter7-2〜Texture〜
- Java 3DGame LWJGL Retry Lv1 〜動かして理解する〜
- Java 3DGame LWJGL Retry Lv2 〜動かして理解する2〜
- Java 3DGame LWJGL Retry Lv3 Texture〜動かして理解する3〜「負け越し」
- Java 3DGame LWJGL Retry Lv4 デバック〜動かして理解する4〜「黒星」
- Java 3DGame LWJGL Retry Lv5 遊んでみる〜動かして理解する5〜「引分け」
- Java 3DGame LWJGL Retry Lv6 遊んでみる2〜動かして理解する6〜「白星」
- ava 3DGame LWJGL Retry Lv7 遊んでみる3〜全部テクスチャにする〜
JavaFx ゲームを作る 〜まずは仕様を考える〜
Javaとかそれ以前に、「どんなものを作るの?」を決めないと
何も始まりません。
というわけで、まずはテンプレート的なゲームを作成しようと思います。
<<追伸>>
Javaで作成したアプリはiPhoneアプリとして使用するつもりです。
Java→iPhoneアプリはRoboVMで作成可能です(2018/5/6)
https://www.google.co.jp/amp/s/amp.reddit.com/r/programming/comments/7ji3h4/compile_ios_projects_on_windows_and_linux_robovm/
タイトルは「スーパー勇者プラザーズ」にしようと思っております(笑)
ポイントとしては以下の通りです。
・ゲームの基本的(ベースになる操作を網羅する様)なものとして
・アクションゲームがあげられると思います。
・イメージとしてはあのスーパー兄弟だと思いますので。。。
そして、ほとんどの人が作成したいとおもうのがRPGです。
(→自分の周りの人間50人に聞きました) ※もう少し少ないかもです(笑)
というわけで上記の様なタイトルになりました。
これで仕様を考えるのですが、以下の項目を決定することにします。
仕様
・キャラクター(主人公?)の表示を行う
・そして、キャラクターの操作を行える様にする
->アイドリング(待機状態での動き)
->歩行 ※走るのは考え中
->アイテムを拾う
->アイテムを使用する(飲む、食べる、投げる、掲げる、地面に置く)
->攻撃(アタック)
->防御(シールド)
->ジャンプ
->魔法を使用する
・スタートする
・ゴールする
<ここからは検討中>
・装備の選択
・アイテム管理(道具袋)
実装に関しては以下を使います
使用プログラム言語(ライブラリ) -> Java, LWJGL
この仕様を満たす様に作成していこうと思います。
が「仕様変更」はつきもの。。。なるべく仕様変更があってもソースの修正を
行わなくても良い様に作成して行きたいと思います。
LWJGLダウンロード
LWJGL - Lightweight Java Game Library
環境構築
Setting Up LWJGL with Eclipse - LWJGL
という人は下のページを参考にしてみて下さい
Java Game作成 – PGボックス(LWJGLのインストール手順)
Java Hello World はじめのプログラム 〜 Step1-1〜 – PGボックス
開発環境の作成はこちら
関連ページ一覧
Eclipse セットアップ
- Java Install Eclipse〜開発ツールのインストール〜
- TensorFlow C++環境〜EclipseにCDTをインストール〜
- Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
- Eclipse Meven 開発手順〜プロジェクトの作成〜
- Java OpenCV 環境セットアップ(on Mac)
- Eclipse SceneBuilderを追加する
- JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
LWJGL
- Chapter1[外枠の表示のみ]
- Chapter2-1〜クラスの構成〜
- Chapter2-2〜インターフェースの使い方と詳細〜
- Chapter2-3〜GameEngineクラス(サンプルクラス)〜/li>
- Chapter2-4〜Windowクラス(サンプルクラス)〜
- Chapter3〜描画処理を読む〜
- Chapter4〜シェーダについて〜
- Chapter5-1〜レンダリングについて〜
- Chapter5-2〜レンダリング詳細〜
- Chapter6〜Projection(投影)〜
- Chapter7-1〜Cubeを作る〜
- Chapter7-2〜Texture〜
- Java 3DGame LWJGL Retry Lv1 〜動かして理解する〜
- Java 3DGame LWJGL Retry Lv2 〜動かして理解する2〜
- Java 3DGame LWJGL Retry Lv3 Texture〜動かして理解する3〜「負け越し」
- Java 3DGame LWJGL Retry Lv4 デバック〜動かして理解する4〜「黒星」
- Java 3DGame LWJGL Retry Lv5 遊んでみる〜動かして理解する5〜「引分け」
- Java 3DGame LWJGL Retry Lv6 遊んでみる2〜動かして理解する6〜「白星」
- ava 3DGame LWJGL Retry Lv7 遊んでみる3〜全部テクスチャにする〜
JavaFx 開発チュートリアル 〜3: 入力イベントを操る(実装編)〜
前回、初めに実装したJavaFxのソースを眺めました。
そして、今回はイベント処理の実装を行います。
また前回と同じソースです。ダウンロードはここ
javaソース↓
public class Lesson1 extends Application {
/**
* はじめのプログラムは「Hello World」<br/>
* どの言語でもやるのです。<br/>
* 主な用途としては、プログラムの疎通確認をやります。<br/>
* ※プログラムの実行環境を作成した後にプログラムが走るか確認<br/>
*
* @param args: プログラム引数
*/
public static void main(String args) {
launch(args);
}
/**
* Lesson1. JavaFxでのはじめの一歩<br/>
* Getting started JavaFx on Tutorial<br/>
* この文章がさ記載されている部分をJavaDocコメントと言います。<br/>
*
* @see https://docs.oracle.com/javafx/2/get_started/hello_world.htm
* @author Takunoji
*/
public class Lesson1 extends Application {
/**
* はじめのプログラムは「Hello World」<br/>
* どの言語でもやるのです。<br/>
* 主な用途としては、プログラムの疎通確認をやります。<br/>
* ※プログラムの実行環境を作成した後にプログラムが走るか確認<br/>
*
* @param args: プログラム引数
*/
public static void main(String args) {
launch(args);
}
/**
* プログラミング学習の基本は「写経」です。<br/>
* 意味はわからなくても「とりあえず」自分でコードを描いてください。<br/>
* インポートするのはjavafx.XXXを選択します。(IDEを使用している場合)
*/
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World");
Button btn = new Button();
btn.setText("Say Hello World!");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World");
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 200));
primaryStage.show();
}
}
タイトルに入力イベントと記載しましたが「入力イベント」という言葉は
範囲が広いのでボタン押下(ボタンクリック入力)のイベント処理に着目します。
上のソースでは、「btn.setOnAction(new EventHandler<ActionEvent>() {」
で始まる行がイベント処理の実装部分です。
作成したボタンに「setOnAction()」でイベント処理を設定します。
new クラス名() {無名(のインナー)クラスを定義}
赤い部分がイベントの処理部分になります。
EventHandlerはJavaFxのフレームワークで定義されているインターフェースで
インターフェースの実態部分を実装します。→なので必要な関数をオーバーライドします。
ーーーーーーーーーーーーー
@Orverride
public void handle(ActionEvent event) {
System.out.println("Hello World");
}
ーーーーーーーーーーーーー
ボタン押下時にコンソールへ文字列「Hello World」を出力します。
「このコンソールへ出力する」は「 標準出力へ出力する」とも言います。
標準入力→InputStream
標準出力→OutputSream
結論からいうと
上のメソッドを実装すればボタンのアクションはコントロールできるということです。
そのほかのコンポーネンントはそれぞれに「アクション」「イベント」に対応するメソッドがあるので、そいつを「オーバーライド」してやればOKということです。
これ以上は、実装してみないとわからない部分なので是非自分で「オリジナル画面」を作成してみてください。
自分は、現在「JavaFx制のコマンドプロンプト」を作成中です。
でわでわJavaFxを楽しめることを祈っています。
関連ページ一覧
関連ページ一覧
Eclipse セットアップ
- Java Install Eclipse〜開発ツールのインストール〜
- TensorFlow C++環境〜EclipseにCDTをインストール〜
- Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
- Eclipse Meven 開発手順〜プロジェクトの作成〜
- Java OpenCV 環境セットアップ(on Mac)
- Eclipse SceneBuilderを追加する
- JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
LWJGL
- Chapter1[外枠の表示のみ]
- Chapter2-1〜クラスの構成〜
- Chapter2-2〜インターフェースの使い方と詳細〜
- Chapter2-3〜GameEngineクラス(サンプルクラス)〜/li>
- Chapter2-4〜Windowクラス(サンプルクラス)〜
- Chapter3〜描画処理を読む〜
- Chapter4〜シェーダについて〜
- Chapter5-1〜レンダリングについて〜
- Chapter5-2〜レンダリング詳細〜
- Chapter6〜Projection(投影)〜
- Chapter7-1〜Cubeを作る〜
- Chapter7-2〜Texture〜
- Java 3DGame LWJGL Retry Lv1 〜動かして理解する〜
- Java 3DGame LWJGL Retry Lv2 〜動かして理解する2〜
- Java 3DGame LWJGL Retry Lv3 Texture〜動かして理解する3〜「負け越し」
- Java 3DGame LWJGL Retry Lv4 デバック〜動かして理解する4〜「黒星」
- Java 3DGame LWJGL Retry Lv5 遊んでみる〜動かして理解する5〜「引分け」
- Java 3DGame LWJGL Retry Lv6 遊んでみる2〜動かして理解する6〜「白星」
- ava 3DGame LWJGL Retry Lv7 遊んでみる3〜全部テクスチャにする〜