色々な処理をするのにどうやったら効率が良く進められるのか、ということを考えながらやっているとなかなかゲーム作りが進みません。
IQ200くらいの天才に、「ここはさあーこうやればいいじゃん」とか言われながら、「あーなるほどね」とうなづきながら進めてみたいです。
進んだところは、壊れる床を作ったり、ゲームパッドに機能を追加したりしました。
後は、ゲームの遷移の部分をどうすれば効率がよくて見やすいのかを考えながら作ってます。
進むのが遅い。
2012年6月24日日曜日
2012年6月14日木曜日
勉強(ゲームプログラマになる前に覚えておきたい技術)
ゲームを作っていても、プログラム的には上達する部分が少ないと思うので、
結構前に買ってちょっとしかやっていなかった
「ゲームプログラマになる前に覚えておきたい技術」という本で勉強しようと思います。
今は、アンドロイドで作っているし,言語はjavaだし、Openglだしと
つながっている部分はゲームプログラムという点しかないけれど、すこしでも上達すればという思いでやろうと思います。
チャプター1からチャプター27まであるんですが、前に2まではやってあったので3からスタートすることにしました。
しかし、しばらくC++とvisualstdioを触っていなかったので使いにくいし、C++も結構忘れている、
コードを書こうとするとjavaの書き方になってしまってなかなか進まないこともあり大変です。
C++は難しいというか使いこなすのが大変。
さらに勉強している途中で早速つまずきました。サンプルプログラムを実行してもゲームを動かすことができないんです。
ゲームを起動することはできるんですが、絵画面がでたままキー入力を受け付けずずっと更新状態のままで、おかしいなと思ってネットで探すも同じようなのはでてきません。
止まっていたのはNimotsuKunImageの以下の部分↓
cin >> input;
このcinはiostreamのcinではなくて、gamelibというオリジナルのライブラリーの関数でした。
その関数の中身を見てみると、
//StandardInput
StandardInput cin;
StandardInput::StandardInput() : mPrevEnterOn( false ){
}
StandardInput& StandardInput::operator>>( char& a ){
a = '\0'; //初期値
bool entered = false;
while ( true ){ //無限ループ
//スペース
if ( GetAsyncKeyState( VK_SPACE ) & 0x8000 ){
a = ' ';
entered = true;
}
//0-9
for ( char i = '0'; i <= '9'; ++i ){
if ( GetAsyncKeyState( i ) & 0x8000 ){
a = i;
entered = true;
}
}
//a-z
for ( char i = 'A'; i <= 'Z'; ++i ){
if ( GetAsyncKeyState( i ) & 0x8000 ){
if ( GetAsyncKeyState( VK_SHIFT ) & 0x8000 ){
a = i;
}else{
a = 'a' + ( i - 'A' );
}
entered = true;
}
}
bool enterOn = ( ( GetAsyncKeyState( VK_RETURN ) & 0x8000 ) != 0 );
if ( entered && enterOn && !mPrevEnterOn ){
mPrevEnterOn = enterOn;
break;
}
//ウィンドウから終了要請を受けているようなら抜ける
bool alt = ( ( GetAsyncKeyState( VK_MENU ) & 0x8000 ) != 0 );
bool f4 = ( ( GetAsyncKeyState( VK_F4 ) & 0x8000 ) != 0 );
if ( alt && f4 ){
Framework().requestEnd();
break;
}
mPrevEnterOn = enterOn;
}
return *this;
}
となっており、よく見るとリターンキーを押さないと入力を受け付けないようになっていた。
さらにwhileで入力待ちになっていたから、更新されたままの状態になってしまっていた。
ということで、キーを入力した後にリターンキーを押せばちゃんと動かすことができました。
これを直すのに理解するのに時間がかかったし、これでとまったのは自分だけでしょう。
あーあ
結構前に買ってちょっとしかやっていなかった
「ゲームプログラマになる前に覚えておきたい技術」という本で勉強しようと思います。
今は、アンドロイドで作っているし,言語はjavaだし、Openglだしと
つながっている部分はゲームプログラムという点しかないけれど、すこしでも上達すればという思いでやろうと思います。
チャプター1からチャプター27まであるんですが、前に2まではやってあったので3からスタートすることにしました。
しかし、しばらくC++とvisualstdioを触っていなかったので使いにくいし、C++も結構忘れている、
コードを書こうとするとjavaの書き方になってしまってなかなか進まないこともあり大変です。
C++は難しいというか使いこなすのが大変。
さらに勉強している途中で早速つまずきました。サンプルプログラムを実行してもゲームを動かすことができないんです。
ゲームを起動することはできるんですが、絵画面がでたままキー入力を受け付けずずっと更新状態のままで、おかしいなと思ってネットで探すも同じようなのはでてきません。
止まっていたのはNimotsuKunImageの以下の部分↓
cin >> input;
このcinはiostreamのcinではなくて、gamelibというオリジナルのライブラリーの関数でした。
その関数の中身を見てみると、
//StandardInput
StandardInput cin;
StandardInput::StandardInput() : mPrevEnterOn( false ){
}
StandardInput& StandardInput::operator>>( char& a ){
a = '\0'; //初期値
bool entered = false;
while ( true ){ //無限ループ
//スペース
if ( GetAsyncKeyState( VK_SPACE ) & 0x8000 ){
a = ' ';
entered = true;
}
//0-9
for ( char i = '0'; i <= '9'; ++i ){
if ( GetAsyncKeyState( i ) & 0x8000 ){
a = i;
entered = true;
}
}
//a-z
for ( char i = 'A'; i <= 'Z'; ++i ){
if ( GetAsyncKeyState( i ) & 0x8000 ){
if ( GetAsyncKeyState( VK_SHIFT ) & 0x8000 ){
a = i;
}else{
a = 'a' + ( i - 'A' );
}
entered = true;
}
}
bool enterOn = ( ( GetAsyncKeyState( VK_RETURN ) & 0x8000 ) != 0 );
if ( entered && enterOn && !mPrevEnterOn ){
mPrevEnterOn = enterOn;
break;
}
//ウィンドウから終了要請を受けているようなら抜ける
bool alt = ( ( GetAsyncKeyState( VK_MENU ) & 0x8000 ) != 0 );
bool f4 = ( ( GetAsyncKeyState( VK_F4 ) & 0x8000 ) != 0 );
if ( alt && f4 ){
Framework().requestEnd();
break;
}
mPrevEnterOn = enterOn;
}
return *this;
}
となっており、よく見るとリターンキーを押さないと入力を受け付けないようになっていた。
さらにwhileで入力待ちになっていたから、更新されたままの状態になってしまっていた。
ということで、キーを入力した後にリターンキーを押せばちゃんと動かすことができました。
これを直すのに理解するのに時間がかかったし、これでとまったのは自分だけでしょう。
あーあ
2012年6月12日火曜日
絵を描いた(リス君とハット)
新しく敵の絵を描いて処理を実装して、暫定的な主人公の絵を描きました。
リス君とハットと名づけました。
リス君が主人公で、ハットはピョンピョン飛ぶことが役割の敵です。
本当はもっと進める予定でしたが、PCのセキュリティソフトが原因でPCがおかしかったりで思ったより先に進めませんでした。
2000円くらいのセキュリティソフトをインストールしていたんですが、
ソフトを入れたときからなんとなく動作が遅くて、メールが読み取れなかったり他にも色々おかしかったりで、このソフトが原因で一回OSの再インストールをしたくらいです。
それで今回は、ソフトのアップデートがあるので再インストールをしてくださいというメッセージが出たので、英語のサイトにいってソフトをダウンロードして再インストールしなおしました。
そしたら、購入した証拠となるキーを入力してくださいと出たので、入力しようとしたらキーの入力桁数が自分のものと違うのでカスタマーセンターに電話したら、
それは同じ製品の違う会社のものなので、また再インストールし直してくださいといわれたので
またCDROMからインストールし直しました。
さらに今度は、ソフトのファイヤーウォールが有効にならず、ファイヤーウォールを有効にするというボタンをクリックしてもまったく反応しません。
またカスタマーセンターに電話してもどうせまた再インストールし直してくださいといわれるだけだと思ったんで、ウィンドウズのセキュリティソフトに切り替えました。
ただただ時間を奪われた、時間を返せー金返せーヽ(`Д´)ノ
リス君とハットと名づけました。
リス君が主人公で、ハットはピョンピョン飛ぶことが役割の敵です。
本当はもっと進める予定でしたが、PCのセキュリティソフトが原因でPCがおかしかったりで思ったより先に進めませんでした。
2000円くらいのセキュリティソフトをインストールしていたんですが、
ソフトを入れたときからなんとなく動作が遅くて、メールが読み取れなかったり他にも色々おかしかったりで、このソフトが原因で一回OSの再インストールをしたくらいです。
それで今回は、ソフトのアップデートがあるので再インストールをしてくださいというメッセージが出たので、英語のサイトにいってソフトをダウンロードして再インストールしなおしました。
そしたら、購入した証拠となるキーを入力してくださいと出たので、入力しようとしたらキーの入力桁数が自分のものと違うのでカスタマーセンターに電話したら、
それは同じ製品の違う会社のものなので、また再インストールし直してくださいといわれたので
またCDROMからインストールし直しました。
さらに今度は、ソフトのファイヤーウォールが有効にならず、ファイヤーウォールを有効にするというボタンをクリックしてもまったく反応しません。
またカスタマーセンターに電話してもどうせまた再インストールし直してくださいといわれるだけだと思ったんで、ウィンドウズのセキュリティソフトに切り替えました。
ただただ時間を奪われた、時間を返せー金返せーヽ(`Д´)ノ
2012年6月7日木曜日
失敗した
自キャラの絵でも書こうと思い実際に書いてみて、変だけどまあまあかなどんな感じかなと思い実機で出してみたらどうしようもない感じになってしまった。
まず絵が汚いです。んでへたくそです。
これを書くのに一時間くらいかかりました。
時間がもったいない、ほかの事やればよかったと思いました。
でも、こうやって少しづつ上達していくんだと信じてがんばります。
まず絵が汚いです。んでへたくそです。
これを書くのに一時間くらいかかりました。
時間がもったいない、ほかの事やればよかったと思いました。
でも、こうやって少しづつ上達していくんだと信じてがんばります。
マルチタッチをいじくった。
いままで使っていて大丈夫と思っていたマルチタッチのプログラムにだめなところが見つかったので、
色々と考えて修正しました。
今度は大丈夫そうです。
つまらない時期を越えて最近は作るのがちょっと楽しくなってきた。
アイデアも少しわいてきた。
色々と考えて修正しました。
今度は大丈夫そうです。
つまらない時期を越えて最近は作るのがちょっと楽しくなってきた。
アイデアも少しわいてきた。
2012年6月4日月曜日
アクションゲーム敵の処理
敵の処理を入れました。
左のが敵で歩くのみが役割の敵。
当たり判定を新しくしたのと、canvas描画からopenglに変えたので、
プログラムの中身を少し変更しました。
とりあえず、敵のプログラムの方針が決まったので後はどんどん作りこむだけ。
でも、肝心なゲームの中身がなかなか浮んでこないので、なかなか進まないです。
がんばろう
左のが敵で歩くのみが役割の敵。
当たり判定を新しくしたのと、canvas描画からopenglに変えたので、
プログラムの中身を少し変更しました。
とりあえず、敵のプログラムの方針が決まったので後はどんどん作りこむだけ。
でも、肝心なゲームの中身がなかなか浮んでこないので、なかなか進まないです。
がんばろう
登録:
投稿 (Atom)