プログラム初心者です(VBAしかかまったことありません)
タイピングゲームなるものを作ろうと思っていますが以下の処理の表現(書き方)が分かりません。
リファレンスなどいろいろなサイトを見ましたがうまくいかないことが多かったので...
以下、温かい目で読んでください。
メニュー画面で難易度を選択する(SPACEでスタート)
ゲーム開始(決まった問題数をこなすと終了、時間:カウントアップ)
リザルト画面(かかった時間を出力、SPACEでメニューへ戻る)
くらいできればいいと思っています。
全くわからないので全部教えてもらいたいくらいなのですが部分的に質問させてくださいm(_ _)m
・あらかじめ配列に格納した日本語(かな)をランダムで表示する
(アルファベットの表示はできたのですが...)
ランダムで整数を取得するのがうまくいきませんでした。
・キーボードから入力する
キーボードで打ったものを取得し、問題と比較するのに使います
・Window.loop do以前にfont = Font.new(100)と宣言したが、違うフォントサイズも使いたい
・画面の移り変わりの処理
SPACEでゲーム画面へ→条件を満たすまでその画面をキープ
「別に転がってるタイピングゲーム使えばいいいじゃん」
などの回答はご遠慮ください。
注文が多いようですが、具体的な文法を提示していただけると助かります。
ご協力お願いします
No.1ベストアンサー
- 回答日時:
どうも。
DXRuby使いです。大体2~3年使っています。VBAも学んでいるので、なんとなくですが状況は分かります。
4点のご質問に順にお答えします。
・予め配列に格納した日本語をランダムで表示する
Rubyは配列も高機能なので、実は「ランダムに1つ取り出す」というメソッドが有ります。`sample`メソッドです。
------------------------------
ary = ["あ", "い", "う"] #こんな感じの配列から
str = ary.sample #これだけでランダムに要素を取り出せる
p str
p ary.index(str) #勿論、あとからインデックスを取得できる
------------------------------
文字列の描画は大丈夫ですよね。
・キーボードから入力する
どうやら、平仮名を受け取る必要があるようですね。
Input.keyPush?などでキーボードの押下を判定すれば理論上は可能です。難しいとは思いますが…。
もう一つだけ方法が有ります。
「DXRuby Wiki」の「ファイル置き場」(http://dxruby.sourceforge.jp/cgi-bin/hiki.cgi?%A …にDXRubyの開発版(1.5.17)が有ります(Ruby2.1用のみです)。
この開発版では、Input::IMEというモジュールが有り、IMEからの文字入力を扱うことが可能となっています。添付されているreadme.txtに説明が有ります。
しかし、こちらも簡単ではないようです。
##############################
こちらは「方法」とは少し違いますが、Input::IMEを使ったコードの例としてDXRubyWSというのが有ります。
https://github.com/mirichi/dxrubyws
DXRubyの作者さんが作っている物です。
右側にある「Download ZIP」でzipファイルとしてダウンロードし、好きな場所に展開した後、sample/minsample.rbを起動すると、テキストボックスが有るはずです。
##############################
つまりは、全角文字の入力は簡単ではありません。しかし不可能でもありませんので、挑戦する価値はあると思います。
詳しい事で質問したければ、別に質問を投稿した方が良いと思われます。
・Window.loop以前に宣言しなかったフォントを使用したい
様々な解決方法が有りますが、ここではハッシュ(連想配列;Hash)を用います。
配列が連番をキー(index)に情報を格納するのに対し、ハッシュはキーの制限が有りません。
こんな感じです。
------------------------------
hash = {} #中括弧を使う
hash[5] = "五" #キーは連番じゃなくていい
hash["8"] = "八" #文字でもいい
hash2 = {6 => "六", "9" => "九"} #こう定義もできる
------------------------------
ハッシュはデフォルト値をブロックで設定できます。
------------------------------
h = Hash.new{|hash, key|
#登録していないキーが呼び出されると、
#第一引数(hash)に自分自身を、
#第二引数(key)に呼び出されたキーを渡して実行される
#例えばこうすると、キーを文字列に変換した値が自動で登録される。
hash[key] = key.to_s
}
------------------------------
これを応用すると、
------------------------------
MyFont = Hash.new{|hash, key|
#キーをフォントサイズとするFontを自動で作る
hash[key] = Font.new(key)
}
MyFont[100] #自動でFont.new(100)をしてくれる
MyFont[100] #2回目以降は同じものをくれる
MyFont[50] #別のサイズも自動で作れる
------------------------------
MyFontという定数に、サイズを渡すとFontを返してくれるハッシュを代入できました。
・画面の移り変わりの処理
Window.loopの前に、画面の管理用の変数を作っておきます。
------------------------------
flag = false
Window.loop do
if flag
#ゲーム画面の処理
else
flag = Input.keyPush?(K_SPACE) #SPACEが押されたらflagがtrueになる
end
end
------------------------------
以上です。いかがでしょうか?
ご丁寧な説明、アドバイス感謝いたします。
本当に全くわからない状態だったので助かりました。
アドバイスを生かして何とか完成を目指そうと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- iOS これは日本語入力の大発明ですか? 7 2022/12/21 07:17
- モニター・ディスプレイ 長文です。デスクトップPCのHDMI入力機能について 4 2022/09/20 17:58
- Android(アンドロイド) スマホの日本語入力の選択肢を変えるには 4 2023/07/29 19:07
- テレビ プレステ5が映らなくりました 1 2023/07/13 11:09
- WordPress(ワードプレス) WordpressでYouTubeの埋め込みができない。 1 2022/10/26 01:08
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Windows 10 Windows11タスクバーやエクスプローラー、スタートメニュー 動画全画面時にカーソルが見えない 1 2022/04/08 00:03
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
イザナギ零のギミック予想キャ...
-
生理でも会ってくれるセフレっ...
-
スイッチでマインクラフトをプ...
-
ポケモンのなつき度チェック(...
-
なぜ世間は「ニートは国民の三...
-
手持ちのポケモンがゆうことを...
-
動画見ながらゲーム等するとPC...
-
メモリーカード(PS・PS2...
-
Windows10で最近パソコンを立ち...
-
ネカフェのPCでSteamをダウンロ...
-
PCゲームのFPSが突然下がります。
-
自分が持っているDSのソフトのR...
-
パソコンのバツ印が出てこなく...
-
Ryzen 7 5700Uではゲームは出来...
-
ネット回線の相性ってあるんで...
-
PCゲームのプレイ中に突然デス...
-
男性は好きでもない人と一緒に...
-
STEAMで画面が全体表示されない
-
PCにps4のコントローラーを接続...
-
パズドラの動作が重いです
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
生理でも会ってくれるセフレっ...
-
パソコンのバツ印が出てこなく...
-
動画見ながらゲーム等するとPC...
-
スイッチでマインクラフトをプ...
-
デスクトップで謎の半透明なウ...
-
ポケモンのなつき度チェック(...
-
なぜ世間は「ニートは国民の三...
-
手持ちのポケモンがゆうことを...
-
男性は好きでもない人と一緒に...
-
スペックは足りてるのにゲーム...
-
Windows10で最近パソコンを立ち...
-
PCゲームのFPSが突然下がります。
-
自分が持っているDSのソフトのR...
-
ネカフェのPCでSteamをダウンロ...
-
パズドラの動作が重いです
-
PCゲームのプレイ中に突然デス...
-
大学内でオンラインゲームをや...
-
ps5デジタルエディションについ...
-
海外版ツムツムについて
-
Windows10の統合版マインクラフ...
おすすめ情報