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
プレー内容を公開する
コメントする
コメントするには、ログインする必要があります。
コメント一覧
プレー履歴
-
てるてる:
18.109秒でした!
(04/11 18:07)
-
MAYUGTQR:
23.64秒でした!
(04/04 15:06)
-
cdv30200:
8.091秒でした!
(03/16 00:00)
-
cdv30200:
12.078秒でした!
(03/15 23:59)
-
mochi3kan:
14.888秒でした!
(03/09 15:07)
-
Erillas:
8.558秒でした!
(02/26 15:26)
-
Erillas:
9.9秒でした!
(02/26 15:16)
-
akasata:
15.28秒でした!
(02/26 14:12)
-
mosmoss:
21.608秒でした!
(02/26 12:04)
-
mosmoss:
26.763秒でした!
(02/26 12:04)
新着レビュー
レビューはまだ投稿されていません。 作品の感想を作者に伝えるためにレビューを投稿してみませんか?
フォロー/シェア
他のCoR作品は大丈夫のようです