Como parte de mi simple marco de desarrollo de juegos Ruby 2D, mis objetos de juego tienen posición (valores x e y) y tamaño (ancho y alto).
class MyGameObject
attr_accessor :x
attr_accessor :y
attr_accessor :width
attr_accessor :height
...
Otro enfoque que he visto fue tratar la posición como una Point
estructura y el tamaño como una Size
estructura:
Point = Struct.new(:x, :y)
Size = Struct.new(:width,:height)
class MyGameObject
attr_accessor :position # Point instance
attr_accessor :size # Size instance
...
Algunos marcos usan el primero (creo que GDX, Gosu ...). Otros usan este último (cocos2d-iphone). El problema es que no tengo del todo claras las ventajas y desventajas de ambos comportamientos (en el desarrollo del juego). No sé por qué algunos marcos eligieron uno y no el otro.
¿Hay diferencias significativas que debería considerar?