2012年12月31日月曜日

12/12/30(ゲームプログラマーになる前に覚えておきたい技術を読み終える)

○アンドロイドゲーム


触ると壊れるブロックの処理が完成しました。
壊れた後に飛び散った破片にあたるとoutになるようにしました。
当たり判定を別に作ったので、結構苦労しました。
アクションゲームを作るのは大変です。

後は、easyモードのステージ2を作りました。
1よりもいい出来になっていると思います。

今回は、操作を理解してもらうeasyモードとクリアするのが大変なnomalモードに分けて作ろう
と思っているのですが、だんだん分ける必要がないんじゃないかと思ってきました。

分けて作ると2倍時間がかかるし、完成しないのでモチベーションが下がる一方です。
あーーーー


○基本情報(1120,+40)


今日勉強して、データーベースsqlがまったくわからないことに気がついた。
その為に参考書買ったんだからやる。


○ゲームプログラマーになる前に覚えておきたい技術


バグの項目を読み終えてついに、全てを読み終えました。
当然のごとく全てを理解しているわけではありません。

本の中で、ここは自分でやってみなさい、という項目が何度もありましたが、
自分で作らずにソースを読んでいました。

ただ、全て自分で書くまで、読み進めないというやり方をしていたら、
むちゃくちゃ時間がかかると思うので、進め方は、自分のペースでいきました。


約2年前に購入して、大して見ないままホコリをかぶっていましたが、
やってよかったと思います。

やっぱり人のソースコードを真似したり、新しい考え方に触れないといつまでたっても
成長しないんだと、この本を見て感じました。

いままで、人のコードは読まないで来たので、これからはできるだけ本を読んで、
いいところを真似して技術を磨いていきたいと思っています。


必要そうなところは、また読み返したいと思います。

2012年12月30日日曜日

12/12/29(壊れるブロックを作る)

○アンドロイドゲーム

ブロックに触れると壊れるオブジェクトを作ろうと思ったが、まだできていません。
どうゆう風に作ろうかと考え中


○基本情報(1080,+40)

買ってきた参考書の2進数など、計算系の問題をやりました。
全部目を通すつもりです。

2012年12月29日土曜日

12/12/28(つまらない処理に時間を使う)

○アンドロイドゲーム

easyモードの1-2のステージ作りをした。
マップエディターでステージが大体決まった後に、一度倒した敵を復活させる処理を作ろうと思って、やり始めたんですが、この処理に一時間もかかってしまいました。

原因はforで敵の数分だけデバックしていたので、
死んで生き返る敵のメンバー変数の中身が4になるはずが、0,0,0と表示されるので、
なんで0になっちゃうんだと、原因を探していたことにありました。

forで回しているので、他の敵の変数がログに入っていることに気づかなかったのでした。
次は気をつける。


○基本情報(1040,+40)

ネットワークのところをやりました。
細かいところはわかりませんが、大体はわかります。


○ゲームプログラマーになる前に覚えておきたい技術


chapter25,26(付属ライブラリの使い方)(バグとの付き合い方)


バグは今javaを使っていて、c++は今後あまり使いそうにないので、newとかの
メモリ関連のバグはでなさそうです。

なので、あまり意味ないかも。

2012年12月28日金曜日

12/12/27(基本情報午前の参考書を買った)

○基本情報(1000,+50)

とうとう1000分突破。

今日は、午前中ようの参考書を買ってきました。

北見式イラストIT塾基本情報技術者というのを買いました。

イラストが多くて、見やすそうだったので、これにしました。

買っても買わなくてもよかったなという風にならないように気をつけながら勉強を続けたい
と思います。

値段は2000円ほどでした、高、

過去問とあわせて、3500円くらいお金をかけてます。
さらに午後も購入予定なので、5000円は参考書代で飛びます。
で、試験を受けるのに5000円かかるので、10000円はかかります。

勉強にかけた時間とお金を合わせて、ちゃんと対価が返ってくるかは、
数年後にわかるんだろうなー。


○アンドロイドゲーム


背景をやりました。
まあまあいいのができたんじゃないかと思います。
ネオンで作った文字にアルファを効かせて、点滅されているように見えるようにしました。

