;-Sprite Enumeration #Spr_Black #Spr_White #Spr_Cursor #Spr_SelectedBackground #Spr_DelCursor #Spr_BenchA #Spr_BenchB #Spr_BenchC #Spr_BckgrndFadeUp #Spr_BckgrndFadeDown #Spr_UD #Spr_LR #Spr_RD #Spr_DL #Spr_LU #Spr_UR #Spr_Cross #Spr_Locked #Spr_Pointer #Spr_Health #Spr_Timer #Spr_EarthBreak #Spr_Dead #Spr_JewelBlue #Spr_JewelRed #Spr_JewelGreen #Spr_Eye #Spr_Hammer #Spr_Remove #Spr_Gravity #Spr_Freeze #Spr_X2 #Spr_X4 #Spr_X8 #Spr_Logo #Spr_Sc #Spr_Remix #Spr_Thy #Spr_Frozen #Spr_Vinyl #Spr_FontA #Spr_FontA_End = #Spr_FontA+90 #Spr_FontB #Spr_FontB_End= #Spr_FontB+90 #Spr_End EndEnumeration Structure GameSprite SpriteId.i ClipX.l ClipY.l ClipWidth.l ClipHeight.l DisplayWidth.f DisplayHeight.f EndStructure Global Dim GameSprite.GameSprite(#Spr_End) Procedure RecordSprite(SpriteNo.l,SpriteId.i,ClipX.l,ClipY.l,ClipWidth.l,ClipHeight.l,DisplayWidth.f, DisplayHeight.f) GameSprite(SpriteNo)\SpriteId=SpriteId GameSprite(SpriteNo)\ClipX=ClipX GameSprite(SpriteNo)\ClipY=ClipY GameSprite(SpriteNo)\ClipWidth=ClipWidth GameSprite(SpriteNo)\ClipHeight=ClipHeight GameSprite(SpriteNo)\DisplayWidth=DisplayWidth GameSprite(SpriteNo)\DisplayHeight=DisplayHeight EndProcedure Procedure DisplayClipSprite(SpriteNo.i,X.l,Y.l,Opacity.l=255,GameScale.f=1,BckWidth.f=-1,BckHeight.f=-1) If IsSprite(GameSprite(SpriteNo)\SpriteId) ClipSprite(GameSprite(SpriteNo)\SpriteId,GameSprite(SpriteNo)\ClipX,GameSprite(SpriteNo)\ClipY,GameSprite(SpriteNo)\ClipWidth,GameSprite(SpriteNo)\ClipHeight) If BckWidth=-1 BckWidth=GameSprite(SpriteNo)\DisplayWidth*GameScale*GUI\BlockSize EndIf If BckHeight=-1 BckHeight=GameSprite(SpriteNo)\DisplayHeight*GameScale*GUI\BlockSize EndIf ZoomSprite(GameSprite(SpriteNo)\SpriteId,BckWidth,BckHeight) DisplayTransparentSprite(GameSprite(SpriteNo)\SpriteId,X,Y,Opacity) Else Debug "Error with sprite" EndIf EndProcedure Procedure LoadSpriteSheet() Protected n.l CompilerIf #UsePackFile=#True CatchSpriteFromPackage(0,"SpriteSheetx192.png") CompilerElse LoadSprite(0,"Datas\SpriteSheetx192.png",#PB_Sprite_AlphaBlending) CompilerEndIf If IsSprite(0) Protected SpriteSize.l=SpriteWidth(0)/10 For n=0 To 9 RecordSprite(#Spr_Black+n,0,n*SpriteSize,0,SpriteSize,SpriteSize,1,1) Next ;Piepeline For n=0 To 7 RecordSprite(#Spr_UD+n,0,n*SpriteSize,SpriteSize,SpriteSize,SpriteSize,1,1) Next ;Pointer RecordSprite(#Spr_Pointer,0,8*SpriteSize,SpriteSize,SpriteSize,SpriteSize,1,1) ; Bonus For n=0 To 9 RecordSprite(#Spr_Health+n,0,n*SpriteSize,SpriteSize*2,SpriteSize,SpriteSize,1,1) Next For n=0 To 5 RecordSprite(#Spr_Gravity+n,0,n*SpriteSize,SpriteSize*3,SpriteSize,SpriteSize,1,1) Next RecordSprite(#Spr_Logo,0,0,SpriteSize*4,SpriteSize*7,SpriteSize*2,7,2) RecordSprite(#Spr_Remix,0,0,SpriteSize*6,SpriteSize*4,SpriteSize,4,1) RecordSprite(#Spr_Thy,0,SpriteSize*7,SpriteSize*3,SpriteSize*3,SpriteSize*3,3,3) RecordSprite(#Spr_Frozen,0,0,SpriteSize*7,SpriteSize*8,SpriteSize,8,1) RecordSprite(#Spr_Sc,0,0,SpriteSize*8,SpriteSize*3,SpriteSize*2,3,2) RecordSprite(#Spr_Vinyl,0,SpriteSize*8,SpriteSize*6,SpriteSize*2,SpriteSize*4,2,4) Else MessageRequester("Error", "Can't Load SpriteSheet ", 0) End EndIf EndProcedure ; IDE Options = PureBasic 6.00 LTS (Windows - x64) ; CursorPosition = 117 ; FirstLine = 59 ; Folding = - ; EnableXP