近畿大学電子計算機研究会wiki
http://w.atwiki.jp/kindaidensan/
近畿大学電子計算機研究会wiki
ja
2018-06-10T13:38:31+09:00
1528605511
-
2018年度オープン授業
https://w.atwiki.jp/kindaidensan/pages/54.html
----
|CENTER:授業日|担当|CENTER:内容|
|第1回(5/11)|馬渕|CENTER:導入|
|第2回(5/18)|平石|CENTER:変数と演算|
|第3回(6/1)|平石|CENTER:入出力|
|第4回(6/8)|阿部|CENTER:条件分岐|
|第5回(6/15)|元田|CENTER:繰り返し|
|第6回(6/22)|阿部|CENTER:配列|
|第7回(6/29)|元田|CENTER:メソッド|
|第8回(7/6)|馬渕|CENTER:軽くゲーム制作|
// 授業資料は以下のように添付
// |第2回(5/11)|仲谷|入出力| [[PDF>https://img.atwikiimg.com/www65.atwiki.jp/kindaidensan/attach/22/37/openjugyou_2017_2.pdf]] |
授業資料はGoogleDriveで管理しています。
必要な場合は管理人まで連絡してください。
2018-06-10T13:38:31+09:00
1528605511
-
Playerに弾を撃たせる
https://w.atwiki.jp/kindaidensan/pages/53.html
*弾クラスの作成
----
以下のクラスを作成します
#highlight(linenumber,java){{
package obj.ballet;
import java.awt.Color;
import densan.s.game.drawing.Drawer;
import densan.s.game.manager.GameManager;
import densan.s.game.object.GameObjectBase;
public class PlayerBallet extends GameObjectBase implements Ballet{
/**
* 弾の大きさ
*/
private static final int SIZE = 5;
public PlayerBallet(double x, double y, double rad, double speed) {
super(x, y, SIZE,SIZE);
// TODO Auto-generated constructor stub
setVector(speed, rad);
}
@Override
public void update() {
// TODO Auto-generated method stub
move();
vanish();
}
@Override
public void draw(Drawer d){
// TODO Auto-generated method stub
d.setColor(Color.BLACK);
d.fillCircle(getCenterX(), getCenterY(), 5);
}
@Override
/**
* 画面外消失判定
*/
private void vanish() {
// TODO Auto-generated method stub
//画面外に出たか
if(!(0<getMaxY()&&getY()<GameManager.getInstance().getFrameHeight()&&0<getMa
2017-10-24T03:18:19+09:00
1508782699
-
列挙型
https://w.atwiki.jp/kindaidensan/pages/52.html
* 列挙型について
使用例として以下は3dテトリスのコードの一部である。
#highlight(linenumber,java){{
/**
* 列挙型<br>
* テトリスの種類を増やした場合(objectパッケージ)要変更
* @author tachibana
*
*/
public enum TetrisList {
Empty(0),
Rect(1),
T(2),
Z(3),
L(4);
//要追加
private final int tetrisNum;
// private final Tetris tetris;
TetrisList(final int tetrisNum) {
// TODO 自動生成されたコンストラクター・スタブ
this.tetrisNum= tetrisNum;
}
/**
* 対応するテトリスの番号を返す
* @return
*/
public int getTetrisNumber(){
return tetrisNum;
}
/**
*
* @param id
* @return
*/
public static TetrisList getType(final int id){
TetrisList[] types = TetrisList.values();
for (TetrisList type : types) {
if (type.getTetrisNumber() == id) {
return type;
}
}
return null;
}
}
}}
Cとちがってjavaの場合enumはintの定数ではなくオブジェクトの列挙であるので振る舞いを変えることができる。
getTypeでidに一致するオブジェクトを返す実装となっている。
enumとswitch文をうまく使えばコードを比較的キレイにかける…筈。
この場合要素数はTetrisList
2017-10-10T03:34:06+09:00
1507574046
-
オブジェクトをまとめて管理する
https://w.atwiki.jp/kindaidensan/pages/51.html
*オブジェクトの管理
----
自機を作成しましたが、このままだとオブジェクトが増えるたびにGameSceneのクラスに記述することになり、非常に複雑な処理になってしまいます。そこでオブジェクトをまとめて管理するクラスを作ります。以下にそのクラスのコードを示します。
#highlight(linenumber,java){{
package obj;
import java.util.ArrayList;
import java.util.Iterator;
import densan.s.game.calc.Calc;
import densan.s.game.drawing.Drawer;
import densan.s.game.manager.GameManager;
import densan.s.game.object.GameObjectBase;
/**
* ゲームのオブジェクトを管理するクラス
* @author isato
*
* @param <T>
*/
public class ObjectManager<T extends GameObjectBase> {
/**
*
*/
private ArrayList<T> objects = new ArrayList<T>();
private ArrayList<T> additionalObjects = new ArrayList<T>();
private static ObjectManager instance = new ObjectManager<>();
private ObjectManager(){
}
public static ObjectManager getInstace(){
return instance;
}
/**
* オブジェクトのすべてにアップデート
*/
public void update() {
Iterator<T> itr = objects.iterator();
T o;
while(itr.hasNext()) {
o = itr.next();
o
2017-10-10T02:56:46+09:00
1507571806
-
テキストファイルを一行ずつ読み込む
https://w.atwiki.jp/kindaidensan/pages/50.html
とりあえずtextのデータを一行づつ読み込んで表示するプログラム
**準備
-作ったプロジェクトにresourcesフォルダを作る
-なんか適当な文字列が入ったtext.txtを作り作ったフォルダに入れる
**注意点
- ファイルのパスの指定はプロジェクトのファイルからの相対パスで指定してある。
-あと大量のデータを読み込むとかならこのやり方は非推奨
#image(https://img.atwikiimg.com/www65.atwiki.jp/kindaidensan/attach/50/48/iotest.PNG)
#highlight(linenumber,java){
package fileIO;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class FileReaderTest {
public static void main(String args[]){
ArrayList<String> list= new ArrayList<>();//arraylistの初期化
try {
FileReader fl = new FileReader("resources/text.txt");//
//BurrferdeReaderを使って一文字ずつ読み込む
BufferedReader br = new BufferedReader(fl);
String str = br.readLine();
while(null!=str){
list.add(str);
str=br.readLine();
}
} catch(FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.p
2017-06-30T03:07:18+09:00
1498759638
-
FIRST-自機の作成
https://w.atwiki.jp/kindaidensan/pages/49.html
*自機の作成
----
自分で操作する自機を作っていきます。
機能は上下左右の移動、描画(見た目)は青色の正方形(25x25)とし、
最初に言った通り[[DJGL-環境構築>>DJGL-環境構築]]でウインドウを開くところまでは出来ているものとします。
----
新規クラス「Player」を作成し、以下のソースコードを打ち込んで下さい。
初期配置や移動スピードとなる数値は自由に変更してもらって構いません。
**ソースコード
----
#highlight(linenumber,java){{
import java.awt.Color;
import java.awt.event.KeyEvent;
import densan.s.game.drawing.Drawer;
import densan.s.game.input.KeyInput;
import densan.s.game.object.GameObjectBase;
//自機
public class Player extends GameObjectBase{
public Player() {
super(25, 450, 25, 25); //左から「初期x座標」「初期y座標」「横の大きさ」「縦の大きさ」
}
//それぞれの方向キーを押している間、addX()の()内の数値だけx座標を移動させる。
//x座標が正の時は右方向、y座標が正の時は下方向に加算している。
@Override
public void update() {
if(KeyInput.isPressing(KeyEvent.VK_RIGHT)){
addX(5);
}
if(KeyInput.isPressing(KeyEvent.VK_LEFT)){
addX(-5);
}
if(KeyInput.isPressing(KeyEvent.VK_UP)){
addY(-5);
}
if(KeyInput.isPressing(KeyEvent.VK_DOWN)){
addY(5);
}
}
@Overri
2017-06-27T01:40:10+09:00
1498495210
-
オープン授業
https://w.atwiki.jp/kindaidensan/pages/48.html
----
毎年1回生向けに行っているオープン授業のページです。
オープン授業で使用する資料などはこちらからダウンロードしてください。
年度別オープン授業一覧
-[[2017年度オープン授業]]
-[[2018年度オープン授業]]
----
#comment_num2
2018-05-11T16:00:56+09:00
1526022056
-
FIRST-ゲームの紹介と見本
https://w.atwiki.jp/kindaidensan/pages/47.html
*ゲームの紹介と見本
----
今回はここで作るゲームを簡単に紹介します、最初はこれを目指してみてください。
**FIRST GAME
----
#ref(first01.png)
青色の正方形が自機、上下左右に動きます。
赤色が敵、ぶつかるとゲームオーバーとなります。
オレンジ色が鍵アイテム、これを持っていないとゴールに触れても無効となります。
黄緑色がゴール、アイテムを持っている状態で触れるとゲームクリアとなります。
その他にタイトル画面、ゲームオーバー画面、ゲームクリア画面も作成します。
まずはこれを作成し、その後はちょっとだけ改造例を示したりする予定です。
**まとめ
----
次回は自機の作成、上下左右の移動の実装をする予定です。
ちなみに序盤はタイトル画面を作らずにゲーム画面から始めることにします。
----
#comment_num2
2017-06-23T13:06:18+09:00
1498190778
-
FIRST-はじめに
https://w.atwiki.jp/kindaidensan/pages/46.html
*はじめに
----
ここでは、ごくごく簡単なゲームを作ってもらう事を目的としています。
難しい仕様も、煌びやかな画像や演出も一切無いものを作るので、後は好きに改造してもらいます。
**用意するもの・前提
----
[[DJGL-環境構築>>DJGL-環境構築]]を終えている状態であること(基礎編は一通り見ておく事を推奨)
**まとめ
----
次回はゲームの説明、完成見本の掲示を行います。
----
#comment_num2
2017-06-22T11:18:33+09:00
1498097913
-
javaのラムダ式
https://w.atwiki.jp/kindaidensan/pages/45.html
* ラムダ式について
----
工事中
2017-06-16T02:30:31+09:00
1497547831