さらに、引数で文字列を入力したら、ネオン文字が描画される関数などを作って、
背景が華やかになるように努力しました。

効果があるかはわかりません。
個人的にはまあまあです。

2012年12月27日木曜日

12/12/26(背景を改良したかった)

○アンドロイドゲーム


背景を改良して見栄えのいいようにしたかったんですが、
なんかどれもいまいちになってしまった。
さぁどうしようか


○基本情報(950,+50)


表計算とかバックアップに関してやる。
表計算の絶対座標と相対座標の違いが始めてはっきりとわかった気がしました。
セルをコピペしてドラックしたりすると、相対座標も一緒に動いてしまうので、
絶対座標が必要なのだと初めて知った。
勉強になりました。


○ゲームプログラマーになる前に覚えておきたい技術


chapter24

floatの使い方


floatで計算するときの誤差の対処法とかを学びました。
正直全部は理解できなかった。
もう一回ゆっくりやらなければいけない。

もう少しで読破します。

2012年12月26日水曜日

12/12/25(色々あってできなかった)

今日は、イベントが色々あってできなかった。


○基本情報(900,+10)


システムテストのところ、暗記。

2012年12月24日月曜日

12/12/24(背景を書く)

○アンドロイドゲーム


ゲームの背景がさびしいので、また背景を書き始めました。
しかし、やっぱりさびしい気がする。

まぁ前のスクロールしないよりはましかと思う。

とにかく絵は時間がかかります。こんなことしてたら絵描きで終わってしまう。
一番伸びたいのはプログラムなのに....


○基本情報(890,+40)


システム開発のテスト関連の項目をやりました。
ここらへんはある程度問題を見て、答えを想像できるのでやる意味がないかもしれません。
もう少しでこの問題集も終わりそう。

というか終わる前に参考書がほしい。


○ゲームプログラマーになる前に覚えておきたい技術


chapter23ローディング


この章を読み終えました。
前半は難しくて、後半はマルチスレッドプログラムについて書いてあって内容は簡単です。
スレッドはjavaにも存在するので、今作っているゲームにも適応できそうです。

まぁ素材が小さいので、使う必要がないでしょうが。
ようやく終わりが見えてきました。

12/12/23(ステージ作り)

○アンドロイドゲーム

ステージ1-1作りと背景のマップ作りをした。

最初は背景いいなと思っていましたが、なんかだんだんしょぼく思えてきた。
まぁ背景すこしづつ頑張ろうと思う。

とにかくプログラムのスキルをあげたい。
あと、面白いものを作りたい。それだけです。


○基本情報(850,+20)


参照渡しとか直接渡しとかプログラム関係の項目をやる。
ここらへんは大丈夫

2012年12月23日日曜日

12/12/22(リフトを作る)

○アンドロイドゲーム


リフトを作りました。

左右上下に動いてキャラを動かしてくれるやつです。

ソースは前作ったのをそのままコピペしたのですが、当たり判定を変えたりなんかしたので、
ソースを適用できるように見直しました。

それに30分くらいかかったので、最初から作った方が早かったかもしれない。
半年以上前に書いたプログラムだったので、忘れてました。


今回、リフトを作ったことで、大体マップオブジェクト的なものが完成したので、
いよいよステージ作りに入ろうと思います。
でもまた追加するかもしれません。特に敵に関して。



○基本情報(830,+20)


17章プログラムの実行をやる。

ここは比較的大丈夫です。
どうやってコンパイルされるかなどの項目みたい。



○ゲームプログラマーになる前に覚えておきたい技術


chapter23ローディング


データーの圧縮方法とか、ロードをするときにいかに効率よくするかなどの話です。
容量のでかいゲームは作ったことがないので、いままでは気にしてない内容。
でもいつかはやらないといけない日が来るかもしれない。
内容はとてもむずいです。
まぁ後半の章は全般的にむずいです。



2012年12月21日金曜日

12/12/21(消える床)

○アンドロイドゲーム


消える床の実装や昨日作った大砲の処理に不具合的なものが見つかったので、直しました。
消える床の絵を描きましたが、また変えるかもしれません。

ようやく、部品がそろってきました。


