CoRサンプル集: ナンバータッチ

CoRのテストで作ってみました。
よくある番号順にタッチするやつです。

普通にゲームプレーから来た人は
こちらのページだと、コードが表示されます。
コード付き
プレー:222 (人数:103) クリア:31 評価: 101 (11回)
#CoRの入門とほかの方の参考にしてもらえるように、作ってみました。 # #共通的な部分は、ほぼ光楼(114)さんの講座を参考に作ったものです。。 #そのため、コメントが似たような言い回しになっていることがあります。 # #2017/2/14 by ikosami debug_log 'ゲーム開始' #スタートシーン 最初はここから始まります(始まるというよりも、start_scene startで始めさせている) scene 'start' do #nilは、まだ未設定の状態のような感じです。 #似ているが、nullではだめのようです my_music = nil #タッチした時の効果音 touchSound = nil #背景 backImg = nil img = nil #ナンバーの画像とテキスト numberImg = [] numberText = [] #次にタッチする数字 nextTouchNum = -1 nextTouchNumText = nil #時間 startTime = nil clearTime = 0 #クリックorタッチの状態  mouseDownKeepFlg = false mouseDownFlg = false #プレロード(あらかじめ読み込んでおく)するもの。素材を読み込む。 preload do #'main_musicID'という名前は、id15292ですよと教えておく感じ #上で設定した、my_musicとは別物 music 'main_musicID', id: 15292 #'touchSoundID' sound 'touchSoundID', id: 21467 #画像の読み込み image 'back_00', id: 216054 image 'numberButton', id: 284549 end #素材の読み込みが終わると実行される #シーンの初期化処理みたいなもの? #ちなみに、このadd_musicなどの文字の部分 #間違えてもエラーが起きないので危ないです。 create do my_music = add_music('main_musicID') my_music.play touchSound = add_sound('touchSoundID') #背景スプライト(画像)を生成 backImg = put_sprite 'back' do #場所 position 0, 0 #アニメーションコマ数 アニメーションなしなので0 frame_index 0 end # テキストの配置 nextTouchNumText = put_text 'basic-text' do position 200, -2 text "画面を押すと始まります。" end num = [] #20回繰り返して数字生成 20.times do |i| num.push(i) end #数字の入れ替え 20.times do |i| random = rand(20) w = num[i] num[i] = num[random] num[random] = w end #20回繰り返す 20.times do |i| #ボタン同士がかぶらないように、その番号の範囲内で生成 posX = rand(110)+160*(num[i]%5) #.floorは切り捨て posY = rand(50)+100*(num[i]/5).floor+30 #押すナンバーを生成 img = put_sprite 'numberButton' do #場所 position posX, posY #アニメーションコマ数 アニメーションなしなので0 frame_index 0 end #あとで消すために呼ぶ用配列に入れておく numberImg.push(img) end end#create終了 #背景画像設定 sprite 'back' do image 'back_00' origin :left_top end #ボタン画像設定 sprite 'numberButton' do image 'numberButton' origin :left_top end #文字 text 'button-text' do origin :center font_size 35 color '#000000' end #文字 text 'basic-text' do origin :left_top font_size 40 color '#000000' end ########################################### #メインループ update do #クリックorタッチの状態取得 #押された瞬間というのがなかったため、 #クリックorタッチ時に一度だけ動くmouseDownFlg if pointer.down? if !mouseDownKeepFlg mouseDownFlg = true else mouseDownFlg = false end mouseDownKeepFlg = true else mouseDownKeepFlg = false mouseDownFlg = false end #ゲーム開始 if nextTouchNum == -1 && mouseDownFlg nextTouchNum = 0 #20回繰り返す 20.times do |i| # テキストの配置 text_sprite = put_text 'button-text' do #ボタンの位置を取得し、 #中央揃えで表示するためボタンの半分の大きさで+25することで #ボタンの中央の位置にする position numberImg[i].position[0]+25, numberImg[i].position[1]+25 #文字設定 text (i+1).to_s end #あとで消すために呼ぶ用配列に入れておく numberText.push(text_sprite) end #時間計測開始 startTime=Time.now end #次の数字と時間表示 if nextTouchNum != -1 && nextTouchNum != 20 nextTouchNumText.text (nextTouchNum+1).to_s+"を押してください"+(Time.now-startTime).to_s end #最後のボタンを押していて、画面タッチでクリア if mouseDownFlg && nextTouchNum == 20 game_clear end #ボタンタッチ判定を20回繰り返す 20.times do |i| #始まっていなかったら中断 if nextTouchNum == -1 break end #消えている分を調べるとエラーが起こるので、とばす if i < nextTouchNum i = nextTouchNum end #配列の範囲を超えてしまっていたら中断 if nextTouchNum >= 20 break end #スプライトがタッチされたかどうか if numberImg[i].tap_down? #タッチされたスプライトが、いま押すボタンかどうか if i == nextTouchNum #効果音再生 touchSound.play #次のボタンへ nextTouchNum += 1 #最後のボタンを押していた場合 if nextTouchNum == 20 #クリアタイム表示 clearTime = Time.now-startTime # アクティビティフィードを流す result = send_activity_feed(clearTime.to_s+"秒でした!"); # 結果をデバッグログに出力する debug_log(result ? "フィードを流した" : "フィードを流さなかった") nextTouchNumText.text "ゲームクリア\n\n\n"+clearTime.to_s+"秒\n\n\n画面を押すと終了します" end #ボタンと文字を消す numberImg[i].destroy numberImg[i]=nil numberText[i].destroy numberText[i]=nil end end end end#update終了 ########################################### #描画 render do end end #スタートシーンを開始する start_scene 'start'
コード一覧
  • start.rb
