goo blog サービス終了のお知らせ 

ソノターネット2

メインページはブックマークからどうぞ

C#でプログラムというか切り貼り

2009-09-02 00:08:29 | Visual C#
 ドラムが欲しいのですが、仮にボーナスが出るとしてもまだまだ先の話です。で、目の前にはPS2のドラムマニア用のドラムコントローラがあります。さらにそいつをパソコンにつなげるUSBのヤツも買いました。
 この組み合わせで遊べるDTXmaniaというとても良くできたソフトがありました(現在、サイト閉鎖中)。ゲームセンターのドラムマニアのシミュレータなのですが、曲データでの練習しかできないようで、単純なドラムとして使えないのです。今書いていて思いましたが、練習用の無音の曲データを作れば良かったんですね。

 で、書いて思う前だったので、間違ってVisual C#でプログラムを作り始めてしまいました。作ったと言っても、ドラムコントローラの各パッドが叩かれたら音が出るようにするだけのプログラム。
 しかし、生粋のCはわかるもののC++やらC#は一切わからないので、基本的にはネットで「C# ジョイパッド 入力」みたいに検索しまくって先人が公開してくれたソースコードを切り貼りして作りました。
 唯一自分でプログラミングしたと言えそうなのは、他のパッドと違ってバスドラムは踏みっぱなしにできてしまうため、いったん足を浮かせないと次の音が出ないという処理を書いたくらいです。

 とりあえずできたのですが、パッドをたたいているのに音が出ないことがしょっちゅうあります。それで、これはドラムコントローラのできが悪いからに違いないと思ってあきらめていたのですが・・・↑の部分を書きながら久しぶりにDTXmaniaをやってみたところ、一切の取りこぼしがありません。

 というわけで、プログラムの作り方が悪いということです。しくしく。

 いまは、10msごとに呼び出される関数(っていうのかな?)の中でジョイパッドが押されているかどうか判定をするようにしています。ドラムコントローラの内部構造は知らないですが、基本的には圧電スイッチの塊だと思いますので、叩いた瞬間だけオンになります。ということで、10msごとでも結構カツカツなのかもしれません。実際にWindowsで10msごとに処理が回ってくるのかも怪しい気もするし。

 というわけでまたネットで検索しまくりますー(>_<)。

