日記(989)

<前 次>

VB + Java = C#

VisualC#、どちらかというと―IDEの影響が大きいかもしれませんが―VisualC++6よりははるかにVisualBasic6に近い感じがします。
ちょっとコードの一部を出してみると、
pnlInfoUpper.Height = cmbName.Height * 3;
lblName.Left = lblGame.Left = lblInfo.Left = 0;
lblName.Height = lblGame.Height = lblInfo.Height = lblGame.Top = cmbGame.Top = cmbName.Height;
lblInfo.Top = cmbName.Height * 2;
lblGame.Width = cmbName.Left = cmbGame.Left = lblName.Width;
data.Load();
ChangeView(ViewMode.ABC);
LayoutInfo();
プロパティを指定してコントロールの大きさを変更してるあたり、いかにもVBです。
他にもVBと同じ仕様のforeachがあったり(本当にVBのFor Eachに括弧をつけただけです)、refをつけて明示的に参照渡しにしたり(VBではByRef)、VBをC言語風の見た目にしたような感じでした。
ファイルの読み書きについてはJavaに似ていて、System.IO名前空間のクラスを使って読み書きします。
StreamReaderはテキスト読み込みクラスで、
sr = new StreamReader(filename, Encoding.GetEncoding(932));
でテキストファイルを開き(Encoding.GetEncoding(932)はシフトJIS)、ReadLine()メソッドで一行ずつ読み込めます。
もしかしたら変な予備知識がない分VB.NETやC++.NETより使いやすいかもしれません。
いや、だからこそC#にしたんですけど。
そうそう、コーディング中にもガンガンエラーを出したりヒントを出したりしてくれるので下手にヘルプを引くよりまずは何かを入力してみるというのが結構有効です。
そして、ヘルプは、大して速くもない自分のパソコンを使うよりも、Googleで検索したほうが圧倒的に早く、正確な情報が得られます。

もうすぐミディビ完成させたい

う~む、C#のコントロールによるレイアウトはJavaのように自然な大きさに調整されるとかそういうのはないみたいです。
でもまあレイアウト関連はVBとかに比べるとやっぱり自動的にやってくれる部分が多くて助かります。
えっとですね。C#。どっちかというとIDEも含めればVBに近いです。
VBをC風の文法でかけるようなものです。
オンラインヘルプがあまり当てにならないのがつらいところですがメンバ自動表示や、ツールチップなどで機能を簡単に説明してくれたりするのでそっちで補えそうです。

そうそう、ミディビ更新しましたよ。
内容はバグ修正のみ。プログラミングコーナーも更新です。

C#

しかしVC++.NETを触ってみた感想、.NETにあわせてC++が結構拡張されてるみたいです。
^って何よ。
下手したらMFC以上にタチ悪いかも??
^というのはどうにもオブジェクトのハンドルらしいです。
gcnewで生成したオブジェクトを代入しているあたり、どうもガーベジコレクタが働いて、使われなくなったら自動的に解放されるらしいです。
しかし、後付けの機能が増えるに従い際限なく複雑化するC++がいい加減嫌になってきたので.NETはC#にすることにしました。
VC++2005はWindowsネイティブもできるから選んだというのに色々面倒なステップが必要な上にRADツールもつかずSDKは英語ということで、とても実用に堪えるものではなく、騙された気分でした(VC6があるので)。
というわけでVC#を導入。
なんかこれはこれでライセンス登録が必要らしいです。
でも少なくとも.NETに無理矢理C++を当てはめたVC++.NETよりは見通しがよさそうな気はします。

ドットネット

ドラクエ8のもう一つのエンディングを見てしまいました。
本当はただラスボスのマダンテが見たかっただけだったんですが、たいした技を使うひまもなくあっさりお亡くなりになられたのでそのままエンディングに入ったのですが、そこでアルゴンリングをもっていることに気づき、ククールにも指摘されたのでちょっと王様に見せてみたらなんか駆け落ちするはずだったところが堂々と結婚できることになり、チャゴスが前にも増して気の毒なことになってしまいました。

今日はMFCの練習もかねてキャラボックスのC++バージョンを作ろうとしたのですが、MFCをどう使っていいのか、画像形式は何が使えてどこまで表示できるのか、などがわからず断念し、.NETならどうかなと思ってVC++2005Expressをインストールしてみました。
ただ、インストールに時間がかかってしまったので本格的に使い始めるのはまだ先になりそうです。

そしてバグ発見

ミディビを久々に更新しました。
今日やったのは、
・音の強さを変えられるようになった。
・編集単位の導入。
・演奏開始位置を指定できるようになった。
・ピアノロールをクリックしたときのコードをある程度まとめた。
・sequencerをMIDIAppletに移動。
・演奏/送信をMIDIAppletに任せてMIDIDocumentはデータ管理のみにした。
とまあ、こんなものです。
普段ならタグ使ってリスト表示と行くところですが、今回はサンプルに付属するテキストからのコピーなのでそのままプレーンテキストになってます。
そうそう、先ほどブラウザ上で動かしたら、演奏中に他のページに移動すると演奏が止まらなくなるバグを発見したのでそのうち直すつもりです。
多分明日になるでしょうね。
この挙動はプログラミングコーナーの更新ネタにはもってこい。

ククールはアンジェロだった

ドラクエ8で袋の中身を一度全部売ってしまったら50万ゴールド近くにもなりました。
大切な道具もあったのですぐリセットしましたが。
で、今日は弟がサントラを買ってきていました。
それで、曲の英語名を調べようと英語のサイトを回っていたら、北米版ドラゴンクエスト8の公式サイトに出会いまして。
北米版ではなんと主人公がスーパーサイヤ人になるみたいです(http://www.dragonquest8.com/)。
しかもボイスありということで。
北米ではドラクエは今まで初期のものしかなく間が長かったためドラクエを1から順番に見てきている日本人とは別の配慮が為されているようです。
個人的には日本がイバラに包まれるCMが好きですね。北米版。

掲示板のことで

竜の試練とやらを受けてきました。ドラクエ8で。
景品で新しい剣をもらいました。
メタルキング相手にはテンションを上げてはやぶさの剣+メタル斬りがもっとも有効ですが、普通の相手だとなかなかのパワーを見せてくれます。

ヨッシーストーリーを久しぶりにやったらデータが消えていました。
ハイスコアはともかくトライアルモードで選べるステージが減ったのはつらいです。

そうそう、旧TWSの掲示板を閲覧専用にしました。
書き込みのほうがもはやTGWSのほうで充分ですし、書き込まれるのも宣伝書き込みだけになっているのが現状ですので。
それでも掲示板そのものを消さないのは管理人の勝手な都合からです。

<前 次>