投稿者:Material 7186 1 mini ikosami 対象Lv1 公開日:2017年02月14日 14:04:45
プレー内容を公開する

違反を通報する

コメントする

コメントするには、ログインする必要があります。

コメント一覧

    1616    mini @nanao05627(投稿日:2017/07/27 12:13, 履歴)
マウスが反応しないのですが何故でしょう。画面を押しても始まりません。。。
            mini mosmoss(投稿日:2017/07/30 11:08, 履歴)
私も同じです
他のCoR作品は大丈夫のようです
Material 7186 1 mini ikosami(投稿日:2017/02/26 11:07, 履歴)
アクティビティフィードを流せるようになったので
更新しました。
User icon mini 退会したユーザー(投稿日:2017/02/18 20:40, 履歴)
ありがとうございます。
User icon mini 退会したユーザー(投稿日:2017/02/17 20:34, 履歴)
まったく初めの所から移動しないんですけど、なぜですか。
Material 6858 mini akasata(投稿日:2017/02/18 18:34, 履歴)
IEだとそうなる場合があるようです。もし、IEをお使いの場合は、CoRはIEでは不安定なので、ブラウザはChromeやFirefoxなどをお使いください。
User icon mini 退会したユーザー(投稿日:2017/02/16 17:05, 履歴)
よかったですね
User icon mini 退会したユーザー(投稿日:2017/02/15 18:03, 履歴)
音設定をかくにんしてみれば
Material 7186 1 mini ikosami(投稿日:2017/02/15 22:49, 履歴)
出るようになりました。

コードをなにか書き間違えているのかとばかり思っていました・・・
まさかパソコン側の問題だったとは(--;)

ありがとうございます。
プレー履歴
  • Material 319617 2 mini てるてる: 18.109秒でした!
    (04/11 18:07)
  • Material 320170 1 mini MAYUGTQR: 23.64秒でした!
    (04/04 15:06)
  • Icon mini cdv30200: 8.091秒でした!
    (03/16 00:00)
  • Icon mini cdv30200: 12.078秒でした!
    (03/15 23:59)
  • Material 303531 2 mini mochi3kan: 14.888秒でした!
    (03/09 15:07)
  • Material 263400 3 mini jeep: 8.558秒でした!
    (02/26 15:26)
  • Material 263400 3 mini jeep: 9.9秒でした!
    (02/26 15:16)
  • Material 6858 mini akasata: 15.28秒でした!
    (02/26 14:12)
  •             mini mosmoss: 21.608秒でした!
    (02/26 12:04)
  •             mini mosmoss: 26.763秒でした!
    (02/26 12:04)

全てのプレー履歴を見る

新着レビュー

レビューはまだ投稿されていません。 作品の感想を作者に伝えるためにレビューを投稿してみませんか?

全てのレビュー

フォロー/シェア

ブログ/Wiki/掲示板で共有する

Rmake内(ブログ/Wiki/掲示板)に貼り付ける場合は以下のタグを利用してください。

リンク

プレイヤー

外部ホームページに貼り付ける

外部ホームページに貼り付ける場合は以下のタグを利用してください。