class Field
attr_accessor:go
def initialize
go = []
end
def timeForward
#ゲーム時間が経過した時の、フィールド内の処理(オブジェクトの衝突検知とか)を書く。
end
end
class GameObject
attr_accessor:x
attr_accessor:y
#ゲーム時間が経過した時の、このオブジェクトの挙動を書く。
#FieldのtimeForward()から呼び出される。
def timeForward
#このオブジェクトが他のオブジェクトと衝突した時の挙動を書く。
#FieldのtimeForward()から呼び出される。
#Params:
#go = このオブジェクトと衝突したオブジェクトが渡される。
end
def collideReaction go
end
end
class Missile < GameObject
attr_accessor:power #ミサイルの攻撃力。
attr_accessor:speed #ミサイルの推進力。
def timeForward
#前に推進する処理とか。
end
def collideReaction go
#爆発処理とか。
end
end
class HomingMissile < Missile
attr_accessor:lead #誘導性能。
def timeForward
#追加で誘導処理でも。
end
#衝突処理には変更無し。
end
Y2xhc3MgRmllbGQKICBhdHRyX2FjY2Vzc29yOmdvCiAgZGVmIGluaXRpYWxpemUKICAgICAgZ28gPSBbXQogIGVuZAogIGRlZiB0aW1lRm9yd2FyZAogICAgICPjgrLjg7zjg6DmmYLplpPjgYzntYzpgY7jgZfjgZ/mmYLjga7jgIHjg5XjgqPjg7zjg6vjg4nlhoXjga7lh6bnkIbvvIjjgqrjg5bjgrjjgqfjgq/jg4jjga7ooZ3nqoHmpJznn6XjgajjgYvvvInjgpLmm7jjgY/jgIIKICBlbmQKZW5kCiAKY2xhc3MgR2FtZU9iamVjdAogIGF0dHJfYWNjZXNzb3I6eAogIGF0dHJfYWNjZXNzb3I6eQogICPjgrLjg7zjg6DmmYLplpPjgYzntYzpgY7jgZfjgZ/mmYLjga7jgIHjgZPjga7jgqrjg5bjgrjjgqfjgq/jg4jjga7mjJnli5XjgpLmm7jjgY/jgIIKICAjRmllbGTjga50aW1lRm9yd2FyZCgp44GL44KJ5ZG844Gz5Ye644GV44KM44KL44CCCiAgZGVmIHRpbWVGb3J3YXJkCiAgICAj44GT44Gu44Kq44OW44K444Kn44Kv44OI44GM5LuW44Gu44Kq44OW44K444Kn44Kv44OI44Go6KGd56qB44GX44Gf5pmC44Gu5oyZ5YuV44KS5pu444GP44CCCiAgICAjRmllbGTjga50aW1lRm9yd2FyZCgp44GL44KJ5ZG844Gz5Ye644GV44KM44KL44CCCiAgICAjUGFyYW1zOgogICAgI2dvID0g44GT44Gu44Kq44OW44K444Kn44Kv44OI44Go6KGd56qB44GX44Gf44Kq44OW44K444Kn44Kv44OI44GM5rih44GV44KM44KL44CCCiAgZW5kCiAgZGVmIGNvbGxpZGVSZWFjdGlvbiBnbwogIGVuZAplbmQKIApjbGFzcyBNaXNzaWxlIDwgR2FtZU9iamVjdAogIGF0dHJfYWNjZXNzb3I6cG93ZXIgI+ODn+OCteOCpOODq+OBruaUu+aSg+WKm+OAggogIGF0dHJfYWNjZXNzb3I6c3BlZWQgI+ODn+OCteOCpOODq+OBruaOqOmAsuWKm+OAggogIGRlZiB0aW1lRm9yd2FyZAogICAgI+WJjeOBq+aOqOmAsuOBmeOCi+WHpueQhuOBqOOBi+OAggogIGVuZAogIGRlZiBjb2xsaWRlUmVhY3Rpb24gZ28KICAgICPniIbnmbrlh6bnkIbjgajjgYvjgIIKICBlbmQKZW5kCiAKY2xhc3MgSG9taW5nTWlzc2lsZSA8IE1pc3NpbGUKICBhdHRyX2FjY2Vzc29yOmxlYWQgI+iqmOWwjuaAp+iDveOAggogIGRlZiB0aW1lRm9yd2FyZAogICAgI+i/veWKoOOBp+iqmOWwjuWHpueQhuOBp+OCguOAggogIGVuZAogICPooZ3nqoHlh6bnkIbjgavjga/lpInmm7TnhKHjgZfjgIIKZW5k