D
dallinbeutler
Guest
So here's the dilemma. I have a obj_collision which handles colliding with solid objects. It's children are things like projectiles, enemies, and the player. Only some of these objects need health, defense, etc. I don't want to make a parent with these attributes, because some projectiles need health, some enemies don't need it, etc. .
In traditional programming this is solved by using the decorator pattern. You attach objects to your parent object, and for damaging something, you check to see if it has this attachment. If it does, then do the thing.
This can all be done, but the problem comes with efficiency, and instance activating/ deactivating. Each object comes with a ton of variables, like sprite, x,y, health, image_index, sprite_height,sprite_width, etc. Are all of these variable really getting stored with every object, even if I never set or use them? This could be vastly inefficient if every object has 5 of these attached objects all with the values. And activating/deactivating instances doesn't throw an event to the affected object, so how can I ensure its attached instances are activated/deactivated accordingly, without writing a wrapper to cover every instance related function?
In traditional programming this is solved by using the decorator pattern. You attach objects to your parent object, and for damaging something, you check to see if it has this attachment. If it does, then do the thing.
This can all be done, but the problem comes with efficiency, and instance activating/ deactivating. Each object comes with a ton of variables, like sprite, x,y, health, image_index, sprite_height,sprite_width, etc. Are all of these variable really getting stored with every object, even if I never set or use them? This could be vastly inefficient if every object has 5 of these attached objects all with the values. And activating/deactivating instances doesn't throw an event to the affected object, so how can I ensure its attached instances are activated/deactivated accordingly, without writing a wrapper to cover every instance related function?