○基本情報(810,+40)


16章のプログラム設計のところをやる。


用語が用語がほとんどわからないので、一から覚える必要がある。

STS分割

TR分割

ジャクソン法

同値分割

などの用語がたくさんでてきました。

実際に現場使っているのかがわからない。



2012年12月20日木曜日

12/12/20(大砲実装)

○アンドロイドゲーム


マップから出る大砲を作りました。
大砲から出る弾について、listを使おうかと思ったけれど、
遅かったりするんじゃないかと思って結局配列にしました。


○基本情報(770,+40)

開発に関しての用語の勉強をしました。


DFD,ERD,HIPOなどをやりました。


ただこれは古い本を参考にしているので、今問題としてでるかどうかがわかりません。
とりえあえずこの本を終わらせようと思います。

2012年12月19日水曜日

12/12/19(ステージ作り)

○アンドロイドゲーム


ステージを作った。
一つのマップを作るのに50分以上もかかってしまった。

絵を描くのが苦痛になってきました。


○基本情報(730,+50)


アローダイアグラム問題をやる。

問題集をやっているからか、説明が飛ばされているところがあるので、わからない。
テキストがいります。

12/12/18(へたくそだけど頑張って絵を描く)

○アンドロイドゲーム


昨日動物のドット絵を書いて、あまりのかけなさに絶望したけれど、
頑張ってなんとか絵を描いて、実装までもっていった。

頑張ってもへたくそですが、なんとか形的にはそうみえるので、現状で考えるとまあいいかと思う。

でも絵で疲れたのか、プログラムがなんだかめちゃくちゃになってしまった。
余裕ができたら見直したいと思う。


○基本情報(680,+50)

RAIDのこととかそこらへんをやりました。


2012年12月18日火曜日

12/12/17(動物が書けない)

○アンドロイドゲーム

敵で犬っぽいキャラクターをドット絵で書こうとしたら、
難しくて書けません。

まーましかと思った絵も、縮小してみてみるとやっぱり変でこれじゃ駄目だ。


少しはドット絵がうまくなったと思ったら、全然上達してなかった。

とにかく難しい。


○ゲームプログラマーになる前に覚えておきたい技術


chapter22,

遅くない衝突判定


ソートを使って、当たり判定の位置を並び替えて、衝突判定を行うという方法を知る。

これを見るまで、ソートしてやるなんて考えたこともなかった。
これも方法か。

ゲームプログラムは大変。


○基本情報(630,+40)


12,13章をやる。

このまま受けたら確実に落ちるなと思った。
午前が完全に知識不足です。

いつか午前の教科書的なものを買わないといけないなとあらためて実感しました。
なるべく安くすませたい。

2012年12月17日月曜日

12/12/16(浮遊敵)

○アンドロイドゲーム


ふわふわと浮いて弾を打つような敵を書いて、処理を書いた。
追加することがありすぎて嫌になってきた。


○基本情報(590,+40)

11章記憶管理

比較的わかった。

2012年12月16日日曜日

12/12/15(トランポリン処理)

○アンドロイドゲーム

頑張ってめんどくさくてやりたくなかったトランポリンの処理をやる。
がんばってなんとか作る。

トランポリンとは、ジャンプ力を増強できるびょんびょんするやつです。
それを実装するのに当たり判定を少し変更しなければいけなかった。
どんどん凡庸化してくればいいことなんですが、なかなかそうはいかなそうです。

場面に応じて作り方を変えないといけないかもしれない。


これで、いよいよステージ作りかと思いましたが、
まだまだギミックが足りないような気がする。

果てしない作業になってきそう。



○ゲームプログラマーになる前に覚えておきたい技術


chapter21

キャラクターが動き出す

を最後までやった。

内容的には、前の内容をちゃんと理解していないと理解できないようになってます。
よくわからないところを流し読みをして、2周目以降に実際に実装できれば言いと思います。

後半に進むにしたがって、難易度が上がっています。



○基本情報(550,+20)

タスク処理のところ、暗記です

2012年12月15日土曜日

12/12/14(魚処理)

○アンドロイドゲーム


