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

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

スポンサーサイト

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

2011.09.02 (Fri)

たまには。。。

こんばんはー。

あまりしょーもない記事ばっか書いてると、私の脳みそがすでにゆゆ様においしく頂かれてしまっていることがバレてしまうので、たまには真面目な?記事も書いてみようと思います。

最近更新頻度が落ちてますが、そこには理由があったのです。
それは、ネタがな・・・じゃなかった こんなことをこつこつとやっていたのです。
無題00

Visual C#を使ったプログラミングの練習です。

3ヶ月くらい前にかじり始め、「入門書読むだけだとよく分かんないし何か作ってみるか・・・」と作り始めたのですが、途中で他の事に興味持ったりしてほっぽってたのを、またいじり始めた次第です。

いったい何をつくっていたのか・・・
まず起動するとこんな画面が立ち上がります。
無題01

おお!背景にはゆゆ様が、(。・・。)ポッ
右には黒い四角?ゆゆさまがよく見えないじゃないか
他にはボタンが一杯ついてますね。下に並んだボタンには東方Projectの作品名が書かれています。 試しに押してみましょう。

紅魔郷のボタンをぽちっとな。
無題02

お?真っ黒だった四角の中に紅魔館キャラの絵が!そして、紅魔郷のタイトルテーマ「赤より紅い夢」が流れ始めましたよ。
そして左のボタンには、紅魔郷で使われている曲名が順番に表示されましたね。
こ、これはもしかして・・・!?

そう、実は、私専用の東方原曲用MP3プレイヤーを作っていたのです!
お気に入りの画像と一緒に東方原曲を楽しむ・・・至福ですね~。

このままではタイトルテーマがエンドレスに流れるだけですので、
何か曲を選択してみましょう。 よし、これだ(ポチッ)。
無題03

画像がチルノに変わって、「おてんば恋娘」が流れ始めました~!

では、妖々夢のボタンを押すと・・・?
無題04

同じ様に画像が妖々夢キャラに切り替わり、タイトルテーマが流れます~。

これは1面ボスレティの「クリスタライズシルバー」を選んだところ。
無題05

そして曲が終わると、自動的に次の2面道中曲、「遠野幻想物語」が流れ出します。
無題06

このように、自動で曲が順々に切り替わり、最後まで再生するとまた1面道中曲に戻って無限ループする様にしてます。大した機能ではないのに、これが結構苦労したんですよね~。未熟なもので・・・

今のところまだ未完成で機能してないボタンもついてます。
1曲リピートの機能とかもつけなければ・・・

本当はランダム再生機能とかもつけたいのですが、どういうソースコードを書けばよいのかわからんのです・・・

配列と乱数を使えばランダム再生はできるだろうけど、これだと同じ曲が連続で再生される場合もあるだろうし・・・

一度再生した曲はランダム再生のリストから外したいのですが、うまい方法が思いつかないのです・・・。

if文と配列をいくつも使って力技でやればできると思うけど、もっとスマートな方法はないものだろうか・・・。

まあ、色々試行錯誤するのも上達への近道だと信じて地道にがんばって行くとします。
そして、これが完成したら簡単な2Dゲームのプログラミングにでも挑戦しようかと思っている今日この頃なのでした。

スポンサーサイト

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

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

Comment

こんにちは

出ましたね~C言語。
私は、何度となく、挫折しています。
勉強されているとは、偉いです。

>一度再生した曲はランダム再生のリストから外したいのですが、うまい方法が思いつかないのです・・・。

そうですね。
私なら、配列の中身をシャッフルして
配列を1から再生させる。と、いう方法を取ります。

しかし、C言語では、書けないので、
この場では、記述できません。すみません。

VisualBasicなら、こんな風にします。

Dim fff(99) As String '100曲あるとして
Dim i As Integer, j As Integer, k As Long
Dim karioki As String '仮置き場

For i = 0 To 99 'まずは、一度順当に並べる。
fff(i) = "Test" & Format(CStr(i), "00") & ".mp3"
Next i

For k = 0 To 10000 '配列を10000回シャッフルする。
Randomize
i = Int(Rnd * 100)
j = Int(Rnd * 100)

'安全装置
If i > 99 Then i = 99
If j > 99 Then j = 99

If i <> j Then '異なる数の場合→シャッフルする。
karioki = fff(j)
fff(j) = fff(i)
fff(i) = karioki
End If
Next k


MsgBox fff(50)

以上、長々と、
失礼しました。

ありがとうございました。
TageSP |  2011.09.03(土) 12:10 | URL |  [編集]

うんもう 怖い
こいし |  2011.09.03(土) 12:58 | URL |  [編集]

うぎゃぅ
もはや次元が違いすぎるw

でもいつかはプログラミングとかできるようにしたいです
ジョバンニ |  2011.09.03(土) 19:05 | URL |  [編集]

Re: タイトルなし

TageSPさん>

おおっ!配列の中身をシャッフルですか!?
そんな方法があったとは!その発想はなかったです。
さすがTageSPさん、頼りになります~!!

そしてVBであっさりとコードを書いてしまわれるとは、すごすぎる!!
私も早くその高みに登りたい・・・

しかし・・・せっかく書いてくださったのに、VBが分からない私・・・
これはもう、腹切ってお詫びせねば!

 セッシャ“(*T_T)_4 切腹申し上げ候!
         \_(・◇・*)"カイシャクつかまつるぅ

でも、"配列"と"シャッフル"のキーワードで検索したら、C#用のコードが見つかりましたー!
これならいけそうです!TageSPさん、本当にありがとうございます!!
早速試してみます~!
WreN to Kanna |  2011.09.03(土) 22:59 | URL |  [編集]

Re: タイトルなし

こいしさん>

ほら 怖くない。怖くない。ほらね、怖くない。

ねっ?  by 風の谷のナ(ry
WreN to Kanna |  2011.09.03(土) 23:16 | URL |  [編集]

Re: タイトルなし

ジョバンニさん>

そんなことないですよ~!

入門書1冊あれば届く程度の次元です。

よし、一緒にプログラミングの勉強をするのだ!
WreN to Kanna |  2011.09.03(土) 23:19 | URL |  [編集]

コメント:を投稿する

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

▲PageTop

Trackback

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

→http://wrentokanna.blog.fc2.com/tb.php/63-0cb1af80

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

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

▲PageTop

 | ホーム | 

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