// Project: Phillips74
// Created: 2020-05-21
// show all errors
SetErrorMode(2)
// set window properties
SetWindowTitle( "Phillips74" )
SetWindowSize( 1024, 768, 0 )
SetWindowAllowResize( 1 ) // allow the user to resize the window
// set display properties
SetVirtualResolution( 1024, 768 ) // doesn't have to match the window
SetOrientationAllowed( 1, 1, 1, 1 ) // allow both portrait and landscape on mobile devices
SetSyncRate( 30, 0 ) // 30fps instead of 60 to save battery
SetScissor( 0,0,0,0 ) // use the maximum available screen space, no black borders
UseNewDefaultFonts( 1 ) // since version 2.0.22 we can use nicer default fonts
SetClearColor(0, 180, 240)
interpolation as integer []
interpolation.insert(TweenBounce())
interpolation.insert(TweenEaseIn1())
interpolation.insert(TweenEaseIn2())
interpolation.insert(TweenEaseOut1())
interpolation.insert(TweenEaseOut2())
interpolation.insert(TweenLinear())
interpolation.insert(TweenOvershoot())
interpolation.insert(TweenSmooth1())
interpolation.insert(TweenSmooth2())
//--------------------------------------------------------------------------------------
type class_circle
id as integer
x as float
y as float
width as float
height as float
tween1 as integer
tween2 as integer
tween_state as integer
interpolation as integer
size as float
endtype
global circle as class_circle
//--------------------------------------------------------------------------------------
//Create Sprite
circle.id=CreateSprite(0)
SetSpriteSize(circle.id, 100, 100)
SetSpritePositionByOffset(circle.id, GetVirtualWidth()/2, GetVirtualHeight()/2)
circle.x=GetSpriteXByOffset(circle.id)
circle.y=GetSpriteYByOffset(circle.id)
circle.width=GetSpriteWidth(circle.id)
circle.height=GetSpriteWidth(circle.id)
circle.tween_state=1
//--------------------------------------------------------------------------------------
//Tween
circle.size=20
circle.interpolation=interpolation[5] //0 to 8
circle.tween1=CreateTweenSprite(0.5)
SetTweenSpriteSizeX(circle.tween1, circle.width, circle.width-circle.size, circle.interpolation)
SetTweenSpriteSizeY(circle.tween1, circle.height, circle.height-circle.size, circle.interpolation)
SetTweenSpriteXByOffset(circle.tween1, circle.x, circle.x, TweenLinear())
circle.tween2=CreateTweenSprite(0.5)
SetTweenSpriteSizeX(circle.tween2, circle.width-circle.size, circle.width, circle.interpolation)
SetTweenSpriteSizeY(circle.tween2, circle.height-circle.size, circle.height, circle.interpolation)
SetTweenSpriteXByOffset(circle.tween2, circle.x, circle.x, TweenLinear())
PlayTweenSprite(circle.tween1, circle.id, 0.0)
//--------------------------------------------------------------------------------------
do
CircleTweenUpdate(circle)
UpdateAllTweens(GetFrameTime())
Sync()
loop
//--------------------------------------------------------------------------------------
function CircleTweenUpdate( obj ref as class_circle)
if GetTweenSpritePlaying(obj.tween1, obj.id) = 0 and obj.tween_state=1
obj.tween_state=2
PlayTweenSprite(obj.tween2, obj.id, 0.2)
elseif GetTweenSpritePlaying(obj.tween2, obj.id) = 0 and obj.tween_state=2
obj.tween_state=1
PlayTweenSprite(obj.tween1, obj.id, 0.2)
endif
endfunction