TGC Codebase Backup



GetAngle by Steve Ancell

7th Oct 2011 17:09
Summary

A simple function that returns an angle between two points. Additional info: Download the attached "arrow.PNG" file and place it in the "media" directory of the project that you pa



Description



Code
                                    ` This code was downloaded from The Game Creators
                                    ` It is reproduced here with full permission
                                    ` http://www.thegamecreators.com
                                    
                                    SetVirtualResolution(600, 800)


LoadImage(1, "arrow.PNG")
CreateSprite(1, 1)
SetSpriteOffset(1, GetImageWidth(1) / 2, GetImageHeight(1) / 2)
SetSpritePositionByOffset(1, GetVirtualWidth() / 2, GetVirtualHeight() / 2)


do
    if GetRawKeyPressed(27) = 1 or GetPointerState() = 1
        CleanUp()
        exit
    endif

    UpdateSprite()

    sync()
loop


function GetAngle(x1, y1, x2, y2)
    result = ATanFull(x1 - x2, y1 - y2)
endfunction result


function UpdateSprite()
    if GetRawKeyState(37) = 1
        SetSpritePositionByOffset(1, GetSpriteXByOffset(1) - 1, GetSpriteYByOffset(1))
    endif

    if GetRawKeyState(38) = 1
        SetSpritePositionByOffset(1, GetSpriteXByOffset(1), GetSpriteYByOffset(1) - 1)
    endif

    if GetRawKeyState(39) = 1
        SetSpritePositionByOffset(1, GetSpriteXByOffset(1) + 1, GetSpriteYByOffset(1))
    endif

    if GetRawKeyState(40) = 1
        SetSpritePositionByOffset(1, GetSpriteXByOffset(1), GetSpriteYByOffset(1) + 1)
    endif

    angle = GetAngle(GetPointerX(), GetPointerY(), GetSpriteX(1), GetSpriteY(1))
    SetSpriteAngle(1, angle)
endfunction


function CleanUp()
    DeleteSprite(1)
    DeleteImage(1)
endfunction