argius note

プログラミング関連

Javaでゲームパッドの入力をJInputを使って実現する

突然、ゲームを作ってみたくなりました。

ミニゲーム的なものは過去に何度も作ったことはありましたが、アクションとかRPGのような本格的なゲームは作ったことがありません。


それで、欲張りなことに、UnityやAndroidやSwift、つまりゲームエンジンスマホアプリ開発に手を出そうとしています。なお、全然捗っていません。集中できるまとまった時間が確保できないと頭に入ってこないのです。

そこで、やはりというか、Javaでできる範囲なら、片手間でもなんとかなるんじゃないかと思いました。
手始めに、手元にある無線ゲームパッドの入力でキャラクターを動かすのに挑戦。
詳しくは後述しますが、JInputを使うことにしました。


今回は、JavaでJInputを使って、ゲームパッド*1の入力を判定する練習をしてみた話です。

*1:ここではプレステ風ゲームコントローラーを指します。

続きを読む

ネットワークが切断されたことをアラームで知らせるツールを作る(解説付き)

我が家のパソコンのうちWindows8.1のノートパソコンだけ、ルーターとの相性が悪いのか、2日に1回程度はネットワークが切断されてしまいます。
そのため、2クリックでネットワーク接続を再起動するスクリプトを書いて対応しています。


これ自体は上手くいっているのですが、何か作業中に切断されてそれに気づかないで作業を続行したりすると、困る場合もけっこうあります。
切断されてしまうのは仕方ないとして、なるべく早くそれに気づきたい。


それなら、ネットワークがつながっているかを定期的にチェックして、切れていたらアラームで通知する仕掛けを用意すれば良いのでは?と思いました。
こういうのはフリーソフトなどでもありそうですが、カスタマイズが面倒な気がするので、自分で作ってみることにしました。

WindowsのアプリなのでC#とかで作った方が楽そうですね。今回は残念ながら私の知識不足により調べないとできないことが多いので、ほとんど調べずにできるJavaで書いてみます。


今回は、作る流れも含めて記事を書いてみました。

続きを読む

Bitnami版 Redmine v3.2.0をインストールして、v1.1.1からデータを移行してみました

あけましておめでとうございます。今年もよろしくお願いいたします。

今年初の投稿は、さっそく全く需要が無さそうなネタになりました。ご了承ください。


さて、以前、Redmine 1.1.1をインストールしました。

今回は、ソースからビルドしようと思いましたが、思いのほかRails環境の壁が厚かったため、前回と同様に、Bitnamiさんのインストーラーでインストールしました。

あ、でも少しだけRails環境を触ったので思わず勉強になりました。


下記リンクは、一応参考にしたページです。


アップグレードについては、ちょっと分かりにくいですが、以下のページも参照してみてください。



続きを読む

近況と新マシン環境

ここ数か月は、メインマシンが不調で開発になかなか集中できないことと、体調の問題などがありまして、まともにプログラミング関連の活動ができていない状況です。
コンスタントに活動できているのは、teratailさんのところでくらいです。

このブログは少なくともJava関連の記事には多少ニーズがあるのに、それ関連の記事があまり書けていなくてすみません。



そんな中、やっとメインマシンを新調することができました。

Mac(MPB)もあるのですが、私は最早Windowsネイティブとなっていて、年齢的にも柔軟性が失われつつあり、直観的に操作できる環境としてはWindowsでないと厳しいです。
今回はまたWindows7にしました。Windows10の導入も考えましたが、まだ少し時期尚早のようですね。それに、Windows8.1も別環境で使っていますが、開発環境としてはちょっと使いづらいです。
Windowsコマンドライン環境だけは馴染めないので、相変わらずCygwin使っています。


ノートPCだとスペックに難があったので、デスクトップにしました。合わせて、モニター、キーボード、マウスも新調。

  • 本体: 某BTO
    • →スリムタワー、CPUはIntel i5, Mem16GB, SSD+HDDとそこそこハイスペック
  • 液晶モニター: FlexScan EV2450-R
    • →今となっては解像度が最大1920x1080とあまり高くありませんが、これ以上高いのにすると、細かすぎor大きすぎなので型落ちで評価が高いこれにしました
  • キーボード: 東プレNG0100 REALFORCE91Uという機種
  • マウス: サンワサプライの無線マウス


SSDMacで体験済みですが、やっぱり速いですね。メモリーも潤沢で、至極快適です。


今後は、golangを少しやるかも知れません。Webフロントエンドもある程度モダンな書き方を学びたい。
あと、このブログに特化した記事以外は、Qiitaにも書くかもしれません。


心機一転、これから勉強し直しです。

(おわり)

サンプルコード:コマンドラインのQuizゲーム

色々ありまして...
リハビリのために、ごく簡単なゲームを作ってみました。


コマンドラインのQuizゲーム (Java 7 and later) - Gist


下記ページを参考にしています。

クイズを作りたいのだがうまくいかない。(21547)|teratail


選択肢数が1~10まで設定できるようになっています。
エラー処理は適当です。


肝心の、クイズの問題がありません。


(おわり)

System.in, System.out, System.errを再初期化する

またかなり間が空いてしまいましてすみません。

今さら感あふれるネタですが、知らなかったのでメモ。


結論を先に書きます。

下記ページで知りました。


System.in, System.out, System.errの再初期化は、下記のようにします。
FileDescriptorを使うのがポイントです。

// import java.io.*;

System.setIn(new BufferedInputStream(new FileInputStream(FileDescriptor.in)));
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
System.setErr(new PrintStream(new FileOutputStream(FileDescriptor.err)));


ただし、これだけでは完全ではありません。理由は後述します。


元々入っているのを退避しておいて、後で戻す方法でも、もちろんOKです。
これについても後述します。


続きを読む