①エージェントの作成 エージェントのなかにIFを用いて新規エージェントを作成するのが簡単です。 例えば、車エージェント自体が車エージェントを作成する場合は、 (前略) Dim NewCar As Agt If My.X == 60 Then NewCar= CreateAgt(Universe.空間.車) NewCar.X = 0 NewCar.Y = 0 End if (後略)
②車間距離の取得 例えば、車エージェントが他の車を取得し、それが自分の前かどうか判定させてから車間距離を取得し、その距離が一定以下であれば速度を落とす (前略) Dim CarSet As AgtSet MakeOneAgtSetAroundOwn(CarSet, 任意の値, Universe.空間.車, False) If CountAgtSet(CarSet) > 0 Then For each Car in CarSet If My.X < Car.X Then // X軸上の前にいるかどうか If MeasureDistance(My.X, My.Y, Car.X, Car.Y, Universe.空間) < 任意の値 My.Speed = My.Speed*0.5 // 例えば半分にする End if End if Next Car End if (後略)
①エージェントの作成 エージェントのなかにIFを用いて新規エージェントを作成するのが簡単です。 例えば、車エージェント自体が車エージェントを作成する場合は、 (前略) Dim NewCar As Agt If My.X == 60 Then NewCar= CreateAgt(Universe.空間.車) NewCar.X = 0 NewCar.Y = 0 End if (後略)
②車間距離の取得 例えば、車エージェントが他の車を取得し、それが自分の前かどうか判定させてから車間距離を取得し、その距離が一定以下であれば速度を落とす (前略) Dim CarSet As AgtSet MakeOneAgtSetAroundOwn(CarSet, 任意の値, Universe.空間.車, False) If CountAgtSet(CarSet) > 0 Then For each Car in CarSet If My.X < Car.X Then // X軸上の前にいるかどうか If MeasureDistance(My.X, My.Y, Car.X, Car.Y, Universe.空間) < 任意の値 My.Speed = My.Speed*0.5 // 例えば半分にする End if End if Next Car End if (後略)