Libraries.Interface.Views.SelectionHighlightView Documentation
Inherits from: Libraries.Interface.Views.ControlView, Libraries.Game.Graphics.Drawable, Libraries.Interface.Item, Libraries.Interface.Item2D, Libraries.Language.Object, Libraries.Interface.Views.View2D, Libraries.Interface.Events.TextureLoadListener, Libraries.Game.Graphics.TextureRegion, Libraries.Game.Disposable
Actions Documentation
Add(integer index, Libraries.Interface.Item2D newItem)
This action adds a different Item2D into this one, storing the added Item2D at a specific index in the internal array.
Parameters
- integer index
- Libraries.Interface.Item2D
Example
use Libraries.Interface.Item2D
Item2D parentItem
Item2D child
parentItem:Add(0, child)
Add(Libraries.Interface.Item2D newItem)
This action adds a different Item2D into this one. This makes a few things happen. 1. The added item will get this item as its parent. 2. The added item's x and y coordinates will become relative to this Item. 3. Most actions on this Item will also affect the added Item.
Parameters
Example
use Libraries.Interface.Item2D
Item2D parentItem
Item2D child
parentItem:Add(child)
AddBehavior(Libraries.Interface.Behaviors.Behavior behavior)
AddFocusListener(Libraries.Interface.Events.FocusListener listener)
This action adds a FocusListener to the Item. When the Item receives a FocusEvent due to either gaining or losing the focus, the listener will be notified.
Parameters
Example
use Libraries.Interface.Item
use Libraries.Interface.Events.FocusListener
Item myItem
FocusListener listener
myItem:AddFocusListener(listener)
AddGestureListener(Libraries.Interface.Events.GestureListener listener)
This action adds a GestureListener to the Item. If the Item ever receives a GestureEvent, the listener will be notified.
Parameters
Example
use Libraries.Interface.Item
use Libraries.Interface.Events.GestureListener
Item myItem
GestureListener listener
myItem:AddGestureListener(listener)
AddMouseListener(Libraries.Interface.Events.MouseListener listener)
This action adds a MouseListener to the Item. If the Item ever receives a MouseEvent due to a mouse click, the mouse listener will be notified.
Parameters
Example
use Libraries.Interface.Item
use Libraries.Interface.Events.MouseListener
Item myItem
MouseListener listener
myItem:AddMouseListener(listener)
AddMouseMovementListener(Libraries.Interface.Events.MouseMovementListener listener)
This action adds a MouseMovementListener to the Item. If the Item ever receives a MouseEvent due to mouse movement, the listener will be notified.
Parameters
Example
use Libraries.Interface.Item
use Libraries.Interface.Events.MouseMovementListener
Item myItem
MouseMovementListener listener
myItem:AddMouseMovementListener(listener)
AddMouseWheelListener(Libraries.Interface.Events.MouseWheelListener listener)
This action adds a MouseWheelListener to the Item. If the Item ever receives a MouseEvent due to the mouse wheel being scrolled, the listener will be notified.
Parameters
Example
use Libraries.Interface.Item
use Libraries.Interface.Events.MouseWheelListener
Item myItem
MouseWheelListener listener
myItem:AddMouseWheelListener(listener)
AddTextureLoadListener(Libraries.Interface.Events.TextureLoadListener listener)
This action adds a TextureLoadListener to the texture. If the texture finishes asynchronously loading an image, the listener will be alerted.
Parameters
- Libraries.Interface.Events.TextureLoadListener: A TextureLoadListener to be alerted when this texture finishes asynchronous loading.
AddTouchListener(Libraries.Interface.Events.TouchListener listener)
This action adds a TouchListener to the Item. If the Item ever receives a TouchEvent, the listener will be notified.
Parameters
Example
use Libraries.Interface.Item
use Libraries.Interface.Events.TouchListener
Item myItem
TouchListener listener
myItem:AddTouchListener(listener)
Advance(number time)
This action is used to advance the item forward in time in physics space to synchronize it for time of impact solving. This action is used internally and users should not need to use this action. Attribute Parameter time The amount of seconds to advance the item forward in time
Parameters
- number time
ApplyAngularImpulse(number impulse)
This action applies an angular impulse to this item. The units are in kilogram units squared per second. This modifies the angular velocity of this item. Physics must be enabled on this item before using this action.
Parameters
- number impulse: The angular impulse in kilogram units squared per second
Example
use Libraries.Interface.Item2D
Item2D item
item:SetWidth(100)
item:SetHeight(100)
item:EnablePhysics(true)
item:ApplyAngularImpulse(80)
ApplyForce(Libraries.Compute.Vector2 force, Libraries.Compute.Vector2 point)
This action applies a force to this item at the passed point. The force is in kilogram units per second per second. The point is the screen coordinates where the point will be applied. If the point is not on the center of the item, then a torque will be introduced causing the item to rotate. Physics must be enabled on this item before using this action.
Parameters
- Libraries.Compute.Vector2: The force to apply to the item in kilogram units per second per second
- Libraries.Compute.Vector2: The point at which to apply the force
Example
use Libraries.Compute.Vector2
use Libraries.Interface.Item2D
Item2D item
Vector2 force
Vector2 point
item:SetWidth(100)
item:SetHeight(100)
item:EnablePhysics(true)
force:Set(300, 350)
point:Set(100, 100) // apply the force to the top right corner of the item
item:ApplyForce(force, point)
ApplyForceToCenter(Libraries.Compute.Vector2 force)
This action applies a force to this item at the center of the item. The force is in kilogram units per second per second. No torque is introduced to the item when using this action. Physics must be enabled on this item before using this action.
Parameters
- Libraries.Compute.Vector2: The force to apply to the item in kilogram units per second per second
Example
use Libraries.Compute.Vector2
use Libraries.Interface.Item2D
Item2D item
Vector2 force
item:SetWidth(100)
item:SetHeight(100)
item:EnablePhysics(true)
force:Set(300, 350)
item:ApplyForce(force)
ApplyLinearImpulse(Libraries.Compute.Vector2 impulse, Libraries.Compute.Vector2 point)
This action applies a linear impulse to this item at the passed point. The impulse is in kilogram units per second. This immeadietly modifies the linear velocity of this item. The point is the screen coordinates where the impulse will be applied. If the point is not the center of the item, then the angular velocity of this item will also be modified. Physics must be enabled on this item before using this action.
Parameters
- Libraries.Compute.Vector2: The impulse to apply in kilogram units per second
- Libraries.Compute.Vector2: The point at which to apply the impulse
Example
use Libraries.Interface.Item2D
use Libraries.Compute.Vector2
Item2D item
Vector2 impulse
Vector2 point
item:SetWidth(100)
item:SetHeight(100)
item:EnablePhysics(true)
impulse:Set(100)
point:Set(100, 100) // apply the impulse to the top right corner
item:ApplyLinearImpulse(impulse, point)
ApplyTorque(number torque)
This action applies a torque to this item. The units are kilogram units squared per second per second. Physics must be enabled on this item before using this action.
Parameters
- number torque: The torque to apply to this item in kilogram units squared per second per second
Example
use Libraries.Interface.Item2D
Item2D item
item:SetWidth(100)
item:SetHeight(100)
item:EnablePhysics(true)
item:ApplyTorque(350)
AreChildrenProcessingMouseEvents()
This action returns whether or not this Item is allowing its children to receive mouse events if the Item is custom drawing. If the Item isn't using custom drawing, this value is irrelevant -- children objects always receive mouse events before the parent if the parent isn't performing custom drawing.
Return
boolean:
BeginCollision(Libraries.Interface.Item item)
This action is used to indicate that two items have just begun colliding. When two Items collide, the BeginCollision action should be called on both of them, with the other item passed as a parameter to the action. Note that this action does nothing by default, but classes that inherit from Item may override it.
Parameters
- Libraries.Interface.Item: The other Item involved in the collision.
Example
use Libraries.Interface.Item
Item collider1
Item collider2
collider1:BeginCollision(collider2)
collider2:BeginCollision(collider1)
BeginMouseOver()
CanRotate(boolean flag)
This action gets the position of the center of this item in global (world) coordinates.
Parameters
- boolean flag
CancelBehaviors()
This action stops all behaviors this Item is following without finishing them.
ClickedMouse()
CollideWithChildren()
This action sets the mass, mass moment of inertia, and how the 2D item should move (via linear velocity) to be at the desired location.
Return
boolean:
Compare(Libraries.Language.Object object)
This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.
Parameters
- Libraries.Language.Object: The object to compare to.
Return
integer: The Compare result, Smaller, Equal, or Larger.
Example
Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)
ComputeDistance(Libraries.Compute.Vector2 point, integer childIndex, Libraries.Compute.Vector2 normalOut)
This action computes the distance of the passed point from the collision shape attached to this item. This action is used internally and users should not need to use this action.
Parameters
- Libraries.Compute.Vector2: The vector representing the point to compute the distance from
- integer childIndex: The index of the collision shape attached to this item we want the bounding box of
- Libraries.Compute.Vector2: The direction of the point from the shape
Return
number: The distance of the point from the collision shape of this item
Contains(number containsX, number containsY)
This action tests if a point in global x,y coordinates is contained inside this Item2D. The global coordinates are considered to be the x and y coordinates of this Item plus its offsetX and offsetY values.
Parameters
- number containsX
- number containsY
Return
boolean: Whether or not the point is contained in this Item.
Example
use Libraries.Interface.Item2D
Item2D item
item:SetPosition(50, 50)
item:SetWidth(100)
item:SetHeight(50)
boolean value = item:Contains(125, 70)
Copy()
CopyTextureRegion(Libraries.Game.Graphics.TextureRegion region, integer x, integer y, integer width, integer height)
This action copies the information from a given TextureRegion at the given coordinates to the given width and height onto this TextureRegion.
Parameters
- Libraries.Game.Graphics.TextureRegion
- integer x
- integer y
- integer width
- integer height
CopyTextureRegion(Libraries.Game.Graphics.TextureRegion region)
This action copies the information from the given TextureRegion into this TextureRegion.
Parameters
CreateNodes(Libraries.Game.Collision.BroadphaseCollision2D broadphase, Libraries.Game.Collision.PhysicsPosition2D transform)
This action creates the nodes for this item for the broadphase collision. This action is needed in order to add the item to the collision detection system. This action is used internally and users should not need to use this action.
Parameters
- Libraries.Game.Collision.BroadphaseCollision2D: The broadphase to add this item to
- Libraries.Game.Collision.PhysicsPosition2D: The current position of the item in physics space
DestroyNodes(Libraries.Game.Collision.BroadphaseCollision2D broadphase)
This action destroys the nodes for this item for the broadphase collision, essentially removing it from the collision detection system. This action is used internally and users should not need to use this action.
Parameters
- Libraries.Game.Collision.BroadphaseCollision2D: The broadphase to remove this item's nodes from
Dispose()
The Dispose action will dispose the currently loaded texture. This frees up computer resources, but the texture will no longer be usable. Note that multiple Drawables can use the same texture, and disposing of it will get rid of the texture information not just for this Drawable, but any Drawable that is using the texture. Dispose should be used when a texture will not be used again. Here are some guide lines for when you should or should not dispose a Drawable: 1. If the Drawable was loaded using Load(text) or Load(File), then the Drawable created new texture data when it was loaded. This can be safely disposed, unless you copied the Drawable, e.g. with Load(Drawable). 2. If the Drawable was loaded as a shape, e.g. with the LoadRectangle action, the Drawable created new texture data when it loaded. It can be safely disposed, unless you copied the Drawable, e.g. with Load(Drawable). 3. If the Drawable was loaded using a Texture or a TextureRegion, such as with the Load(Texture) action, then it is NOT safe to dispose this if there are any other Drawables that are still in use which were also loaded with the same Texture. If there are no other Drawables that were loaded with the Texture, it is safe to dispose. If a texture was used to load multiple Drawables, it is good practice to use the Dispose action directly from the Texture once all of the Drawables are no longer in use. 4. If the Drawable was loaded with an ImageSheet, you should NEVER dispose the Drawable's texture. All Drawables loaded from an ImageSheet use the same Texture data, so disposing of any Drawable from an ImageSheet will delete the ImageSheet's texture data. If you ever wish to dispose an ImageSheet's texture data, it is good practice to use the ImageSheet's Dispose action.
Example
use Libraries.Game.Graphics.Drawable
use Libraries.Game.Game
class Main is Game
action Main
StartGame()
end
action CreateGame
Drawable drawable
drawable:LoadFilledCircle(75)
Add(drawable)
// When we no longer need the Drawable, we can remove it from
// the Game, and then Dispose it to clean up the memory it used.
Remove(drawable)
drawable:Dispose()
end
end
DisposeAll()
This action is used to call Dispose on this Item and on the entire children hierarchy of this Item.
DisposeChildren()
This action is used to call Dispose on the entire children hierarchy of this Item. This will not call Dispose on this Item.
Draw(Libraries.Game.Graphics.Painter2D painter)
The Draw action is used to perform custom drawing on this Item and its children. This is only called during the Game engine's draw phase if this Item has enabled custom drawing via the SetCustomDrawing action. This is an advanced feature, and shouldn't be used by most users. If custom drawing is enabled, this action should be overriden -- if it isn't, the Item will attempt to provide default rendering for itself, its view, and its children, without regard to depth buffering. This action is responsible for instructing the provided Painter on how to draw this item, the view, and its children, and in what order to do so.
Parameters
Empty()
This action will remove all items from this item's children hierarchy. Note that this will not empty the hierarchies of the contained Items.
Example
use Libraries.Interface.Item2D
Item2D parentItem
Item2D child1
Item2D child2
Item2D grandchild
parentItem:Add(child1)
parentItem:Add(child2)
child1:Add(grandChild)
parentItem:Empty()