Code archives/Graphics/Xilvan Design's Sprite Lib

This code has been declared by its author to be Public Domain code.

Download source code

Xilvan Design's Sprite Lib by Alex. L.2016
Hi everybody,

Since 2010, found in Candy World Adventures IV,
the SprMesh.b3d file is required to
launch this Spritelib.

With 2D sprites this
Libs will enchant you!

It can do high-definition, big, animate,
and show as many sprites as you want.

Since the beguining,
it was full free!

Friendly,
Alex. L.,
Xilvan Design
Const Max_Spr = 16384

Global iSprite_ = -1

Dim Sprite_(Max_Spr)
Dim Sprite_Tex_(Max_Spr)
Dim Sprite_(Max_Spr)
Dim Sprite_Blend_(Max_Spr)
Dim Sprite_piv(Max_Spr)
Dim Sprite_Order_(Max_Spr)
Dim Spr_x#(Max_Spr)
Dim Spr_y#(Max_Spr)
Dim Spr_Angle(Max_Spr)
Dim Spr_Dir(Max_Spr)
Dim Spr_dx(Max_Spr)
Dim Spr_t(Max_Spr)
Dim Spr_tx#(Max_Spr)
Dim Spr_ty#(Max_Spr)
Dim Spr_bAnim(Max_Spr)
Dim Spr_Path$(Max_Spr)
Dim Spr_face(Max_Spr)
Dim Tex_Filter#(Max_Spr)
Dim Sprite_a#(Max_Spr)
Dim Spr_(Max_Spr)

Global Sprite2_
Global BaseTuiles_
Global SprPack = LoadMesh("Data\SprMesh.b3d")
Global Path$
Global iil#

iil# = 1.57657

Const Max_P_ = 2600
Dim P_(Max_P_)

Global iPart_ = 0
Global dimResize# = 640.0/Float(gx)


P_(0) = LoadAnimImage_("Images\Tuiles\Blank.bmp",32,32,0,1,11)

For i = 1 To Max_P_ - 1

	P_(i) = CopyEntity_(P_(0))

	PositionEntity Sprite_(P_(i)),-2048,-2048,1.01
	HideEntity Sprite_(P_(i))

Next


HideEntity Sprite_(P_(0))


