■
どうも、lumです。
GameMakeStudioのゲームどこで公開しようかと考えてます。
東京グールを一気観してて、今 re の20話くらいです。
正直最初のころのヘタレクソザコ金木くんが一番好きでした。髪白くなって俺最強モードに入るとなんかキャラ変わって陽キャっぽくなるのが最初苦手でした。でも最強名の最初だけで実際あんまり強くないので笑えますね。全人類がグールになったら人類絶滅か、全員赫者ですねさすが食物連鎖の頂点であるグール。
あとひなみちゃんの話のときはめちゃめちゃ泣けました。ほんとに悲しかったですよあれは。
アニメっていいですよね
僕が最初にハマったアニメは鋼の錬金術師だった気がします。今でも漫画とアニメを一年に一回読み返します今年で6週目かな確か。鋼の錬金術師の素晴らしいところはだらだら続けないところです。伏線も完璧に回収し、それでいて期待を裏切らない結末。ただ一つ気になっているのは。自分の錬金術師としての力を捧げ、人を生き返らせるのが等価交換なのかってところですね。旧アニメではなく新アニメで考えてるのでシャンバラルートではないです。
錬金術の源はアメストリス全土に流れ染みている賢者の石でしたってオチ結構胸糞悪いのにさらっと受け入れられるのって謎でした。
書く事無くなりました。
最近小説家になろうっていうサイトを知って少してみたんですがみんな長編小説を書いていたのでびっくりしました。すごいですね彼ら。
GameMakerStudio2の解説少し入れますね。
GameMakerStudioはオブジェクト指向って言ってオブジェクトごとに動作を決められるんですよ。
例えば obj_player を作って適当なスプライト(画像のこと)を設定しておきます。そしてRoomと呼ばれる場所に配置すれば生成完了です。
obj_playerにはCreate、Step、Destroy、Drawなど他にもいろいろありますがそれを個別に設定できます。
C言語的に言うとobj_playerはクラス。Createはコンストラクタ、Destroyはデストラクタ。後はメンバ変数みたいなものです。もちろんこれは確定的にその動作をするわけではないので、StepにDrawを書いても別に問題はないですし、StepにDestroyの条件を書いてInstance_destroyを書いても問題ないですが、Createだけは特別なのでちょっとめんどくさいです。
ではこのobj_playerをうごかしましょう。
Stepに
key_left = keyboard_check(ord("A"));
key_right = keyboard_check(ord("D"));
key_up = keyboard_check(ord("S"));
key_dowm = keyboard_check(ord("W"));
var moveH = key_right - key_left;
hsp = moveH * wspd;
var moveV = key_up - key_dowm
vsp = moveV * wspd;
x = x + hsp;
y = y + vsp;
を入れましょう。これで動きます。
解説していきましょう。
key_left,right,up,downは変数です。Createに宣言してあります。
WASDを入力したという事実(1の代入)を行ってます。よくコンピューターは0と1と言われますがそれを思い出してください。
次に行きましょう
var moveH, var moveV は値の判別をしています。
AとD、WとSを同時に押すと 1-1 でmoveHやmoveVには0が入ります。
どちらかを押すと1,-1のどちらかが入るのでその値を調べてます。その後のhsp(水平移動速度)とvsp(垂直移動速度)、Wspdもすでに宣言してある変数です。
仮にmoveHに1 wspdに5が入っているとすると、hspには5が入ります。
xは毎フレームごとに +5されていきます。
moveHに1が入る状況を考えると、キーボードのDを押している状態です。
すべてを一緒にまとめましょう。
移動用のキーを押している場合、毎フレームごとにwspdに入っている値をxもしくはyに足していくことになります。
これを応用すれば
左右でプレイヤーのスプライトを変更できます。やってみましょう。
if ( moveH < 0)
{
sprite_index = 表示させたいスプライトの名前 ;
}
です。これでAを押している場合(xが-方向に動いている状態)のときスプライトが変わります。
GameMakerStudioに関する情報で日本語のものは少ないので、やくにたつと嬉しいです。
では。