GameMaker 日本語掲示板

Instance_create_ layerについて / 1

3 コメント
views
16 フォロー
1
生高橋 2024/03/09 (土) 22:25:09

BとCのコードを変更をしてみました。
これで動作すると思われます。

objectB

//create
a = noone;//aのインスタンスを保持する変数
visible=false

//step
x=a.x//cで受け取ったaの座標と同期
y=a.y

objectC

//create
alarm[0]=1
a=0
//alarm[0]
var a= instance_create_ layer(x,y,layer,objectA)
var b= instance_create_ layer(x,y,layer,objectB)

b.a = a;//bにaのインスタンスを渡す

a.visible=true
b.visible=true

a++
if(a!=5){
alarm[0]=1
}

【細かい説明】
インスタンスとは生成されたオブジェクトのコピーことを言います(たぶん)
以下のソースコードだと、固有のインスタンスではなくおそらく最初に生成されたオブジェクトAの座標を取得することになります。

x=objectA.x 
y=objectA.y

objectAが一つしかない場合はこれで問題ないですが複数ある場合はどのobjectAを取得できるのか明確ではありません。
ですのでinstance_create_layerで変数を受け取ってそれを用いて変数を変更したり受け取ったりします。
今回変更したコードはCで生成されたobjectAのインスタンスをobjectBに渡して利用するコードになってます。
少々流れが複雑ですがわからないことがあれば聞いてください。

通報 ...