>Perdonad que insista, pero cuando a uno le dicen que está equivocado, y no
lo está...

Yo no digo que estes equivocado. Es dificil asegurar quien esta en posesión
de la verdad absoluta, si es que alguien lo esta. Además, decir equivocado
es decir que estas haciendo algo erroneamente, que tampoco creo que sea el
caso. Lo que yo te doy es mi punto de vista frente al tuyo, una opcion que
yo creo mejor que la tuya. Partiendo de ese punto...


>Cuando tenga que hacer que una pelota bote, tengo que extender movieclip
para implementarle el rebote con el suelo. Si ahora lo que quiero es que la
pelota no bote con el suelo, sino que sea una bola de billar que, vista
cenitalmente, rebote con las paredes de la mesa, tambiñen tendría que
extender movieclip para implementar ese comportamiento. Ahora, necesito, en
otro juego, que la pelota bote verticalmente, pero con pérdida de energía. A
extender otra vez, y a implementar el comportamiento. En el siguiente juego,
la pelota bota verticalmente, rebota con las paredes, y además, hay un
jugador de fútbol que la cabecea. A extender otra vez. Así sucesivamente.

Depende mucho de la fisica que le quieras a aplicar, pero en el caso que
mencionas:

Una bola de billar es una pelota que rebota con perdida de fuerza que es una
pelota que rebota que es una pelota que es un objeto grafico (MovieClip).
Herencia claramente. Por lo menos a mi me lo parece.

>Eso es claramente inmanejable, porque cuando tenga que hacer los 200
juegos,
puedo tener, no sé, 100 clases distintas que extiendan de movieclip, y que
implementen cada una un comportamiento físico.

Fijate en el Framework v2, nadie hereda directamente de MovieClip, pero casi
todos heredan de UIObject que a su vez hereda de MovieClip,  Tienes
especialidades mas altas como ScrollableList, View o mas bajas como
UIComponent, pero no hay ningun ComboManager ni un LabelManager, todos
heredan de MovieClip en algun punto de la cadena. Es logico, son MovieClips,
son Objetos Graficos. Y si vas a hacer 200 juegos, tener 100 clases que
desciendan de algun punto de MovieClip no me parece tan descabellado.
Delegar el comportamiento de una clase en otra me parece más bien fuera de
la filosofia OOP y más aun si la finalidad exclusiva de esa clase es esa.

>Otra opción es hacer sólo una clase que extienda movieclip, que implemente
todos los posibles comportamientos, y que dependiendo del juego que sea,
implementar uno u otro. Tampoco es buena opción, por motivos evidentes.

Logicamente los comportamientos deberian ser divididos y colocados en una
cadena de herencia. Pero arriba del todo seguiria siendo un MovieClip ya que
todos esos comportamientos son de un objeto grafico.


> Por ejemplo, implmentando una clase tweenManager, que se encarge
de que, a partir de una posición inicial nos dé las n siguientes posiciones
del objeto, o que nos dé sólo la siguiente, y que sea otra clase distinta (
la que agrega la máquina de estados del objeto ) la que se encarga de
decirle al clip simplemente dónde se tiene que colocar. Es decir,
abstrayendo el comportamiento del gráfico.

Creo que en este caso: MovieClip uses a TweenManager.Tambien, UIObject is a
MovieClip and uses a TweenManager. El tween manager solo tendria que
ocuparse de lo suyo, que es realizar los calculos, en absoluto deberia saber
para que se van a utilizar esos calculos y mucho menos cambiar propiedades
en otro objeto segun esos calculos. Es el otro objeto (El movieclip) el que
tiene que usar al TweenManager para obtener las coordenadas y modificarse a
si mismo, la posicion es su responsabilidad.

>Y siento repetirme, pero eso no sólo no es menos orientado a objetos, sino
en este caso, es lo que hace que el código, y por lo tanto el proyecto, sea
manejable y pueda llevarse a cabo.

Ahi estoy de acuerdo. Una tecnica no es menos orientada a objetos que otra.
Yo solo discuto que una es mejor que la otra :)

>Y conste que esto lo utilizo sólo como un ejemplo. Un ejemplo de que
subclasificar sin parase a pensar en el problema de forma global no es la
mejor solución. Es una posible solución, pero no tiene porqué ser la mejor.

Es el metodo utilizado por la naturaleza misma, subclasificar y
subclasificar. Porque podrias decir que para que se moviese un mamifero
puedes usar a un tio que le de patadas, pero yo prefiero subclasificarlo en
un perro, que con eso ya tiene 4 patas y puede andar por si mismo (ya de
paso le pongo colmillos para que muerda al tio que le esta intentando patear
xD)


enga, un saludo

Joseba Alonso
www.sidedev.net
www.5dms.com

----------------------------------
Lista ASNativos:[EMAIL PROTECTED]
http://www.5dms.com/listas
----------------------------------

Responder a