SpriteCandy - HUD_GetObjectX on Groups?
Blitz3D Forums/Blitz3D Programming/SpriteCandy - HUD_GetObjectX on Groups?
| ||
I can't get the X coord value of an object group. Is it possible? I have 2 images -a tire and a body- forming a car, they are grouped like this; this\car = HUD_CreateGroup() HUD_AddToGroup( this\body, this\car ) HUD_AddToGroup( this\tire, this\car ) I get an error "the Specified object doesn't exist" when I do this; this\x = HUD_GetObjectX( this\car ) Thanks in advance. |
| ||
Try this.car = HUD_CreateGroup() |
| ||
No that way you can create a type, not a group in Sprite Candy. There is no problem with my group creation code. Problem is, when I try to get X of the group of sprites, it doesn't act like they are an object. But there is no problem when I use HUD_FX_Scale this\car, 1.3, 1.3, 0 or HUD_MoveObject this\car, this\speed, 0. Also you cannot use movement effects like HUD_FX_Wave with HUD_MoveObject code on the same object. It just waves or moves but doesn't do both. Any help is greatly appreciated. |
| ||
I dont think with the standard functions you can do this. Perhaps you could make your own SC function similar to :Function HUD_GetGroupX# (ObjectID%) Local itemcount Local objx# Local averageX# Local xtotal# Local Obj.SC_Object = Object.SC_Object(ObjectID) ; HANDLE GROUP? ---------- If Obj = Null Then Local Group.SC_Group = Object.SC_Group (ObjectID) Local Item.SC_GroupItem = Object.SC_GroupItem(ObjectID) ; FIRST GROUP CALL? If Group <> Null itemcount=0 For Item = Each SC_GroupItem If Item\GroupID = Handle(Group) Then ; loop through and find the x value of all the objects objx#=HUD_GetObjectX# (Handle(Item)) xtotal=xtotal+objx itemcount=itemcount+1 EndIf Next averageX#=xtotal/itemcount Return averageX# End If ; NOTHING FOUND? If Group = Null And Item = Null And Obj = Null Then RuntimeError SC_BreakText("HUD_GetGroupX||The specified object or group does not exist.",50) End If End Function I haven't tested the above but it should work or at least point you in a direction. I looked at the SC code where it handled grouped objects and made a new function to loop through the objects in the group to find the average X value of the objects. Obviously there are many ways to decide on what x value you want e.g. the smallest x value in the group, or the largest x value but this depends on what you want. Hope this helps. Cheers, Unc |