Sprites API
- Function CreateSprite(img, frame_w, frame_h)
This function returns a new sprite which you can place in a variable for use in your program.
Here is an example of opening a sprite canvas layer, creating a sprite, setting it's position and finally displaying it.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("CreateSprite", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
While Not Key(K_ESCAPE)
'ClearCanvas() For a sprite layer canvas, you don't need to call ClearCanvas. It's automatically called.
Update() 'Update automatically deals with drawing the sprites on the sprite canvas.
Wend
See also
- Sub DeleteSprite(sprite)
Removes a sprite from memory.
Here is an example:
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("CreateSprite", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
eyeSprite2 = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite2, 150, 100)
timePassed = Timer()
timePassedDiff = 2000
While Not Key(K_ESCAPE)
If Timer() - timePassed > timePassedDiff Then 'After 2 seconds eyeSprite2 will be deleted
DeleteSprite(eyeSprite2)
End If
Update()
Wend
- Sub SetSpritePosition(sprite, x, y)
Sets the position of the sprite in the canvas.
Note: This is canvas position and not screen position.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SetSpritePosition", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
eyeSpriteX = 100
eyeSpriteY = 100
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY) 'Position on the canvas the sprite will initially be drawn.
speed = 0.4
While Not Key(K_ESCAPE)
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
eyeSpriteX = eyeSpriteX + speed 'Speed will be added to sprites X position, sprite will move to the right gradually
Update()
WendSee also
- Sub TranslateSprite(sprite, x, y)
Move a sprite relative to its current position.
Note: This function sets the position of a sprite without regards to physics properties so it will not trigger collision detection or collision response.
See also
- Sub GetSpritePosition(sprite, ByRef x, ByRef y)
Gets the position of a sprite on the canvas.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("GetSpritePosition", winWidth, winHeight, isFullScreen, vSync)
pCanvas = OpenCanvas(200, 80, 0, 0, 200, 80, 1) 'Need to open a canvas for drawing the text
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM font1
Font1 = LoadFont("DripOctober.ttf", 16)
SetFont(Font1)
SetColor(RGB(100, 200, 200))
DIM eye
DIM eyeW
DIM eyeH
DIM eyeX 'Variables to pass into the function for holding the x and y values
DIM eyeY
eyeSpriteX = 100
eyeSpriteY = 100
destX = 0
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
While Not Key(K_ESCAPE)
ClearCanvas()
Canvas(sCanvas) 'change to the sprite canvas for drawing sprites
If SpriteX(eyeSprite) < 450 And destX = 0 Then
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
eyeSpriteX = eyeSpriteX + 0.5
ElseIf SpriteX(eyeSprite) >= 440 And destX = 0 Then
destX = 1
End If
If destX = 1 Then
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
eyeSpriteX = eyeSpriteX - 0.5
End If
GetSpritePosition(eyeSprite, eyeX, eyeY)
Canvas(pCanvas) 'change to the standard drawing canvas for drawing text
DrawText("Sprite X: " + STR$(eyeX), 10, 30)
DrawText("Sprite Y: " + STR$(eyeY), 10, 50)
Update()
WendSee also
- Function SpriteX(sprite)
Returns the X position of a sprite on a canvas.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SpriteX", winWidth, winHeight, isFullScreen, vSync)
pCanvas = OpenCanvas(200, 80, 0, 0, 200, 80, 1) 'Need to open a canvas for drawing the text
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM font1
Font1 = LoadFont("DripOctober.ttf", 16)
SetFont(Font1)
SetColor(RGB(100, 200, 200))
DIM eye
DIM eyeW
DIM eyeH
DIM eyeX 'Variables to pass into the function for holding the x value
eyeSpriteX = 100
eyeSpriteY = 100
destX = 0
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
While Not Key(K_ESCAPE)
ClearCanvas()
Canvas(sCanvas) 'change to the sprite canvas for drawing sprites
If SpriteX(eyeSprite) < 450 And destX = 0 Then
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
eyeSpriteX = eyeSpriteX + 0.5
ElseIf SpriteX(eyeSprite) >= 440 And destX = 0 Then
destX = 1
'eyeSpriteX = SpriteX(eyeSprite)
End If
If destX = 1 Then
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
eyeSpriteX = eyeSpriteX - 0.5
End If
Canvas(pCanvas)
eyeX = SpriteX(eyeSprite) 'change to the standard drawing canvas for drawing text
DrawText("Sprite X: " + STR$(eyeX), 10, 30)
Update()
WendSee also
- Function SpriteY(sprite)
Returns the Y position of a sprite on a cnavas.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SpriteY", winWidth, winHeight, isFullScreen, vSync)
pCanvas = OpenCanvas(200, 80, 0, 0, 200, 80, 1) 'Need to open a canvas for drawing the text
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM font1
Font1 = LoadFont("DripOctober.ttf", 16)
SetFont(Font1)
SetColor(RGB(100, 200, 200))
DIM eye
DIM eyeW
DIM eyeH
DIM eyeY 'Variables to pass into the function for holding the y value
eyeSpriteX = 100
eyeSpriteY = 100
destY = 0
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
While Not Key(K_ESCAPE)
ClearCanvas()
Canvas(sCanvas) 'change to the sprite canvas for drawing sprites
If SpriteY(eyeSprite) < 450 And destY = 0 Then
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
eyeSpriteY = eyeSpriteY + 0.5
ElseIf SpriteY(eyeSprite) >= 440 And destY = 0 Then
destY = 1
End If
If destY = 1 Then
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
eyeSpriteY = eyeSpriteY - 0.5
End If
Canvas(pCanvas)
eyeY = SpriteY(eyeSprite) 'change to the standard drawing canvas for drawing text
DrawText("Sprite Y: " + STR$(eyeY), 10, 30)
Update()
WendSee also
SpriteX(),SetSpritePosition(),GetSpritePosition(),SpriteX()
- Sub SetSpriteRotation(sprite, angle)
Sets the angle the sprite is rotated by.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SetSpriteRotation", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
DIM eyeAngle 'Variable to hold the sprites angle value
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
While Not Key(K_ESCAPE)
'ClearCanvas() For a sprite layer canvas, you don't need to call ClearCanvas. It's automatically called.
SetSpriteRotation(eyeSprite, eyeAngle)
eyeAngle = eyeAngle + 0.3
Update() 'Update automatically deals with drawing the sprites on the sprite canvas.
WendSee also
- Sub RotateSprite(sprite, angle)
Sets the angle the sprite is rotated by relative to its current rotation.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("RotateSprite", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
DIM eyeAngle 'Variable to hold the sprites angle value
eyeAngle = 250
ReleaseKey = 0
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
'RotateSprite(eyeSprite, eyeAngle)
While Not Key(K_ESCAPE)
'ClearCanvas() For a sprite layer canvas, you don't need to call ClearCanvas. It's automatically called.
If Key(K_SPACE) And ReleaseKey = 0 Then
eyeAngle = 30
RotateSprite(eyeSprite, eyeAngle)
ReleaseKey = 1
ElseIf Not Key(K_SPACE) And ReleaseKey = 1 then
ReleaseKey = 0
End If
Update() 'Update automatically deals with drawing the sprites on the sprite canvas.
WendSee also
- Function GetSpriteRotation(sprite)
Returns the angle the sprite is rotated by.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("GetSpriteRotation", winWidth, winHeight, isFullScreen, vSync)
pCanvas = OpenCanvas(200, 80, 0, 0, 200, 80, 1) 'Need to open a canvas for drawing the text
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM font1
Font1 = LoadFont("DripOctober.ttf", 16)
SetFont(Font1)
SetColor(RGB(100, 200, 200))
DIM eye
DIM eyeW
DIM eyeH
DIM eyeAngle 'Variable to hold the sprites angle value
DIM displayAngle
ReleaseKey = 0
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
'RotateSprite(eyeSprite, eyeAngle)
While Not Key(K_ESCAPE)
ClearCanvas()
Canvas(sCanvas)
If Key(K_SPACE) And ReleaseKey = 0 Then
eyeAngle = 30
RotateSprite(eyeSprite, eyeAngle)
ReleaseKey = 1
ElseIf Not Key(K_SPACE) And ReleaseKey = 1 then
ReleaseKey = 0
End If
displayAngle = GetSpriteRotation(eyeSprite)
Canvas(pCanvas) 'change to the standard drawing canvas for drawing text
DrawText("Sprite Angle: " + STR$(displayAngle), 10, 30)
Update()
WendSee also
- Sub SetSpriteScale(sprite, x, y)
Sets the scale of a sprite.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SetSpriteScale", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
DIM eyeScale 'Variable to hold the sprites scale
eyeScale = 2
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
eyeSprite2 = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite2, 200, 100)
SetSpriteScale(eyeSprite2, eyeScale, eyeScale)
While Not Key(K_ESCAPE)
Update()
WendSee also
- Sub ScaleSprite(sprite, x, y)
Sets the scale of a sprite relative to its current scale.
See also
- Sub GetSpriteScale(sprite, ByRef x, ByRef y)
Gets the scale of a sprite.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("GetSpriteScale", winWidth, winHeight, isFullScreen, vSync)
pCanvas = OpenCanvas(200, 80, 0, 0, 200, 80, 1) 'Need to open a canvas for drawing the text
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM font1
Font1 = LoadFont("DripOctober.ttf", 16)
SetFont(Font1)
SetColor(RGB(100, 200, 200))
DIM eye
DIM eyeW
DIM eyeH
DIM eyeScale 'Variable to hold the sprites scale
ReleaseKey = 0
eyeScale = 2
DIM eyeScaleX
DIM eyeScaleY
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
eyeSprite2 = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite2, 200, 100)
SetSpriteScale(eyeSprite2, eyeScale, eyeScale)
While Not Key(K_ESCAPE)
ClearCanvas()
Canvas(sCanvas)
If Key(K_UP) And ReleaseKey = 0 Then
eyeScale = 1.1
ScaleSprite(eyeSprite2, eyeScale, eyeScale)
ReleaseKey = 1
ElseIf Key(K_DOWN) And ReleaseKey = 0 Then
eyeScale = 0.9
ScaleSprite(eyeSprite2, eyeScale, eyeScale)
ReleaseKey = 1
ElseIf Not Key(K_UP) And Not Key(K_DOWN) And ReleaseKey = 1 then
ReleaseKey = 0
End If
GetSpriteScale(eyeSprite2, eyeScaleX, eyeScaleY)
Canvas(pCanvas) 'change to the standard drawing canvas for drawing text
DrawText("Sprite Scale X: " + STR$(eyeScaleX), 10, 30)
Update()
WendSee also
- Sub SetSpriteZ(sprite, z)
Sets the drawing priority for sprites.
Note: Sprites with a higher Z order are drawn first and those with lower values will be drawn on top.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("ScaleSprite", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
DIM sword
DIM swordW
DIM swordH
ReleaseKey = 0
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
sword = LoadImage("sword.png")
GetImageSize(sword, swordW, swordH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
SetSpriteZ(eyeSprite, 1)
swordSprite = CreateSprite(sword, swordW, swordH)
SetSpritePosition(swordSprite, 89, 75)
SetSpriteZ(swordSprite, 5)
While Not Key(K_ESCAPE)
If Key(K_SPACE) And ReleaseKey = 0 Then
SetSpriteZ(eyeSprite, 10) 'This will cause the eye to be drawn behind the sword
ReleaseKey = 1
ElseIf Not Key(K_UP) And Not Key(K_DOWN) And ReleaseKey = 1 then
ReleaseKey = 0
End If
Update()
WendSee also
- Function SpriteZ(sprite)
Returns the drawing priority for sprites.
NOTE: Sprites with a higher Z order are drawn first and those with lower values will be drawn on top.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("ScaleSprite", winWidth, winHeight, isFullScreen, vSync)
pCanvas = OpenCanvas(200, 80, 0, 0, 200, 80, 1) 'Need to open a canvas for drawing the text
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
DIM eyeZ
DIM sword
DIM swordW
DIM swordH
DIM swordZ
ReleaseKey = 0
DIM font1
Font1 = LoadFont("DripOctober.ttf", 16)
SetFont(Font1)
SetColor(RGB(100, 200, 200))
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
sword = LoadImage("sword.png")
GetImageSize(sword, swordW, swordH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
SetSpriteZ(eyeSprite, 1)
swordSprite = CreateSprite(sword, swordW, swordH)
SetSpritePosition(swordSprite, 89, 75)
SetSpriteZ(swordSprite, 5)
While Not Key(K_ESCAPE)
swordZ = SpriteZ(swordSprite)
eyeZ = SpriteZ(eyeSprite)
Canvas(pCanvas) 'change to the standard drawing canvas for drawing text
DrawText("Eye Sprite Z: " + STR$(eyeZ), 10, 30)
DrawText("Sword Sprite Z: " + STR$(swordZ), 10, 50)
Update()
WendSee also
- Sub GetSpriteSize(sprite, ByRef w, ByRef h)
Gets the size of a sprite’s frames.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("ScaleSprite", winWidth, winHeight, isFullScreen, vSync)
pCanvas = OpenCanvas(200, 80, 0, 0, 200, 80, 1) 'Need to open a canvas for drawing the text
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
DIM eSpriteWidth
DIM eSpriteHeight
DIM font1
Font1 = LoadFont("DripOctober.ttf", 16)
SetFont(Font1)
SetColor(RGB(100, 200, 200))
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
GetSpriteSize(eyeSprite, eSpriteWidth, eSpriteHeight)
While Not Key(K_ESCAPE)
Canvas(pCanvas) 'change to the standard drawing canvas for drawing text
DrawText("EyeSprite Width " + STR$(eSpriteWidth), 10, 30)
DrawText("EyeSprite Height " + STR$(eSpriteHeight), 10, 50)
Update()
WendSee also
- Function SpriteWidth(sprite))
Returns the frame width of a sprite.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SpriteWidth", winWidth, winHeight, isFullScreen, vSync)
pCanvas = OpenCanvas(200, 80, 0, 0, 200, 80, 1) 'Need to open a canvas for drawing the text
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
DIM eSpriteWidth
DIM font1
Font1 = LoadFont("DripOctober.ttf", 16)
SetFont(Font1)
SetColor(RGB(100, 200, 200))
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
eSpriteWidth = SpriteWidth(eyeSprite)
While Not Key(K_ESCAPE)
Canvas(pCanvas) 'change to the standard drawing canvas for drawing text
DrawText("EyeSprite Width " + STR$(eSpriteWidth), 10, 30)
Update()
WendSee also
- Function SpriteHeight(sprite))
Returns the frame height of a sprite.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SpriteHeight", winWidth, winHeight, isFullScreen, vSync)
pCanvas = OpenCanvas(200, 80, 0, 0, 200, 80, 1) 'Need to open a canvas for drawing the text
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
DIM eSpriteHeight
DIM font1
Font1 = LoadFont("DripOctober.ttf", 16)
SetFont(Font1)
SetColor(RGB(100, 200, 200))
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
eSpriteHeight = SpriteHeight(eyeSprite)
While Not Key(K_ESCAPE)
Canvas(pCanvas) 'change to the standard drawing canvas for drawing text
DrawText("EyeSprite Height " + STR$(eSpriteHeight), 10, 50)
Update()
WendSee also
- Function SetSpriteVisible(sprite, flag)
Set the sprite visible with the flag.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SetSpriteVisible", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
DIM spriteTimer : spriteTimer = Timer()
DIM spriteTimerDiff : spriteTimerDiff = 2000
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
While Not Key(K_ESCAPE)
If Timer() - spriteTimer > spriteTimerDiff Then
SetSpriteVisible(eyeSprite, 0) 'Set sprite visible flag to 0 or false and it will become not visible
Print ("Function Called")
End If
Update()
WendSee also
- Function SpriteIsVisible(sprite)
Returns whether the srite is visible.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SetSpriteVisible", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
DIM spriteTimer : spriteTimer = Timer()
DIM spriteTimerDiff : spriteTimerDiff = 2000
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, 100, 100)
SetSpriteVisible(eyeSprite, 0) 'Set the flag to 0 for not visible
While Not Key(K_ESCAPE)
If Timer() - spriteTimer > spriteTimerDiff Then
SetSpriteVisible(eyeSprite, 1)
Print ("Function Called")
End If
If SpriteIsVisible(eyeSprite) Then
Print ("Sprite is Visible")
Else
Print ("Sprite is not visible")
End If
Update()
WendSee also
- Function SetSpriteSolid(sprite, flag)
Sets whether a sprite has physics and collision response enabled.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SetSpriteSolid", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
eyeSpriteX = 100
eyeSpriteY = 100
eyeSprite2X = 400
eyeSprite2Y = 125
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
SetSpriteSolid(eyeSprite, 1) 'Setting the sprites as solid means they can collide with one another.
eyeSprite2 = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite2, eyeSprite2X, eyeSprite2Y)
SetSpriteSolid(eyeSprite2, 1)
While Not Key(K_ESCAPE)
SetSpriteLinearVelocity(eyeSprite, 30, 0)
eyeSpriteX = eyeSpriteX + 0.5
Update()
WendSee also
- Function SpriteIsSolid(sprite)
Returns true if a sprite is has physics and collision response enabled.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SpriteIsSolid", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
DIM trigger : trigger = 0
eyeSpriteX = 100
eyeSpriteY = 100
eyeSprite2X = 400
eyeSprite2Y = 125
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
SetSpriteSolid(eyeSprite, 1) 'Setting the sprites as solid means they can collide with one another.
eyeSprite2 = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite2, eyeSprite2X, eyeSprite2Y)
SetSpriteSolid(eyeSprite2, 1)
While Not Key(K_ESCAPE)
SetSpriteLinearVelocity(eyeSprite, 30, 0)
eyeSpriteX = eyeSpriteX + 0.5
If SpriteIsSolid(eyeSprite2) And trigger = 0 Then
Print "Yup I'm solid!"
trigger = 1
End If
Update()
WendSee also
- Sub SetSpriteType(sprite, sprite_type)
Sets the type of collision body a sprite has:
- SPRITE_TYPE_STATIC
- SPRITE_TYPE_KINEMATIC
- SPRITE_TYPE_DYNAMIC
Here is an exmaple of SPRITE_TYPE_DYNAMIC:
'This is showing SPRITE_TYPE_DYNAMIC
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SetSpriteType_Dynamic", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
eyeSpriteX = 100
eyeSpriteY = 100
eyeSprite2X = 400
eyeSprite2Y = 125
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
SetSpriteSolid(eyeSprite, 1)
'When Sprites are created and physics activated there "type" is Dyanmic by default
'The sprites have collision and physics activated, so they can move and react to other bodies.
eyeSprite2 = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite2, eyeSprite2X, eyeSprite2Y)
SetSpriteSolid(eyeSprite2, 1)
While Not Key(K_ESCAPE)
SetSpriteLinearVelocity(eyeSprite, 80, 0)
Update()
WendHere is an example of SPRITE_TYPE_STATIC:
'This is showing SPRITE_TYPE_STATIC
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SetSpriteType_Static", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
eyeSpriteX = 100
eyeSpriteY = 100
eyeSprite2X = 400
eyeSprite2Y = 125
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
SetSpriteSolid(eyeSprite, 1)
'When Sprites are created and physics activated there "type" is Dyanmic by default
'The sprites have collision and physics activated, so they can move and react to other bodies.
eyeSprite2 = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite2, eyeSprite2X, eyeSprite2Y)
SetSpriteSolid(eyeSprite2, 1)
SetSpriteType(eyeSprite2, SPRITE_TYPE_STATIC) 'When a sprite is made solid nothing can move it
While Not Key(K_ESCAPE)
SetSpriteLinearVelocity(eyeSprite, 80, 0)
Update()
WendFinally here is an example of SPRITE_TYPE_KINEMATIC:
'This is showing SPRITE_TYPE_KINEMATIC
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SetSpriteType_Kinematic", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
eyeSpriteX = 100
eyeSpriteY = 100
eyeSprite2X = 400
eyeSprite2Y = 125
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
SetSpriteSolid(eyeSprite, 1)
SetSpriteType(eyeSprite, SPRITE_TYPE_KINEMATIC) 'KINEMATIC type makes the sprite able to be moved, but it does not react to dynamic bodies.
eyeSprite2 = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite2, eyeSprite2X, eyeSprite2Y)
SetSpriteSolid(eyeSprite2, 1)
While Not Key(K_ESCAPE)
SetSpriteLinearVelocity(eyeSprite, 80, 0)
Update()
WendSee also
- Function GetSpriteType(sprite)
Returns the collision body type of a sprite.
By default, sprites are dynamic when they are created.
Possible types returned:
- SPRITE_TYPE_STATIC(0)
- SPRITE_TYPE_KINEMATIC(1)
- SPRITE_TYPE_DYNAMIC(2)
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("GetSpriteType", winWidth, winHeight, isFullScreen, vSync)
pCanvas = OpenCanvas(200, 80, 0, 0, 200, 80, 1) 'Need to open a canvas for drawing the text
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM eye
DIM eyeW
DIM eyeH
eyeSpriteX = 100
eyeSpriteY = 100
eyeSprite2X = 400
eyeSprite2Y = 125
DIM font1
Font1 = LoadFont("DripOctober.ttf", 16)
SetFont(Font1)
SetColor(RGB(100, 200, 200))
eye = LoadImage("theEye.png")
GetImageSize(eye, eyeW, eyeH)
eyeSprite = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite, eyeSpriteX, eyeSpriteY)
SetSpriteSolid(eyeSprite, 1)
SetSpriteType(eyeSprite, SPRITE_TYPE_KINEMATIC)
'The flags for each type are SPRITE_TYPE_STATIC = 0
' SPRITE_TYPE_KINEMATIC = 1
' SPRITE_TYPE_DYNAMIC = 2
eyeSprite2 = CreateSprite(eye, eyeW, eyeH)
SetSpritePosition(eyeSprite2, eyeSprite2X, eyeSprite2Y)
SetSpriteSolid(eyeSprite2, 1)
SetSpriteType(eyeSprite2, SPRITE_TYPE_DYNAMIC)
While Not Key(K_ESCAPE)
ClearCanvas()
Canvas(sCanvas)
Canvas(pCanvas) 'change to the standard drawing canvas for drawing text
DrawText("Sprite on left type: " + STR$(GetSpriteType(eyeSprite)), 10, 30)
Update()
WendSee also
- Sub SetSpriteSource(sprite, img)
Changes the image source for a sprite frame sheet.
Note: This needs to be the same size as the current image source or you will have rendering issues.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("SetSpriteSource", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM frown
DIM frownW
DIM frownH
frowny1 = LoadImage("frowny1.png")
frowny2 = LoadImage("frowny2.png")
GetImageSize(frown, frownW, frownH)
frownSprite = CreateSprite(frown, frownW, frownH)
SetSpritePosition(frownSprite, 100, 100)
While Not Key(K_ESCAPE)
If KEY(K_SPACE) Then
SetSpriteSource(frownSprite, frowny2)
End If
Update()
WendSee also
- Function GetSpriteSource(sprite)
-
Returns the source image the sprite renders its frames from.
isFullScreen = false
vSync = true
winWidth = 640
winHeight = 480
canViewPortX = 0
canViewPortY = 0
OpenWindow("GetSpriteSource", winWidth, winHeight, isFullScreen, vSync)
sCanvas = OpenCanvasSpriteLayer(canViewPortX, canViewPortY, winWidth, winHeight)
Canvas(sCanvas)
DIM frown
DIM frownW
DIM frownH
DIM spSource$
frowny1 = LoadImage("frowny1.png")
frowny2 = LoadImage("frowny2.png")
GetImageSize(frown, frownW, frownH)
frownSprite = CreateSprite(frown, frownW, frownH)
SetSpritePosition(frownSprite, 100, 100)
While Not Key(K_ESCAPE)
If Key(K_SPACE) Then
SetSpriteSource(frownSprite, frowny2)
End If
Update()
spSource$ = STR$(GetSpriteSource(frown))
Print spSource$
WendSee also
- Function GetSpriteCollision(spriteA, spriteB)
Returns TRUE if two sprites collide.
- Function SpriteExists(sprite)
Returns true if the sprite id is a valid sprite id.
- Sub SetSpriteColorMod(sprite, color)
Sets the color modulation of a sprite.
- Sub SetSpriteAlpha(sprite, alpha)
Sets the alpha value of a sprite.
- Function GetSpriteColorMod(sprite)
- Function GetSpriteAlpha(sprite)
Returns the alpha value of a sprite.
- Function AddSpriteChild(sprite, child_sprite, x, y)
Adds a sprite as a child to another sprite. Child sprite is offset by given position.
See also
- Sub RemoveSpriteChild(sprite, child_index)
Removes the child at the given index from the parent sprite.
See also
- Function GetSpriteChildIndex(sprite, child_sprite)
Returns the index a child_sprite is stored at in a parent sprite.
Returns -1 if child_sprite is not a child of sprite.