Como parte da minha estrutura simples de desenvolvimento de jogos em Ruby 2D, meus objetos de jogo têm posição (valores x e y) e tamanho (largura e altura).
class MyGameObject
attr_accessor :x
attr_accessor :y
attr_accessor :width
attr_accessor :height
...
Outra abordagem que vi foi tratar a posição como uma Point
estrutura e o tamanho como uma Size
estrutura:
Point = Struct.new(:x, :y)
Size = Struct.new(:width,:height)
class MyGameObject
attr_accessor :position # Point instance
attr_accessor :size # Size instance
...
Alguns frameworks usam o primeiro (acho que GDX, Gosu ...). Outros usam o último (cocos2d-iphone). O problema é que não está totalmente claro para mim as vantagens e desvantagens de ambos os comportamentos (no desenvolvimento de jogos) - não sei por que alguns frameworks escolheram um e não o outro.
Há diferenças significativas que devo considerar?
fonte