(解決済み)ピクチャをランダムにゆっくり移動させたいです。

fullown
記事: 6
登録日時: 2016年12月04日(日) 00:09

(解決済み)ピクチャをランダムにゆっくり移動させたいです。

投稿記事by fullown » 2018年10月12日(金) 01:58

スマホ向けのゲームを製作中です。
どうしてもわからなかったので教えてください。

昔の動物育成ゲームなどでよくあった感じ(今の放置ゲーでもよくある)で、キャラが画面内でのみゆっくりと
ランダムにあちこち移動するような演出を考えています。(歩行グラではなくピクチャで)
ピクチャの移動でX軸とY軸を変数でランダムに代入し、ループ処理してみたのですが、時々ものすごい速さで
移動したりしてイメージがちょっと違いました。

どのように設定すればよいでしょうか。
ご教示頂けますと幸いです。
最後に編集したユーザー fullown on 2018年10月13日(土) 23:17 [ 編集 1 回目 ]

アバター
にゃたま
記事: 520
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国
連絡を取る:

Re: ピクチャをランダムにゆっくり移動させたいです。

投稿記事by にゃたま » 2018年10月12日(金) 17:02

fullown様

こんにちは。
ピクチャではない通常のホコグラがランダムに動くものしか知らないので見当違いかもしれません。
(「今の放置ゲー」というのがよくわからない&そもそも動物育成というのを見たことがない)
キャラが画面内でゆっくりランダムに移動するというイメージが通常のホコグラのイメージなのですが…

これは一つの提案としてですが、要望に叶うものではないかもしれません。
歩行時通常3コマのアニメーションですがそれ以上に増やすプラグインです。
スマホ対応かわからないですが私が以前回答したこちらのExtraMovementFrameという
プラグインなどどうでしょうか?
viewtopic.php?f=23&t=6763&p=24590#p24590
使い方は私が翻訳した文章を読めばだいたいわかるかと思います。

ピクチャを使用ということですので…
全くの見当違いでしたらお力になれず申し訳ございません。
アバター
WTR
記事: 177
登録日時: 2015年12月22日(火) 19:14

Re: ピクチャをランダムにゆっくり移動させたいです。

投稿記事by WTR » 2018年10月12日(金) 17:56

移動先のXYがランダムに決まるのに、移動にかかる時間(フレーム数)が固定だからマズイんじゃないでしょうか。
スクリプトでピクチャ移動させれば移動時間も変数にできるのでできるかもしれません。

変数1 : 現在のピクチャ X
変数2 : 現在のピクチャ Y
変数3 : 移動先のピクチャ X
変数4 : 移動先のピクチャ Y
変数5 : 移動時間

とかいう感じで変数を用意しておいて 変数5 を 変数1 ~ 4の関数にしたらできそうな気がします。
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
アバター
虚構の城跡
記事: 364
登録日時: 2016年9月23日(金) 16:58

Re: ピクチャをランダムにゆっくり移動させたいです。

投稿記事by 虚構の城跡 » 2018年10月12日(金) 19:00

歩行スプライトはデフォルトでは48×48ですが、歩行スプライトのサイズ限界はどこまでかはわかりませんけど、知っている限りで使用している歩行スプライトはかなり大きめの風車です。

そのシーンがこちら
img02.jpg
img02.jpg (58.28 KiB) 閲覧数: 167 回

横一列の回転する風車の歩行スプライトですが、528×528になってます。

なので、使用したいピクチャー画像を4×3。又はにゃたま様の勧めるプラグインでコマ数で増やすというやり方でも問題ないと思います。
アバター
WTR
記事: 177
登録日時: 2015年12月22日(火) 19:14

Re: ピクチャをランダムにゆっくり移動させたいです。

投稿記事by WTR » 2018年10月12日(金) 20:32

歩行グラの話がどう繋がってるのか理解が追い付いてないんですが
あらかじめ表示しておいたピクチャID 1 をランダムな位置に移動させるイベントを作ってみました。
まるごとイベントコマンドのスクリプトに貼り付けます。
実行するたびにランダムな位置に移動するはず。

こういうことじゃないかなぁ

コード: 全て選択

var id    = 1;
var cur_x = $gameScreen.picture(id)._x;
var cur_y = $gameScreen.picture(id)._y;
var dst_x = Math.floor(Math.random() * 816);
var dst_y = Math.floor(Math.random() * 624);
var t     = Math.floor(Math.sqrt(Math.pow(dst_x - cur_x, 2) + Math.pow(dst_y - cur_y, 2)));

$gameScreen.movePicture(id, 0, dst_x, dst_y, 100, 100, 255, 0, t);
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
fullown
記事: 6
登録日時: 2016年12月04日(日) 00:09

Re: ピクチャをランダムにゆっくり移動させたいです。

投稿記事by fullown » 2018年10月13日(土) 21:15

WTR様

ありがとうございます!
頂いたスクリプトでバッチリ理想の表現が出来ました!
本当にありがとうございます!
これで完成にぐっと近づきました

にゃたま様、虚構の城跡様
貴重な情報提供ありがとうございました!
当方の質問内容がわかりにくくて申し訳ありません><;
ゲーム作る過程でもし使えそうであれば実践させていただこうと思います
ありがとうございました
アバター
WTR
記事: 177
登録日時: 2015年12月22日(火) 19:14

Re: (解決済み)ピクチャをランダムにゆっくり移動させたいです。

投稿記事by WTR » 2018年10月14日(日) 00:45

すみません、微妙にミスってました

816, 624 が固定値で入ってますが、左上が原点なので
デフォルト解像度でも画面外にはみ出るケースが出てしまいますね。
ピクチャのサイズに応じて値を調節しないとダメみたいです。
もちろん、ゲーム解像度を変更する場合も。
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/

“MV:質問” へ戻る