リブルラブルを作ろう(うまくいかず

2006-11-14 01:12:16 | Visual C#
大変です。「リブルラブル アルゴリズム」で検索したら一番上に出るようになってしまいました。がんばります。

しかし基本的なところでつっかかって進んでおりません。

前回、描画面をpictureboxにして、その上にLibbleとRabbleそれぞれのビットマップ画像をpictureboxを載せて「重ね合わせをどうしよう」と言ってました。
が、やるんだったら、大きなpictureboxのしかるべき場所にビットマップ画像を転送するのが普通なのでは。
と思って思いつくキーワードで検索しているのですがなかなか見つかりません。うーん、どうやるんだろ。明日本屋に行ってみて「Visual C#でゲームを作ろう!」みたいな本があったら買ってみようと思います。

試行錯誤してソースいじくって[F5]キーを押したら(デバッグ)ソースを勝手に保存する仕様みたいでぎとぎとになってしまいました(泣。まず動く版に戻さなきゃ。

キャラクタも表示できた(いまいち)

2006-10-31 02:20:45 | Visual C#
msdnのページの第8回、第2回を参照してキャラクタの表示ができました。なんだか順調です。pictureboxのTopとLeftに座標を入れるだけです。
なぜかコンパイル通らなかったりしましたが試行錯誤している間になぜか動きました。

ただ、透明色みたいな設定の仕方がわからないため、いわゆる「ダサい四角」に囲まれた状態です。これはまた後日。簡単にできるのかな??

今日はちょっと短めなのでぜひ見て欲しい動画を。
スターボー ハートブレイク太陽族
宇宙から来た三銃士です。今デビューしていればかなり売れたと思うのですが、1982年。早すぎたようです。

周りの人に聞いてみたら、当時僕が受けた強烈な印象に反して知名度は低く誰も知りませんでした。
先日、子供の友達が遊びに来たときにたまたま流していたら「なにこれー」と大笑いしました。

スターボーのデビューはまだあと20年くらい早いのかもしれません。

メインページ

キー入力できた

2006-10-30 03:28:10 | Visual C#
 こちらのページを参考にして、キー入力を受け付けることができました。まだキャラクタ的なものが何も表示されていませんが、左手と右手の入力にあわせて線の両端点が動いて線もそれにあわせて動くところまでです。

 画面写真ではわかりませんが、速度がとても遅いのです。

 毎回256個分の配列を走査するのは処理が重いのでしょうか。Z80Aじゃあるまいし、そうは思えません。
 キーリピートの速度に依存するのかな?
 ほんとのゲームを作る気ではないとは言えちょっと気になります。

 しかし。会社でも久しぶりにプログラムを作ってますが、長いブランクのせいなのかトシのせいなのか、まったくもって指の進みが遅いです。昔は、やりたいことを思いついたら最初から最後までのソースリストが頭に浮かんでがーっと打ち込むだけでしたが、今はさっぱりです。
 1行1行コツコツ。学生の頃、フローチャートなんてまどろっこしいものはなんでこの世に存在するのかなんて思ってました。いったんプログラムを書いてそれを見ながらフローチャートを書き起こしたりするくらい。
 でも、今ではその存在意義がよくわかります。うーん、トシはとりたくないよのう。リハビリリハビリ。

メインページ

openFileDialogを使うとSecurityException出まくり(2)

2006-10-24 02:17:42 | Visual C#
満を持して会社のパソコンで再インストロールしたのですが、やっぱりSecurityExceptionが出ます。
ためしにやってみたら、saveFileDialog(だったかな)ではエラーは出ませんでした。

頭に来たので今日は会社から帰る前に.net Framworks 1.1やらOffice2003やらも削除してきました。明日会社行ってもメールチェックできないや(笑。

ちゃんとわかってれば楽勝で解決できることなのかなぁ。

次回、リブルラブル計画はキー入力を判定しよう!の巻です(泣

線描けた

2006-10-23 03:21:49 | Visual C#
グラフィックとBGとスプライトが欲しいのですが、完璧に理解してから取り掛かるとすると一生できない気がしたのでとりあえずグラフィックから。

マイクロソフトのステップバイステップな感じのページを見ながらちょびちょびとプログラムを書き始めました。
そのままコピーしてもコンパイルが通らず、直すべき部分もわからないので、自分で作りながら必要な部分だけいただいてくる感じで進めました。

で、昔懐かしい3D的線画を描くことができました。

「これは簡単」と思ったのですが、考えたらその昔、目の前にあるパソコン画面は全部自分のものという時代(表現としてはDOS時代)は画面モードを設定したらあとは線を描くだけだったわけなので、やっとそのレベルまで到達というか回帰してくれたということになるのでしょうか。

しかし。作ろうとしているものがゲーム(っぽいもの)なので、普通にドットでやっていると小さすぎて困ります。プログラムやコントロールとしては256x256だけど見え方だけ大きく引き伸ばされる、みたいな設定ってできないのかなぁ。

などと、自分でやるべきなのか便利な設定があるのかの見極めがWindowsプログラミング効率化の最重要点な気がします。

リブルラブル アルゴリズム」で検索したらかなり上位にランクインされるようになっていることが判明しました。がんばります。

openFileDialogを使うとSecurityException出まくり

2006-10-20 16:54:06 | Visual C#
 そろそろプログラミングをしようということで、Visual Basic .NETの通信教育を受け、家にはVisual Basic Expressを入れ、会社ではVisual Studio .NETを買いました。

 が、やっぱりC#でやってみたくなりました。Visual Basicの通信教育も途中で、C++もかじりそこなっただけですが、クラスやらカプセル化やら継承やらと面白そうな機能があるみたいです。

 やっぱりくくりは { ~ } であって欲しいし、Basicはfor文で変数をいじった結果がどうも心配だし、ループの中でcontinueやbreakは使いたいです。

 というわけで、会社のはVisual Studioで言語は全部入っているので、C#を触ってみました。とりあえずファイルを選ばなきゃ、ということで、openFileDialogを使おうとおもったのですが、こいつを使うと「SecurityExceptionをなんとかかんとか」というエラーが出てコンパイルが通らなくなります。
 エラー箇所をコメントアウトして無理にコンパイルを通しても、実行時にエラーが出てしまいます。
 ネットでいくら検索しても同じ場面に出会った人はいないみたいです。うーむ。

 会社で、Windows2000、WindowsXPの2台でやったら2台とも同じ症状でした。
 今日、具合が悪くて会社を休んだので家のパソコンでやってみようと思いました。が、なんとなく、ということで、関係ありそうなソフトを全部アンインストロールしてから再度C#を入れてみました。

 openFileDialog。

 無事に動きました。じゃあそういうことで。