• 締切済み

このようなゲームで、的の範囲などを調整できるもの

プレイしている参考動画です https://youtu.be/iY1MQuMsOaI Shootというゲームです。 https://www.albinoblacksheep.com/flash/shoot マウスの練習に使っています。 もっと狭い範囲だけにランダムに出てくれるとありがたいのですが。 例えばマウスカーソル1個分だけ横にズレる、を何回も、というような。 エクセルのマクロとか使ったものでも良いのですが。 よろしくお願いします。

みんなの回答

  • kon555
  • ベストアンサー率51% (1842/3559)
回答No.6

>>任意の間隔でオートクリック 自分で言っといてなんですが、セルのダブルクリックで編集モードに入りますね多分。 セルロックで選択不可にしたら対処可能かな。

  • kon555
  • ベストアンサー率51% (1842/3559)
回答No.5

>>カーソルを合わせるだけで反応するように 処理的には出来なくはないのですが、ちょっと反応が重くなったりしそうです。 任意の間隔でオートクリックしてくれるフリーソフトなどを使ってみて下さい。 https://www.vector.co.jp/soft/win95/util/se420838.html 適当な間隔でクリックさればご希望のような形になるかと。 ちなみに今回の物はvbaのコードとしてはそんなに難しくないので、多少勉強すれば自由にカスタムできると思います。 VBA関連ならこのOKWAVEで質問してもいいですし、下記のような入門サイトも多数ありますので、興味があればどうぞ。 http://officetanaka.net/excel/vba/

  • kon555
  • ベストアンサー率51% (1842/3559)
回答No.4

興が乗ったのでちょっとスコア的な物も足して作ってみました。 図形を大小2つ挿入して、それぞれの名前を「的大」「的小」にして、下記のマクロをどちらにも登録して下さい。 セルのB2が横方向、B3が縦方向の移動範囲指定、セルのB4を規定回数の指定枠に使ってますので、ご自由に指定して下さい。 規定回数クリックすると終わりになって、B8に規定回数の所要秒が算出されます。 数字関係をB列にしてるので、A列に項目名でも任意で入れとくと使いやすいかと。 Sub 的移動2() Dim SH As Shape Dim i As Long, s As Long, c As Long, α As Long, β As Long, SHW As Long, SHH As Long Dim R As Range Dim Ti1 As Double, Ti2 As Double i = Range("B2").Value '移動範囲の指定 縦方向 s = Range("B3").Value '移動範囲の指定 横方向 c = Range("B4").Value '規定回数の設定 Set R = Range("G30") '的の基点位置指定 Range("B7") = Range("B7").Value + 1 If Range("B7") = 1 Then  Ti1 = Timer  Range("B8") = Ti1  Range("B5") = 0  Range("B6") = 0 End If If Range("B7") >= Range("B4") Then  MsgBox "終わり"  Range("B7") = 0  Ti1 = Range("B8")  Ti2 = Timer  Range("B8") = Ti2 - Ti1 End If If Application.Caller = "的大" Then Range("B5") = Range("B5").Value + 1 If Application.Caller = "的小" Then Range("B6") = Range("B6").Value + 1 For Each SH In ActiveSheet.Shapes  If SH.Name = "的大" Then   α = Int(i * Rnd + 1)   β = Int(s * Rnd + 1)   SH.Top = R.Offset(α, β).Top   SH.Left = R.Offset(α, β).Left   SHH = SH.Height / 2 + SH.Top   SHW = SH.Width / 2 + SH.Left  End If Next SH For Each SH In ActiveSheet.Shapes  If SH.Name = "的小" Then   SH.Top = SHH - SH.Height / 2   SH.Left = SHW - SH.Width / 2  End If Next SH End Sub

dov
質問者

お礼

ありがとうございます。 素晴らしい! ちょっと試したら、もうすでに右手が鋭敏になってきました。 活用させて頂きます! 実はVBAはドシロウトでして、自分で分かればいじったりしてみたいのですが、クリックしなくてもカーソルを合わせるだけで反応するように、なんて出来たりするんでしょうか?

  • i-q
  • ベストアンサー率28% (982/3450)
回答No.3
dov
質問者

お礼

ありがとうございます!

  • kon555
  • ベストアンサー率51% (1842/3559)
回答No.2

雑に組んでみたら思ったよりそれっぽく動いたのでペタリ。 適当な新しいシートに図形を挿入して、その図形に以下のマクロを登録して下さい。 クリックする度に図形が移動します。 範囲はセルの位置準拠なので、行・列の幅と高さを細かくすれば細かく移動します。コメントも入れといたので、移動範囲や起点位置を変えたければご自由に。縦横分けましたので、横方向エイムを練習したいなどの意図に合わせて変えてね。 もうちょい詰めれば的の中心近くでスコアがどうこうとか、時間区切るとか、逆に規定回数までの時間カウントとか出来ると思いますが、その辺りは適当に自分でやってみて下さい。 Sub 的移動() Dim i As Long, S As Long, α As Long, β As Long Dim R As Range i = 2 '移動範囲の指定 縦方向 S = 2 '移動範囲の指定 横方向 Set R = Range("C10") '的の基点位置指定 For Each Sh In ActiveSheet.Shapes   α = Int(i * Rnd + 1)   β = Int(S * Rnd + 1)   Sh.Top = R.Offset(α, β).Top   Sh.Left = R.Offset(α, β).Left Next Sh End Sub

dov
質問者

お礼

ありがとうございます!

  • kon555
  • ベストアンサー率51% (1842/3559)
回答No.1

雑なエクセルマクロでよければ組めそうな気もしますが。 とりあえずこの辺りからよさそうなヤツを探してみては? http://fpsdraven.hateblo.jp/entry/2014/09/02/081231

dov
質問者

お礼

ありがとうございます!

関連するQ&A