>>14
別にxやyに直接値を代入するしかやれないわけじゃない

speedやangleに対しても可能
ac = func( 0 , 360 , 1 )
task_add { |o|
 o.speed = 1
 o.angle = ac.call
}

やれば内部で勝手に動くようにしてる
デフォルトではo.speedは0なので
根幹部分でsin,cosでキャラ動かす処理は通ってるけど、動いてないだけ
基本的に弾幕アルゴリズムにsinはあまり使わずspeedとangleの変更のみで作ってるし作れる