昨日魚を書いたので、それを動かすプログラムを書いて実行した。
いい感じにクレイジーです。

後はトランポリンの処理をやろうと思ったけれど、意外と難しそうだし、
実際取りれて面白いかどうかわからないので、辞めるかもしれません。


○基本情報(530,+40)


タスク処理のところをやる、これも暗記です。

2012年12月14日金曜日

12/12/13(まねたほうがいい)

○codler(AOJ)

50.AppleAndPeach

難易度1


appleとpeachを文字列の中で見つけたらそれを交換しろという問題。
たぶんはじめての文字変換の問題でした。

今回から、自分が書いたやつも載せようと思います。
今は恥ずかしいレベルだけど、一年後にレベルアップを感じられたらと切に願う。


int main(void){
 char str1[1000];
 char str2[1000];
 bool bchange = false;
 char apple[6] = "apple";
 char peach[6] = "peach";
 cin.getline(str1,sizeof(str1));  // cinだとスペースまで記録されない
 for(int i = 0;i < 1000;++i){
  bchange = false;
  if(str1[i] == 'a')
  {
   for(int j = 0;j < 5;++j){
    if(j  + i < 1000)
    {
     //違う
     if(str1[j + i] != apple[j])
     {
      break;
     }
     //lastまでいった
     if(j == 4)
     {
      str2[i++] = 'p';
      str2[i++] = 'e';
      str2[i++] = 'a';
      str2[i++] = 'c';
      str2[i] = 'h';
      bchange = true;
     }
    }
   }
  }
  else if(str1[i] == 'p')
  {
   for(int j = 0;j < 5;++j){
    if(j  + i< 1000)
    {
     //違う
     if(str1[j + i] != peach[j])
     {
      break;
     }
     //lastまでいった
     if(j == 4)
     {
      str2[i++] = 'a';
      str2[i++] = 'p';
      str2[i++] = 'p';
      str2[i++] = 'l';
      str2[i++] = 'e';
      bchange = true;
     }
    }
   }
  }
 
  if(!bchange)str2[i] = str1[i];
 }
 cout << str2 << endl;
 return 0;
}


ごらんのとおりそのまんまです。

そのまんまのやつしか書こうとしてません。
最初に思いついた解答をそのまま書いて、どうやったら早くできるとか、
短くできるのかは考えてないです。

時間がもったいないから早くやるという風に考えてしまうのが問題です。


アルゴリズムの本にうまい人のプログラムを真似ろと書いてましたが、
答えがあってたらそのまんまという風にしないで、レベルが高いと思った人のを真似したいと思いました。

そうしないといつまでたっても、このままで終わってしまう。


今まで、誰かのを真似しろとか言われたことがなかったので、
自分で書いて思うように動いたらそのまんま、という感じでしたが、
これからは、人のいいところを盗んでものにしたいと思います。


○アンドロイドゲーム


魚の敵キャラの絵を書く。


○基本情報(490,+40)


記憶装置、レコードとかメンドクサイところをやる。
説明の絵図とかを見ないとわかんないっす。

なんか説明の載っている本とかが必要かもしれない。























2012年12月13日木曜日

12/12/12(12/12/12)

今日は、2012年12月12日でした。なんも変わったことはおきなかったです。


○アンドロイドゲーム

最近はプログラムを書きまくってます。集中できています。

別に難しくないけれど、必要なプログラム上の部品を書いています。
こういうことは、自動化してできないものかといつも思います。
ちょっと面白いんじゃないかと思ってきました。
ブログを更新しました。


○基本情報(450,+30)


4章アルゴリズムをやりました。


ソートの種類とかこの処理はなんていうソートなのかという問題など、
暗記ですね。


2012年12月12日水曜日

12/12/11(code書きまくる)

○アンドロイドゲーム


いろんな処理を書いていったので、なにをやったんだかいまいち覚えていない。
ということはたいしたことはやってないということです。

だんだんゲームっぽくなってきました。


○ゲームプログラマーになる前に覚えておきたい技術


chapter20

光が当たるということ


問題は最後のコードを理解できるかということだと思う。
難しかった。


○基本情報(420,+50)


この間買ってきた、過去問の午前問題をやった。
まだ不十分だと思った。