Function LoadAnimImage_(Sprite$,tttx#,ttty#,dx,taille,flag_=1,texture_=0)

	iSprite_ = iSprite_ + 1
	
	Path$ = Sprite$
	Sprite_(iSprite_) = CopyMesh(SprPack)
	Spr_Path$(iSprite_) = Sprite$
	Sprite_Tex_(iSprite_) = LoadAnimTexture(Sprite$,flag_,Int(tttx#),Int(ttty#),dx,taille)

	EntityTexture Sprite_(iSprite_),Sprite_Tex_(iSprite_)
	
	texture_ = Sprite_Tex_(iSprite_)
	Tex_Filter(iSprite_) = Tex_Filter(theSprite_)
	
	Sprite_Blend_(iSprite_) = 1

	TextureBlend Sprite_Tex_(iSprite_),2
	TextureFilter Sprite_Tex_(iSprite_),Tex_Filter(iSprite_)
	
	EntityBlend_ iSprite_,Sprite_Blend_(iSprite_)
	EntityParent Sprite_(iSprite_),parent_
	EntityFX Sprite_(iSprite_),1
	
	Spr_tx#(iSprite_) = tttx#
	Spr_ty#(iSprite_) = ttty#
	
	Tex_Filter(iSprite_) = flag_
	ScaleEntity Sprite_(iSprite_),(Spr_tx#(iSprite_)/131.0)*dimResize#,(Spr_ty#(iSprite_)/128.9)*dimResize#,1

	Spr_bAnim(iSprite_) = True
	EntityAlpha_ iSprite_,0
	EntityOrder_ iSprite_,-1024
	PositionEntity Sprite_(iSprite_),-2048,-2048,1.01
	HideEntity Sprite_(iSprite_)
	Return iSprite_
	
End Function


Function LoadImage_(Sprite$,tttx#=256,ttty#=256,flag_=4,flag2 = 2)

	iSprite_ = iSprite_ + 1
	
	Sprite_(iSprite_) = CopyMesh(SprPack)
	Path$ = Sprite$
	Spr_Path$(iSprite_) = Sprite$
	Sprite_Tex_(iSprite_) = LoadTexture(Sprite$,flag_)
	EntityTexture Sprite_(iSprite_),Sprite_Tex_(iSprite_)

	Tex_Filter(iSprite_) = Tex_Filter(theSprite_)
	
	Sprite_Blend_(iSprite_) = 1
	TextureBlend Sprite_Tex_(iSprite_),flag2
	TextureFilter Sprite_Tex_(iSprite_),Tex_Filter(iSprite_)
	
	EntityBlend_ iSprite_,Sprite_Blend_(iSprite_)
	EntityParent Sprite_(iSprite_),parent_
	EntityFX Sprite_(iSprite_),1
	
	Spr_tx#(iSprite_) = tttx#
	Spr_ty#(iSprite_) = ttty#
	
	ScaleEntity Sprite_(iSprite_),(Spr_tx#(iSprite_)/131.0)*dimResize#,(Spr_ty#(iSprite_)/128.8)*dimResize#,1
	Tex_Filter(iSprite_) = flag_
	Spr_bAnim(iSprite_) = False
	EntityOrder_ iSprite_,-1024
	EntityBlend_ iSprite,Sprite_Blend_(theSprite_)
	PositionEntity Sprite_(iSprite_),-2048,-2048,1.01
	HideEntity Sprite_(iSprite_)
	Return iSprite_

End Function


Function CopyEntity_(theSprite_,parent_=0)

	iSprite_ = iSprite_ + 1

	Path$ = Spr_Path$(theSprite_)
	Spr_Path$(iSprite_) = Spr_Path$(theSprite_)
	Sprite_Tex_(iSprite_) = Sprite_Tex_(theSprite_)
	Sprite_(iSprite_) = CopyMesh(SprPack)
	Sprite_Blend_(iSprite_) = Sprite_Blend_(theSprite_)
	Tex_Filter(iSprite_) = Tex_Filter(theSprite_)
	
	Sprite_Blend_(iSprite_) = 1

	TextureBlend Sprite_Tex_(iSprite_),2
	TextureFilter Sprite_Tex_(iSprite_),Tex_Filter(iSprite_)
	
	EntityBlend_ iSprite_,Sprite_Blend_(iSprite_)
	
	EntityTexture Sprite_(iSprite_),Sprite_Tex_(iSprite_)
	EntityParent Sprite_(iSprite_),parent_
	EntityFX Sprite_(iSprite_),1
	
	Spr_tx#(iSprite_) = Spr_tx#(theSprite_)
	Spr_ty#(iSprite_) = Spr_ty#(theSprite_)
	
	Spr_bAnim(iSprite_) = Spr_bAnim(theSprite_)
	ScaleEntity Sprite_(iSprite_),(Spr_tx#(iSprite_)/131.0)*dimResize#,(Spr_ty#(iSprite_)/127.8)*dimResize#,1
	EntityOrder_ iSprite_,-1024
	PositionEntity Sprite_(iSprite_),-2048,-2048,1.01
	HideEntity Sprite_(iSprite_)
	Return iSprite_

End Function


Function EntityBlend_(theSprite_,blend2_)

	Sprite_Blend_(theSprite_) = blend2_

	EntityBlend Sprite_(theSprite_),blend2_

End Function


Function ScaleSprite_(theSprite_,ScaleX#,ScaleY#)

	ScaleEntity Sprite_(theSprite_),(ScaleX#/131.0)*dimResize#,(ScaleY#/127.9)*dimResize#,1.01

End Function


Function ScaleSprite2_(theSprite_,ScaleX#,ScaleY#)

	ScaleEntity Sprite_(theSprite_),(ScaleX#/138.0)*dimResize#,(ScaleY#/138.0)*dimResize#,1.01

End Function


Function RotateSprite_(theSprite_,angle_,Cam=0)

	Sprite_Dir = EntityRoll(Sprite_(theSprite_))

	RotateEntity Sprite_(theSprite_),EntityPitch(Came),EntityYaw(Came),angle_

End Function


Function RotateEntity_(theSprite_,ax#,ay#,az#)

	RotateEntity Sprite_(theSprite_),ax#,ay#,az#

End Function


Function TurnSprite_(theSprite_,angle_)

	TurnEntity Sprite_(theSprite_),EntityPitch(Came),EntityYaw(Came),angle_

	Sprite_Dir = EntityRoll(Sprite_(theSprite_))

End Function


Function TurnEntity_(theSprite_,dx#,dy#,dz#)

	TurnEntity Sprite_(theSprite_),dx#,dy#,dz#

End Function


Function SpriteViewMode_(theSprite_,viewmode_)		

	If theSprite_ < Max_Spr Then

		Spr_face(theSprite_) = ((viewmode_ = Sprite_(theSprite_)))

	End If

End Function


Function DrawImage_(theSprite_,x,y,anim=-1)

	;If KeyDown(200) Then iil# = iil# - 0.00001 : Delay 10
	;If KeyDown(208) Then iil# = iil# + 0.00001 : Delay 10
	
	PositionEntity Sprite_(theSprite_),(((Float(x+DecalX)*0.005)/iil#)*dimResize#)-1,(1.20-((Float(y+DecalY)*0.005)/iil#)*dimResize#)-0.3,1.01
	Spr_x#(theSprite_) = x
	Spr_y#(theSprite_) = y

	If anim > -1 Then

		EntityTexture Sprite_(theSprite_),Sprite_Tex_(theSprite_),anim,0

	End If

	ShowEntity Sprite_(theSprite_)

End Function


Function DrawImage2_(theSprite_,x,y,anim=-1)

	If KeyDown(200) Then iil# = iil# - 0.00001 : Delay 10
	If KeyDown(208) Then iil# = iil# + 0.00001 : Delay 10
	
	PositionEntity Sprite_(theSprite_),(((Float(x+DecalX)*0.0047)/iil#)*dimResize#)-1,(1.20-((Float(y+DecalY)*0.0047)/iil#)*dimResize#)-0.3,1.01

	Spr_x#(theSprite_) = x
	Spr_y#(theSprite_) = y

	If anim > -1 Then

		EntityTexture Sprite_(theSprite_),Sprite_Tex_(theSprite_),anim,0

	End If

	ShowEntity Sprite_(theSprite_)

End Function


Function AnimSprite_(theSprite_,Anim = 0)

	DrawImage_ theSprite_,Spr_x#(theSprite_),Spr_y#(theSprite_),Anim

End Function

Function DrawTexture_(theSprite_,SpriteTex_,x,y,tx,ty,r=255,g=255,b=255)

	EntityTexture_ theSprite_,SpriteTex_
	Sprite_Tex_(theSprite_) = SpriteTex_
	DrawImage_ theSprite_,x,y
	EntityColor_ theSprite_,r,g,b
	EntityBlend_ theSprite_,1
	ScaleSprite_ theSprite_,tx,ty
	EntityAlpha_ theSprite_,1
	Spr_bAnim(theSprite_) = True

	ShowEntity Sprite_(theSprite_)

End Function

Function DrawAnimTexture_(theSprite_,SpriteTex_,x,y,tx,ty,Anim=0,r=255,g=255,b=255)

	EntityTexture_ theSprite_,SpriteTex_,Anim
	Sprite_Tex_(theSprite_) = SpriteTex_
	DrawImage_ theSprite_,x,y,Anim
	EntityColor_ theSprite_,r,g,b
	EntityBlend_ theSprite_,1
	ScaleSprite_ theSprite_,tx,ty
	EntityAlpha_ theSprite_,1
	Spr_bAnim(theSprite_) = True

	ShowEntity Sprite_(theSprite_)

End Function

Function EntityTexture_(theSprite_,SpriteTex_,anim=0,id=0)

	EntityTexture Sprite_(theSprite_),SpriteTex_,anim,id

	Spr_bAnim(theSprite_) = True

End Function


Function MidHandle_(Sprite)

	;

End Function


Function GetTexture_(theSprite_)

	Local brush=GetEntityBrush(Sprite_(theSprite_))
	Local tex=GetBrushTexture(brush)

	Return tex

End Function


Function EntityOrder_(theSprite_,order_=0)

	EntityOrder Sprite_(theSprite_),order_

End Function


Function EntityAlpha_(theSprite_,alpha#=0.0)

	EntityAlpha Sprite_(theSprite_),alpha#

End Function


Function EntityColor_(theSprite_,cr,cg,cb)

	EntityColor Sprite_(theSprite_),cr,cg,cb

End Function


Function EntityFX_(theSprite_,fx_)

	EntityFX Sprite_(theSprite_),fx_

End Function


Function MoveSprite_(theSprite_,dx#,dy#,dz#)

	MoveEntity Sprite_(theSprite_),dx#,dy#,dz#

End Function


Function TranslateSprite_(theSprite_,dx#,dy#,dz#)

	TranslateEntity Sprite_(theSprite_),dx#,dy#,dz#

End Function


Function EntityParent_(theSprite_,parent_)

	EntityParent Sprite_(theSprite_),parent_ 

End Function


Function TextureBlend_(theSprite_,value_)

	TextureBlend Sprite_Tex_(theSprite_),value_

End Function


Function HideEntity_(TheSprite_)

	HideEntity Sprite_(TheSprite_)

End Function


Function ShowEntity_(TheSprite_)

	ShowEntity Sprite_(TheSprite_)

End Function

Comments

None.

Code Archives Forum