[Placebo Effect] >[Programming] >[Java]

今さらながら Java+オブジェクト指向

練習用に作ったJavaのサンプルプログラムを公開中。
こういうJavaのアプレットは、「けんちん工房」 のハイパーテキストスクリーンセーバーや
拙作HYLOで、Windows 用のスクリーンセーバーになります。

Part3.10個の点が3-Dで移動する・画像がはね回る
Part2.
10個の点が上下左右に移動する
Part1.3個の点が上下左右に移動する
Part0.ダブルバッファの前に



Part3.

Javaのコツが分かったところで、解説 書を出してしましました。
Robocode& ゲームプログラミング学習術」です。
なんて無謀な。

さて、久しぶりにJavaのサンプルプログラムを作り始めました。


021: 10個の点が3-Dで移動する <実 行してみる> <ソー スコード>
2004-02-15

flip

このサンプルでは、光点が、立体的にはね回ります。
上下左右だけでなく、奥行き方向にも移動します。
これは、flipXYZクラスの中で、filpクラスを3つ使っているだけ。
奥行きの位置に合わせて、四角のサイズを変えています。
簡単に改良できました。
使っているflipクラスは、同じモノです。


032: 10個の画像がはね回る <実 行してみる> <ソー スコード>
2004-02-17 -> 03-13

flip

このサンプルでは、光点ではなく、画像イメージを読み込んで
それがはね回ります。ちょっと雰囲気がよくなるところが面白い。
画像を拡大してみました。

Part.2

2002-10-23 

さらに、サンプルプログラムを作ってみました。
いくつもの光点がバラバラに動いていると、管理する方も大変です。
そこで、これをVectorオブジェクトに放り込みます。
すると、Vectorオブジェクトの中の光点オブジェクトを一括して操作できます。
これは、コレクションというJavaの機能です。

010: 3個の点が上下左右に移動する <実 行してみる> <ソー スコード>

point3

次のサンプルは、3個の光点がはね回ります。
先日のA3プログラムと同じですが、Vectorを使って管理しているトコロが違います。

使っているflipXYクラスは、同じモノです。

011: 10個の点が上下左右に移動する <実 行してみる> <ソー スコード>

point 10

調子に乗って、光点の数を10個にしてみました。
プログラム的には、ほとんど改造の必要がありません。
数を増やすだけ。移動量を光点ごとに設定するだけです。

次は、クラスと継承のありがたみについて、サンプルを作ろうかと思っています。



Part.1

2002-10-21

Javaを始めてみました。
で、オブジェクト指向とはなんぞというメモ書きとサンプルです。
Javaは、Webサイトでもi-Modeでも使われてるし、今さらホジるところは無いかと思っていましたが
案外、初心者向け解説では、オブジェクト指向を理解している感じがしない・・・・。
それで、まあワタシなりの感想をメモっておこうと言うことです(公開してるけど)。

プログラム = アルゴリズム + データ構造

昔から、こんな事が言われています。
だから、オブジェクト指向では、このアルゴリズムとデータ構造をセットにしておこうヨ って事です。
それだけです。
で、これをプログラムの作り方の隅々まで適用したのが、オブジェクト指向です。
オブジェクト指向以前のプログラムスタイルとは、まるで違ってしまいますが、基本はコレです。
コレだけです。
そして、オブジェクト指向では、これを徹底的に推し進めているのです。

でもこれ、言ってる事は単純でも、実際にどうプログラムするか、よく分かりません。
いくつかサンプルプログラムを作ってみました。

 

001: 1個の点が左右に往復運動する <実 行してみる> <ソー スコード>

flip

まず、一番シンプルな動きです。
光点のデータ側(flipクラス)に、壁の位置判定をするコードがついてます。

002: 1個の点が上下左右に移動する <実 行してみる> <ソー スコード>

flip

同じflipクラスを2つ組み合わせて、2次元の動きを作ってます(flipXYクラス)。
先に作ったflipクラスを流用しているので、壁の判定は、そちらにおまかせ。
 

003: 3個の点が上下左右に移動する <実 行してみる> <ソー スコード>

flip 3

1個から3個に増やすのは、何の工夫もありません。
flipXYクラスから実体(インスタンス)を3個作っただけ。
それが勝手に動いてくれる。

Part.0

02a: 1個の点が上下左右に移動する <実 行してみる> <ソー スコード>
2004-02-17

flip x y

上にあるのと同じ動きをするプログラムですが、ダブルバッファを使ってません。
ソースコードを見比べると、その違いがよく分かるんじゃないかな。




Copyright 2002,2004 Yutaka Kachi
このページのソースコードは、自由に使用して構いません。
また、複製・改良・配布も、著者に連絡を取ることなく自由にどうぞ。
ただし、無保証です。自己責任で使用してください。