2012年12月11日火曜日

12/12/10(移動処理と敵の処理)

○アンドロイドゲーム


ステージからステージへと移動する処理を書いた。
本来はもっとかからないはずのところをだらだらとやってしまった。
それに見栄えがよくないというおまけつきである。
効率のいいのをみてまねるしかないけど、そのソースがないです。

後は敵の処理をやった。今日は書きまくった。


○基本情報(380,+20)


4章のアルゴリズムに入る。最初の問題はバブルソートだった。
あわあわわ

2012年12月10日月曜日

12/12/9(また背景)

○アンドロイドゲーム


またひたすら背景を書く作業をしました。
斜めの線とかを書いていたら案の定1時間くらいかかってしまった。
しかも時間のわりに見栄えがよくないし、あとは最初の画面などを決めたりしました。
まだ完全に決まったわけじゃないっす。
そろそろプログラムに移りたい


○基本情報(360,+20)

データー構造のところをやる。
2分木のところで間違えてしまった。
ばかでー


2012年12月9日日曜日

12/12/8(また背景作り)

○アンドロイドゲーム


また背景作りに邁進しました。
その結果ちょっとはましに見えるようになりました。

そして、ゲームのアイデアだしをしました。
だいたい方針が固まってきました。
これからどんどん変わると思うけれども



○codler(AOJ)


47.CupGame

難易度1


超久々にやりました。

簡単なはずで、答えがあっているはずなのにwrongAnswerになってしまう。
原因がわかりませんでした。問題を取り間違えているか、入力の仕方が間違っているのかの
どっちか。

他の答えを見たけれど、同じような感じだったので、わかりません。
ここがいけないって教えてくれたらもっといいんですが、

でも、相変わらずそのままなコードを書いてしまった。
でも考えると時間がかかるからすぐこうだと思いついたまま書いた方がいいような気もする。
そこらへんは経験だと思います。


○基本情報(340,+30)


データー構造のところに入りました。
いわゆるスタックとかキューとかの学習です。

問題ないです。

2012年12月8日土曜日

12/12/7(ミップマップを試す)

○アンドロイドゲーム


端の描画がうまくいかないので、用途が違うのでかわらないと思ったけど、
ミップマップを試した。

結果は変わらなかった。

というか、描画している画像の方にミスがあって、プログラムのせいじゃなくて自分のせいだった。
これで、4時間くらい無駄にしてしまった。
確認するべきことが違った。

原因がわかってよかった。


○基本情報(320,+10)

ビットシフトの問題、問題ないっす



○ゲームプログラマーになる前に覚えておきたい技術

chapter18,19,20をやる。


当たり判定の項目は中途半端におわってしまったみたい。
自分で考えろということでしょうか?
ゲームプログラムは奥が深いです。

2012年12月7日金曜日

12/12/6(テクスチャ処理わからず)

○アンドロイドゲーム


自分のゲームをスマホでやっていたら、画面端に白い線が描画されているのに気づいて、
家で直そうと頑張ったが、できなかった。

前にもあったが、前回は、画像の端を変な風に描画していたからだと思うが、今回は違う。

原因はfloatだと思う。doubleで描画したら解決されそう。

テクスチャサイズも2^nだし、問題ないはず。
原因がわからない。検索ワードもわからないし。


○基本情報(310,+10)


論理回路をやる。一問わからんかった。

今日は、過去問を買ってきました。4月までに全部やる

2012年12月6日木曜日

12/12/5(素材作り)

○アンドロイドゲーム


今日も絵を書く作業。

今後アルファベットが必要だと思われるので、前に作ってもらったアルファベットにネオンをかけて
背景にも使えるようにした。
なかなかいい感じになったと思う。


ただまだ背景がさびしいので、なにかしら足さないといけない。

今日はプログラムしてない。絵だけで終わってしまった。


○基本情報(300,+10)

5時間突入、まだ5時間しかやっていない。4月に試験だからそれまでに8割りとれるようにしないといけない。


論理問題をやった。
3問中3問間違えた。

でもこれでやりかたがわかったので、もう間違えないと思う。

2012年12月5日水曜日

