上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--:--  |  スポンサー広告

2011.09.11 (Sun)

いかん、いかん。

いかん、いかん。テイルズ新作、かなり面白い・・・
時間が経つのも忘れてやってたら更新がおろそかになってしまいました・・・
そろそろ更新とかコメ周りをちゃんとせねば!

昨日土曜日は、朝起きてから少しプログラミングの練習。
前にも紹介した東方原曲用MP3プレーヤーのランダム再生機能を改良することに成功し、10時頃から上機嫌でアキバへ出かけました。

今回はあまり目ぼしいグッズが見あたらなかったので、薄い本を中心に漁ってきましたよ。
薄い本たち

この中では真ん中にある、みょんのが毎回楽しみなんですよねー。
はたして今回のゆゆ様はいったいどんな風にみょんのおぱんつを召しあがるのでせう!(((o(^。^")o)))ワクワク
(他のは適当にフィーリングで選びました。水着姿のゆゆ様とおぜう様は表紙買いですw)

期待を胸に帰路に付く途中、電車の中でふと前の席を見ると、
小学生位の女の子が一生懸命小説を読んでいるのに気づきました・・・

あれ・・・目の錯覚か?・・・その手にあったのは・・・東方・・・儚月抄!?
まさか、こんな小さな女の子までもが東方Projectの魔力の虜になっていたとは・・・
きっと、家に帰ると夢中で弾幕の雨をかいくぐっているのでせうww

確実に我々の時代が近づいている、そう思わせる出来事でした。。。

そういえば、今日は神霊廟の委託開始日ですねー。
みんなもうゲットしたかなー?


さて、追記でプログラミング練習の成果でもまとめておきましょう。
例によって、興味なければスルーしてくださいね。
[More・・・]
前回挑戦したMP3プレーヤーのランダム再生機能では、ランダムボタンでシャッフルした配列をタイマーコントロールのイベントハンドラで使うために、一度テキストボックスに配列の要素を移すという不恰好な方法をとっていました。
ランダム再生機能(改良前)

その時はとりあえず良しとしましたが、やはりもっとスマートに仕上げたい。

そこで、新たにとった方法が、配列の要素と同じ数のint型のpublic変数を最初に宣言しておき、
シャッフルした配列の要素をその変数に格納、そこから、タイマーコントロールのところで再び配列に戻して使用するという形です。
こっちの方がどう考えても簡単なのに、あのときはなぜあんな方法を採ってしまったのか・・・
一睡もせず朝をむかえた脳みそじゃまともに働かんということですね。

ソースコードはこんな感じです。例によって10曲のランダム再生の場合です。

//どこからでもアクセスできるpublic変数を宣言
public partial class Form1 : Form
 {
  int m1;
  int m2;
  int m3;
  int m4;
  int m5;
  int m6;
  int m7;
  int m8;
  int m9;
  int m10; //m1~m10:シャッフルした配列要素の格納に使用

  int i; //配列要素へのアクセスに使用
    ・
    ・
    ・

//ランダムボタンを押したときのイベント
private void RandOn_Click(object sender, EventArgs e)
{
 i = -1;
 int[] ary1 = new int[10]{ 0, 1, 2,・・・, 9 }; 

 //配列のシャッフル
 System.Random rng = new System.Random();
 int n = ary1.Length;
 while (n > 1)
 {
  n--;
  int k = rng.Next (n + 1);
  int tmp = ary1[k];
  ary1[k] = ary1[n];
  ary1[n] = tmp;
 }

 //シャッフルした配列要素をint型のpublic変数に格納
  m1 = ary1[0];
  m2 = ary1[1];
     ・  
     ・
     ・
  m10 = ary1[9];

  timer1.Enabled = true; //タイマー機能を使用
                 //Intervalはプロパティで100=0.1秒に設定
 }

//タイマーイベント発生時のイベント
private void timer1_Tick(object sender, EventArgs e)
{
 string[] ary2 = new string[10]{
  "music1.mp3", "music2.mp3", ・・・, "music10.mp3" };
 int[] ary3 = new int[10]{
  151000, 127000, ・・・, 184000}; //各曲の再生時間

 //public変数からシャッフル済み配列を再作成
 int[] ary4 = new int[10]{ m1, m2, ・・・, m10 };

 //あとは前と同じ
 i++;

 if (i != 10)
 {
  int j = ary4[i];
  timer1.Interval = ary3[j];
  axPlayer.URL = @"C:¥MusicFolder¥" + ary2[j];
  axPlayer.Ctlcontrols.play();
 }
 else
 {
  axPlayer.Ctlcontrols.stop();
  timer1.Enabled = false;
 }

こんな感じで、ランダム再生機能もちゃんと搭載できたし、画面もすっきりしました。
ランダム再生機能(改良後)

また、前回はテキストボックスに値を移すためにstring型の配列を使い、タイマーコントロールでint型の配列に変換して使うという面倒なことをしてましたが、今回の方法なら最初からint型の配列を使えばよいので、ソースコードも少しすっきりした気がします。

これにて、ランダム再生機能は完了とするつもりです。

そして現在少しずつですが、DirectXを使用したゲームプログラミングも勉強中です。。。
自分の手でゲームが作れるようになるのは果たしていつのことやら・・・

スポンサーサイト

テーマ : 東方Project - ジャンル : ゲーム

11:21  |  未分類  |  トラックバック:(0)  |  コメント:(12)

Comment

こんにちは

public宣言のの方法が、
分かりましたか。
そうすると、よりスマートになりますよすね。
スッキリしました。

C言語でも、VBと同じで、
public/private宣言だったのですね。
私は、それを知りませんでした。
私も、C言語を勉強しないと・・・。

ありがとうございました。
TageSP |  2011.09.11(日) 11:35 | URL |  [編集]

すごいですなぁ~
俺にはとうていできそうにないWW
後、いつもブログにコメありがとうございます。
こっちはpc禁止くらってるのでたまにしかコメができなくてすみません。

ゆゆ様やっぱかわえぇ~
夜桜 |  2011.09.11(日) 18:08 | URL |  [編集]

こんばんは!

テイルズ面白そうです(`・ω・´)
動画でPVなどなど発売前に見てみたのですが、
絵がとても綺麗でびっくりしました!

みょん可愛いよみょん♪
み「ゆゆ様ぱnつ食べないでw><」

神霊廟の委託開始してました~☆
出遅れたのですが、山ほどレジの後ろの方にありましたょ。。
焦る必要はなかったです(´・ω・`) 急いで汗が^^;
のったん |  2011.09.11(日) 20:43 | URL |  [編集]

そういえばテイルズの新作出たんですよね
自分はシンフォニアしかやったことがないんですが==;l

すげぇ・・・来年から情報電子系の専門学校行くようなヤツが記事の後半読んでも全然分からないwww

ランダム再生機能、か・・・いいですねぇ・・・・。
山猫AK |  2011.09.11(日) 21:38 | URL |  [編集]

次元が違う!!!!
最近 SAも調子悪くて 嫌だよーw

何か楽しいことないかな?
こいし |  2011.09.12(月) 07:06 | URL |  [編集]

>そういえば、今日は神霊廟の委託開始日ですねー。

な、なんだってー!
もう委託始まったんですか・・・あぁ財布の中身を呪いたい・・・って自分の出費だから仕方ないか(;ω;)
とりあえず再来月あたりまで我慢することになりそうです(笑)
それにしても水着ゆゆ様可愛らしい!衝動買いしてしまいそうです。いや、絶対すると思いますw
よさ倉 |  2011.09.12(月) 19:18 | URL |  [編集]

Re: タイトルなし

夜桜さん>

いえいえ、まだまだ大した事も出来ない見習いレベルですので、
これからも精進したいと思います。

夜桜さんこそ、PC禁止という中でコメに来てくださりありがとうございます!

ゆゆ様の水着姿は破壊力抜群です~w

WreN to Kanna |  2011.09.13(火) 20:02 | URL |  [編集]

Re: タイトルなし

のったんさん>

こんばんはー!

テイルズ面白いですよー!
不覚にもはまり過ぎてます・・・
PS3はやっぱりグラフィックがすごいです。

みょん可愛いですみょん♪
ゆ「あなたのぱnつは私のおやつよ~w」
今回もおいしく頂かれてましたw

最近は委託の入荷数も十分そろえてくださるようなのでありがたいですね。
これから戦いの日々が始まるかと思いますが、頑張ってください!
WreN to Kanna |  2011.09.13(火) 20:09 | URL |  [編集]

Re: タイトルなし

TageSPさん>

こんにちはー!

あのときもpublic宣言は少し使っていたのですが、
相手が配列だったもので頭が回りませんでしたorz
配列の中身に注目すればよかったんですね。勉強になりました。

VBもC言語と似ている部分があるんですね。
でも、私にはVBは読むことさえ難しいです・・・
TageSPさんが本気になればきっとC言語もあっさり習得されることでしょう。
頑張ってください!ありがとうございました~!
WreN to Kanna |  2011.09.13(火) 20:16 | URL |  [編集]

Re: タイトルなし

山猫AKさん>

はい!でましたよ!面白いですよー!!
シンフォニアも名作でしたが、その後のシリーズも安定してますね。
さすがです。個人的にはヴェスペリアが好きですね。

来年から情報電子系にいかれるのですか!?
そうすると、これからC言語とかとの戦いが始まるのかもしれませんね。
いつか自作のゲームを作れるくらいになりたい・・・
そしたら、ゆゆ様との恋愛AVGとかも思いのままですよww
不純な動機ですみませんw

MP3プレーヤーなのでやっぱりランダム再生機能は必要かと思いまして。
WreN to Kanna |  2011.09.13(火) 20:23 | URL |  [編集]

Re: タイトルなし

こいしさん>

いえいえ、私から見ても次元の違う方々が多くて・・・
まだまだ精進が必要なのです・・・

そうなのですかー。
楽しいこと・・・私の場合すぐに色々興味を持つもので、
やりたいこともやり切れないくらいで・・・

こいしさんも色々挑戦してみるといいかもしれませんね。
とりあえず、テイルズ新作は楽しいですよー。
気が向いたらお試しあれ。
WreN to Kanna |  2011.09.13(火) 20:29 | URL |  [編集]

Re: タイトルなし

よさ倉さん>

そうなんです。委託は始まってしまったのです。
それなのに・・・な、何て切ないお財布事情でせう・・・

σ(;_q)ヾ(;´д`)元気おだし・・・

衝動買いとかしてさらに切ないことにならない様に、
ここでたっぷりと水着のゆゆ様を堪能していってくださいw

再来月には神霊廟の楽しさをわかちあえることを楽しみにしてます!
WreN to Kanna |  2011.09.13(火) 20:36 | URL |  [編集]

コメント:を投稿する

Url
Comment
Pass  編集・削除に必要
Secret  管理者だけにコメント:を表示  (非公開コメント:投稿可能)
 

▲PageTop

Trackback

この記事のトラックバック URL

→http://wrentokanna.blog.fc2.com/tb.php/67-0ae2056b

この記事にトラックバックする(FC2ブログユーザー)

この記事へのトラックバック:

▲PageTop

 | ホーム | 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。