去年を振り返ると、まず1年通して掲示板の回答者になれるようにするという
目標を立て、無事に達成することができたと思います。
ただ、ゲームを作成するという目標は達成できなかったので、今年は
自分のある程度納得するゲームを作成できるようにしたい。
最低限、わくわくプログラミング自習室 Blogsの【DXライブラリ3D入門】を
Perl版DXライブラリで一部改変しながら実装するというのが目標。
後は、掲示板の回答の継続。
分岐として「JavaとAndroid(タブレット)」 or 「KinectとC++」を頑張りたい。
・Perl版、Python版DxLib
ひそかにバージョンアップしてたんだけど公開していなかったので
ついでなので公開。興味がある方は添付ファイルをどぞ。
use strict;
use warnings;
use autodie;
use FindBin;
use lib qw($FindBin::Bin);
use utf8;
use DxLib;
my $dx = DxLib::SwigDxLib->new();
$dx->ChangeWindowMode(1);
$dx->DxLib_Init();
my $image = $dx->LoadGraph('pict.png');
$dx->KeyInputString(0, 16, 30, 0);
my $name = $dx->{m_KeyInputString};
#{m_KeyInputString}
#{m_GetKeyInputString}
#{m_KeyInputSingleCharString}
#{m_FileRead_gets}
#{m_EnumFontName}
my $x = DxLib::new_intp();
my $y = DxLib::new_intp();
DxLib::intp_assign($x, 30);
DxLib::intp_assign($y, 40);
print "$x,$y\n";
print DxLib::intp_value($x).",". DxLib::intp_value($y)."\n";
my $size = 1.0;
while (!$dx->ScreenFlip() && !$dx->ProcessMessage() && !$dx->ClearDrawScreen()) {
my $mouse = $dx->GetMouseInput();
my $wheel = $dx->GetMouseWheelRotVol();
$dx->GetMousePoint($x, $y);
if ($mouse & $DxLib::MOUSE_INPUT_LEFT) {
$dx->DrawString(0, 0, $name, $dx->GetColor(255,255,0));
}
if ($wheel > 0) {
$size += 0.1;
}
if ($wheel DrawRotaGraph(DxLib::intp_value($x), DxLib::intp_value($y), $size, 0.0, $image, 1, 0);
}
DxLib::delete_intp($x);
DxLib::delete_intp($y);
$dx->DxLib_End();
sleep(1);
*int型を渡すことができるようになったのと
*char型を無理やり実装した感じ。(関数で実装すれば良かった。次回で対処。。。)
それに伴って、KeyInputStringなどの関数の引数が一部変更。
Python版も同じ。
#new_intp→*int型にする
#intp_assign→値の代入
#intp_value→値の参照
まぁ、中身はいけてないけど痒いところを少し、かけるようになった。(多分)
最後のsleepは、恐らくという感じなんだけど
dxlibが終わるタイミングと、perlインタプリタの終わるタイミングが
何かしら関係しているのかエラーで落ちるということがあったのでタイミングを遅らせるために入れている。
Python版はわからない。
てなわけで。