12/12/4(ゲームを作りこみ)

○アンドロイドゲーム


取り組んだ背景をゲームにいかすべく、プログラムを書いた。
変には見えないけれど、なんかさびしい感じになってしまいました。

その後、弾のプログラムが画面端で消える処理にとりかかった。

考えられるように、頭を使うようなこともないようなことだったが、
ネットサーフィンしながら適当にやっていたら、なんかの不具合でなかなか
かけなかった。

結局書き上げるのに1時間もかかってしまった。
こんなことで1時間もかかるなんて、人生を無駄にしてしまった。

その後、背景を書き始める。つなげたらいい感じになったぞ。



○基本情報(290,+10)


ビット反転とかの問題。
ゲームプログラムでも良く使う分野だと思いますが、
数えるくらいしか使っていません。

これはレベルの低い証拠でーす。

2012年12月4日火曜日

12/12/3(背景やり直し)

○アンドロイドゲーム


昨日背景のプログラムで考え方をミスったので、修正してすごい見栄えの悪いものにした。
この背景表示方法を変えると当たり判定のやり方も変える必要があるので、
とりあえずしょうがないと思った。

まあ重くなっていないし大丈夫だと思う。


後問題は、ドット絵背景を書く能力だと思う。
実際に表示してみたが、背景っぽく見えません。
すぐそこにあるように見える。たぶん影とかつけないとそれっぽく見えないんでしょう。


○基本情報(280,+10)

演算、ドモルガンなどをいまさら使う

2012年12月3日月曜日

12/12/3(背景失敗)

○colder


「アルゴリズムの基本」という本で、シェルソートを学ぶ。

本に載っているやり方を元に実際にコードにしてみて実行してみた。
グループ化してソートするところがよくわからなかった。
この時のソートはバブルとかでいいのかな。
だれかのサンプルコードを見ないとひとりよがりになりそうです。


○アンドロイドゲーム


背景を実装するプログラムを書いてる途中に、不具合というか駄目な点を見つけて時間が
無駄になってしまった。

昨日考えたときは、これでいいじゃんと思ったけれど、実際にコードを書いてるときに
これじゃ駄目なことに気がついたけれど、とりあえず実装してみた。

それ以前に自分で作った描画関数の使い方を間違えていて、なんでできないんだと
ずっと考えていた。
色々時間を無駄にして馬鹿だと思った。

その後別のやり方を思いついたけれど、効率が悪い。
でも、自分の考えつくやり方なんて全部効率が悪いだろうから、
とりあえずそれでやってみることにします。


○基本情報(270,+5)


演算の項目をやる。

なんか失敗した。


今日は駄目な日だった。昨日エヴァ観に行ったからだ。

2012年12月2日日曜日

12/12/1(evaQを見に行った)

エヴァを見に行った。
予想していた展開とまったくちがってよかった。
話をまったく聞いてなくてよかった。
そうじゃないと面白さが半減してしまう。
最後をみて、なんかもう終わりでいい気がした。
この後どうやって盛り上げるんだろう?
最後も見るけれども


○ゲームプログラマーになる前に覚えておきたい技術


chapter18

立体の衝突判定を読みました。

相変わらず難しい内容でした。久々に読むと前の部分がよくわからなくなってきてしまう。
一回では身につかないので何度か読んで、実際に自分のゲームに組み込んでみないと使いこなせないと思う。

とりあえず、3dで作る予定はないので、当分必要ないのかな。
でもいつかはやりたいです。

というか、2次元でも応用できますね。



○基本情報(266,+10)


ディスクの読み込みとか書き込みのとこ、ここら辺は問題をやって慣れるしかないと思います。

2012年12月1日土曜日

12/11/30(43Puzzle)

codler(AOJ)


43.Puzzle

難易度2


データー入力の仕方がわからなったので、答えをみた。
そうしたら、コードの量が長かったので、自分が考えた方法では駄目なのかもしれないと思った。
いけると思いますが。

いままでの簡単なやつと比べたらちょっと難しいんじゃないでしょうか。


○基本情報(255,+20)


ディスクの書き込みの部分をやる。
ここはしっかり覚えないと得点にならないと思った。
問題をこなそう