I've had a sprite problem recently. I created a "bullethole" sprite, and the loading works fine and everything, but it doesn't place itself correctly.
I used this code:
;------------------------------------START-UP SETTINGS-------------------------------------------
Graphics3D 800,600,16,1
Print "Starting up..."
Print ""
ldf = LoadFont("Courier New", 14, 0, 0, 0)
SetFont ldf
WBuffer True
SetBuffer BackBuffer()
AppTitle "Operation 600"
SeedRnd MilliSecs()
AutoMidHandle True
;-------------------------------END OF START-UP SETTINGS-----------------------------------------
;-------------------------------------------GLOBALS-CONSTANTS------------------------------------
Print "Reticulating splines..."
;CAMERA
Global cam_x#,cam_z#,cam_pitch#,cam_yaw# ; Current
Global dest_cam_x#,dest_cam_z#,dest_cam_pitch#,dest_cam_yaw# ; Destination
;GUN KICK
Global kick = False
Global kickamount = 0
Global kickmaxamount = 30
Global kickspeed# = 1
Global delta = 0
Global z_memo#
;MISC
Global numberofenemies = 10
Global ButtonHit$
Global menu
Global level
Global start
Global levelname$ = "1 - Rural"
;TIMERS
Global timer = MilliSecs()
Global uzitimer = MilliSecs()
Global lazertimer = MilliSecs()
Global machineshottimer = MilliSecs()
;MODIFIERS
Global prone = False
Global time = 100
Global health = 100
Global kills = 0
Global info$
Global logic$
Global n = -200
Global ammo = 100
Global reloads = 6
Global gun = 1
Global help = 0
;COLLISION CONSTANTS
Const PLAYER_COL= 1
Const LEVEL_COL = 2
Const ENEMY_COL = 3
Const BULLET_COL= 4
Const INVISICOL = 5
Const CANNONCOL = 6
Const BARN__COL = 7
Const HAYCOL = 8
Const HAY2COL = 9
Const PLANECOL = 10
;----------------------------------------END OF GLOBALS-CONSTANTS---------------------------------
;---------------------------------------------TYPES-----------------------------------------------
Print "Creating characters..."
Print " BULLET"
;The bullet type
Type bullettype
Field entityhandle
Field from
End Type
Print " ENEMY"
;The enemy type
Type badguytype
Field entityhandle
Field state
Field light
End Type
Print " WEAPON"
;The weapon type
Type weapon
Field category
Field index
Field offsetx#
Field offsety#
Field offsetZ#
Field entityhandle
Field gotit
Field ammo
End Type
Print " PLAYER"
;The player type
Type player
Field entityhandle
Field activeweaponindex
Field gotweapon
Field weapon
End Type
Print " PLANE"
;the plane type
Type plane
Field entityhandle
Field x, y, z
Field speed
Field destination
End Type
Print " PARTICLE"
Print "Rendering particles..."
;the particle type
Type particle
Field mesh, name$, alpha#
Field vX#, vY#, vZ#
End Type
Print " BULLETHOLE"
Print "Rendering bulletholes..."
Type hole
Field entityhandle
Field alpha#
End Type
;--------------------------------------END OF TYPES---------------------------------------------------
;---------------------------LIGHTS-LEVEL-CAMERA-PLAYER SET-UP-----------------------------------------
Print "Generating playing area..."
Print "Creating camera..."
;Lights, camera, and player...
Global camera = CreateCamera()
EntityRadius camera, 1.5, 2.5
PositionEntity camera, 0, 0, 0
;TranslateEntity camera, 0, -2, 0
;CameraFogRange camera, 1, 10
;CameraFogMode camera, 1
;CameraFogColor camera, 100,100,150
Global guntype$
Print "Rendering level..."
;Level
Global level1 = LoadMesh("levels\nsabase.b3d")
PositionEntity level1, 0, 0, 0
ScaleEntity level1, 2, 2, 2
Print "Generating lights..."
;lights
light=CreateLight()
LightColor light, 100,100,255
;--------------------------END OF LIGHTS-LEVEL-CAMERA-PLAYER SET-UP-----------------------------------
;-----------------------------------------WEAPON SET-UP-----------------------------------------------
Print "Creating arms..."
;pistol (gun1)
Global pistol.weapon = New weapon
pistol\category = "C90-KL"
Print "Setting weapon statistics..."
pistol\index = 1
pistol\offsetx = .95
pistol\offsety = -.84
pistol\offsetz = 1.6
pistol\entityhandle = LoadMesh("weapons\pistol1\pistol1.x",camera)
pistol\gotit = True
;lazer (gun2)
Global lazer.weapon = New weapon
lazer\category = "LAS-74"
lazer\index = 2
lazer\offsetx = .95
lazer\offsety = -.84
lazer\offsetz = 1.8
lazer\entityhandle = LoadMesh("weapons\lazer\lazer.3ds", camera)
lazer\gotit = False
;setup
ScaleEntity pistol\entityhandle, 2.5, 2.5, 2.5
ScaleEntity lazer\entityhandle, .2, .2, .2
TranslateEntity pistol\entityhandle, pistol\offsetx, pistol\offsety, pistol\offsetz
TranslateEntity lazer\entityhandle, lazer\offsetx, lazer\offsety, lazer\offsetz
RotateEntity pistol\entityhandle, 0, 0, 0
For w.weapon = Each weapon
If w\gotit = False
HideEntity w\entityhandle
EndIf
Next
;-------------------------------END OF WEAPON SET-UP--------------------------------------------------
;--------------------------------MISC MODEL SET-UP----------------------------------------------------
Print "Loading miscullaneous models..."
Print "Generating enemies..."
Global badguymesh = CreateSphere()
Print "Rendering bullets..."
Global bulletmesh = CreateSphere()
RotateMesh bulletmesh, 90, 0, 0
ScaleEntity bulletmesh, .1, .1, .1
Print "Performing misc. operations..."
HideEntity bulletmesh
HideEntity badguymesh
EntityType camera,PLAYER_COL
EntityType level1, LEVEL_COL
EntityType badguymesh, ENEMY_COL
EntityType bulletmesh, BULLET_COL
EntityAlpha bulletmesh, 1
Print "Loading fonts..."
;fonts
Global font=LoadFont("Courier New", 14, 0, 0, 0)
Global bigfont=LoadFont("Courier New",50, 0, 0, 0)
;------------------------------END OF MISC MODEL SET-UP----------------------------------------------
;--------------------------------------2D PICTURE SETUP----------------------------------------------
Print "Loading sprites..."
Print "Loading explosion sprite..."
Global copySprite = LoadSprite("sprites\flare.bmp")
Print "Loading bullethole sprite..."
Global bullethole = LoadSprite("sprites\flare.bmp")
Print "Loading crosshairs sprite..."
Global hairs = LoadImage("sprites\pistolhairs.bmp")
Print "Creating menu images..."
Global title = LoadImage("menu\title.png")
Global bottom = LoadImage("menu\bottomimage.png")
HideEntity copySprite
HideEntity bullethole
;----------------------------------END OF 2D PICTURE SETUP-------------------------------------------
;-------------------------------------SOUND SET-UP---------------------------------------------------
Print "Loading sounds..."
Print "Rendering shots..."
shoot = LoadSound("sounds\shoot.mp3")
Print "Loading machine gun..."
machineshoot = LoadSound("sounds\machineshoot.mp3")
Print "Loading 'reload' sound..."
reload1 = LoadSound("sounds\reload05.wav")
Print "Loading music..."
music = PlayMusic("sounds\Metal Keys.mp3")
StopChannel menumusic
;-------------------------------------END OF SOUND SETUP---------------------------------------------
;--------------------------------OTHER SET-UP--------------------------------------------------------
Print "Rendering enemy forces..."
;Create Enemies
For iter = 1 To 10
badguy.badguytype = New badguytype
badguy\entityhandle = CopyEntity(badguymesh)
PositionEntity badguy\entityhandle, Rnd(200,-200), 15, Rnd(171,-171)
badguy\state = Rnd(1,2)
EntityType badguy\entityhandle, 3
EntityRadius badguy\entityhandle, .7
Print iter
Next
;Place player
Print "Creating player..."
PositionEntity camera, 0, 0, 0
Print "Creating collisions..."
;Collisions! Everybody likes collisions!
Collisions PLAYER_COL, LEVEL_COL, 2, 3 ;player to level
Collisions ENEMY_COL, LEVEL_COL, 2, 3 ;badguy to level
Collisions BULLET_COL, LEVEL_COL, 2, 1 ;bullet to level
Collisions BULLET_COL, ENEMY_COL, 2, 1 ;bullet to badguy
Collisions PLAYER_COL, INVISICOL, 2, 3 ;player to floor
Collisions PLAYER_COL, PLANECOL, 2, 1 ;player to plane
Collisions BULLET_COL, PLANECOL, 2, 1 ;bullet to plane
;----------------------------------------END OF OTHER SET-UP---------------------------------------------
;-----------------------------------------------MAIN LOOP------------------------------------------------
Print "Starting game..."
SetFont font
PointEntity camera, level1
Global machinetimer = MilliSecs()
Global startlogic$ = "game"
While Not KeyHit(1) Or Collisions
UpdateLogic(startlogic$)
info$ = ""
Wend
;---------------------------------------------------END OF MAIN LOOP--------------------------------------
;End the game
End
;----------------------------------------------------FUNCTIONS---------------------------------------------
;CreateSkyBox()
;this function creates the skybox for the game
Function CreateSkyBox()
mesh = CreateMesh()
;front face
brush = LoadBrush("sprites\Sky\brightsky_FR.png",49)
surface = CreateSurface(mesh,brush)
AddVertex surface,-1,+1,-1,0,0
AddVertex surface,+1,+1,-1,1,0
AddVertex surface,+1,-1,-1,1,1
AddVertex surface,-1,-1,-1,0,1
AddTriangle surface,0,1,2
AddTriangle surface,0,2,3
FreeBrush brush
;right face
brush = LoadBrush("sprites\Sky\brightsky_LF.png",49)
surface = CreateSurface(mesh,brush)
AddVertex surface,+1,+1,-1,0,0
AddVertex surface,+1,+1,+1,1,0
AddVertex surface,+1,-1,+1,1,1
AddVertex surface,+1,-1,-1,0,1
AddTriangle surface,0,1,2
AddTriangle surface,0,2,3
FreeBrush brush
;back face
brush = LoadBrush("sprites\Sky\brightsky_BK.png",49)
surface = CreateSurface(mesh,brush)
AddVertex surface,+1,+1,+1,0,0
AddVertex surface,-1,+1,+1,1,0
AddVertex surface,-1,-1,+1,1,1
AddVertex surface,+1,-1,+1,0,1
AddTriangle surface,0,1,2
AddTriangle surface,0,2,3
FreeBrush brush
;left face
brush = LoadBrush("sprites\Sky\brightsky_RT.png",49)
surface = CreateSurface(mesh,brush)
AddVertex surface,-1,+1,+1,0,0
AddVertex surface,-1,+1,-1,1,0
AddVertex surface,-1,-1,-1,1,1
AddVertex surface,-1,-1,+1,0,1
AddTriangle surface,0,1,2
AddTriangle surface,0,2,3
FreeBrush brush
;top face
brush = LoadBrush("sprites\Sky\brightsky_UP.png",49)
surface = CreateSurface(mesh,brush)
AddVertex surface,-1,+1,+1,0,1
AddVertex surface,+1,+1,+1,0,0
AddVertex surface,+1,+1,-1,1,0
AddVertex surface,-1,+1,-1,1,1
AddTriangle surface,0,1,2
AddTriangle surface,0,2,3
FreeBrush brush
;bottom face
brush = LoadBrush("sprites\Sky\brightsky_DN.png",49)
surface = CreateSurface(mesh,brush)
AddVertex surface,-1,-1,-1,1,0
AddVertex surface,+1,-1,-1,1,1
AddVertex surface,+1,-1,+1,0,1
AddVertex surface,-1,-1,+1,0,0
AddTriangle surface,0,1,2
AddTriangle surface,0,2,3
FreeBrush brush
ScaleMesh mesh,400,400,400
FlipMesh mesh
EntityFX mesh,1 ; make fullbright
Return mesh
End Function
;UpdateLogic()
;determines if it is menu or game
Function UpdateLogic(logic$)
If logic$ = "menu"
ClsColor 0, 0, 0
Cls
UpdateMenu()
RenderWorld
UpdateWorld
Flip
ElseIf logic$ = "game"
UpdateCamera()
UpdateShoot()
UpdateBullets()
UpdateWorld
UpdateParticles()
UpdateEnemies()
UpdateMiscActions()
;draw crosshairs
DrawImage hairs, 400, 310
RenderWorld
UpdateGUI()
Flip
;gravity
TranslateEntity camera, 0, -0.2, 0
EndIf
End Function
;Ititi
;Quit()
;ends the game
Function Quit()
SetFont bigfont
SetGammaRed(50)
Color 0, 500, 500
Text 400, 300, "YOU ARE DEAD", True, True
Flip
Delay 3000
End
End Function
;GAMMA FUNCTIONS
;sets gamma red
Function SetGammaRed( n )
For k=0 To 255
SetGamma k,k,k,k+n,0,0
Next
UpdateGamma
End Function
;sets gamma intensity
Function SetGammaIntensity( n )
For k%=0 To 255
SetGamma k,k,k,k+n,k+n,k+n
Next
UpdateGamma
End Function
;PARTICLE FUNCTIONS
;CreateSomeParticles
;creates some particles
Function CreateSomeParticles(x, y, z, r, g, b, numParticles)
For i = 1 To numParticles
p.Particle = New Particle
p\mesh = CopyEntity(copySprite)
PositionEntity(p\mesh,x, y, z)
p\vX# = Rnd(-.2, .2)
p\vY# = Rnd(.2)
p\vZ# = Rnd(-.2, .2)
p\alpha = 1
Next
End Function
;UpdateParticles
;updates particles
Function UpdateParticles()
For p.particle = Each particle
If p\alpha# <= 0
FreeEntity(p\mesh)
Delete(p)
Else
p\vY# = p\vY# - .01
TranslateEntity(p\mesh,p\vX#, p\vY#, p\vZ#)
p\alpha# = p\alpha# - .02
EntityAlpha(p\mesh, p\alpha#)
EndIf
Next
End Function
;====== CORRECTX ==========================================================
Function CorrectX(pixel)
Return (pixel * GraphicsWidth() / 1280)
End Function
;==========================================================================
;====== CORRECTY ==========================================================
Function CorrectY(pixel)
Return (pixel * GraphicsHeight() / 1024)
End Function
;==========================================================================
;UpdateGUI
;updates the UI
Function UpdateGUI()
;GUI
Color 0,0,20
Rect -20, -20, 830, 70
Color 0,0,255
Text 5, 5, realm$
Text 5, 30, "Weapon: " + guntype$
Line -20, 25, 1320, 25
Line -20, 50, 1320, 50
Line 125, -20, 125, 50
Line 0, 0, 1280, 0
Text 130, 5, "Kills: " + kills
Text 200, 5, "Ammo: " + ammo + " - " + reloads
Text 300, 5, "Time: " + time
Text 370, 5, "CameraX: " + EntityX(camera)
Text 500, 5, "CameraY: " + EntityY(camera)
Text 630, 5, "CameraZ: " + EntityZ(camera)
Text 370, 30, info$
Color 0, 0, 100
Rect 130, 30, 130 + health, 15
;Help menu
If help = 1
Color 0, 0, 255
Text 30, 100, "W, S, A, D - Walk"
Text 30, 120, "MOUSE - look around"
Text 30, 140, "LMB - shoot"
Text 30, 160, "[SPACE] - jump"
Text 30, 180, "[CTRL] - Misc. Action"
Text 30, 200, "H - toggle help"
EndIf
End Function
;UpdateCamera
;updates the camera
Function UpdateCamera()
; Mouse look
;-----------
; Mouse x and y speed
mxs=MouseXSpeed()
mys=MouseYSpeed()
; Mouse shake (total mouse movement)
mouse_shake=Abs(((mxs+mys)/2)/1000.0)
; Destination camera angle x and y values
dest_cam_yaw#=dest_cam_yaw#-mxs
dest_cam_pitch#=dest_cam_pitch#+mys
; Current camera angle x and y values
cam_yaw=cam_yaw+((dest_cam_yaw-cam_yaw)/5)
cam_pitch=cam_pitch+((dest_cam_pitch-cam_pitch)/5)
;Turn camera
RotateEntity camera, cam_pitch#/2,cam_yaw#/2,0
; Rest mouse position to centre of screen
MoveMouse 640,512
SetFont bigfont
Text 640,522, "+", True, True
SetFont font
; Camera move
; -----------
; Forward/backwards - destination camera move z values
If KeyDown(17)=True Then dest_cam_z=.4
If KeyDown(31)=True Then dest_cam_z#=-.4
; Strafe - destination camera move x values
If KeyDown(30)=True Then dest_cam_x=-.4
If KeyDown(32)=True Then dest_cam_x=.4
If ammo <= 0
If reloads >= 1
If KeyHit(19)= True Then
ammo = ammo + 100
If gun = 1
PlaySound reload1
ElseIf gun = 2
PlaySound reload1
EndIf
reloads = reloads - 1
EndIf
EndIf
EndIf
; Current camera move x and z values
cam_z=cam_z+((dest_cam_z-cam_z)/5)
cam_x=cam_x+((dest_cam_x-cam_x)/5)
; Move camera
MoveEntity camera,cam_x,0,cam_z
dest_cam_x=0 : dest_cam_z=0
;Misc functions
If help = 0
If KeyHit(35)
help = 1
EndIf
ElseIf help = 1
If KeyHit(35)
help = 0
EndIf
EndIf
If KeyHit(2)
gun=1
ElseIf KeyHit(3)
gun=2
EndIf
If KeyHit(209)
prone = True
ElseIf KeyHit(201)
prone = False
EndIf
If prone = True
camradius = 3
ElseIf prone = False
camradius = 4
EndIf
If MouseHit(2)
zoom = Not zoom
EndIf
If zoom = True
zoomamount = 4
ElseIf zoom = False
zoomamount = 1
EndIf
CameraZoom camera, zoomamount
End Function
;UpdateEnemies()
;updates all enemy operations
Function UpdateEnemies()
;enemy AI (yeah, just right here)
For spin.badguytype = Each badguytype
TurnEntity spin\entityhandle, 0, 5, 0
If MilliSecs() >= shottimer + 5000
enemyshot.bullettype = New bullettype
enemyshot\entityhandle = CopyEntity(bulletmesh)
enemyshot\from = 2
PositionEntity enemyshot\entityhandle, EntityX(spin\entityhandle, 1), EntityY(spin\entityhandle, 1), EntityZ(spin\entityhandle, 1)
RotateEntity enemyshot\entityhandle, EntityPitch(spin\entityhandle, 1), EntityYaw(spin\entityhandle, 1), EntityRoll(spin\entityhandle, 1)
EntityType enemyshot\entityhandle, 4
EntityRadius enemyshot\entityhandle, .01
EndIf
Next
End Function
;UpdateBullets()
;updates all bullet functions
Function UpdateBullets()
;Update Bullets
For biter.bullettype = Each bullettype
If biter\from = 1
MoveEntity biter\entityhandle, 0, 0, 5
ElseIf biter\from = 2
MoveEntity biter\entityhandle, 0, 0, 5
EndIf
If Abs(EntityX(biter\entityhandle, 1)) > 10000
FreeEntity biter\entityhandle
Delete biter
ElseIf Abs(EntityY(biter\entityhandle)) > 10000
FreeEntity biter\entityhandle
Delete biter
ElseIf Abs(EntityZ(biter\entityhandle)) > 10000
FreeEntity biter\entityhandle
Delete biter
EndIf
If EntityCollided (biter\entityhandle, 2)
FreeEntity biter\entityhandle
Delete biter
EndIf
Next
;lower health if shot
For biter2.bullettype = Each bullettype
If CountCollisions(biter2\entityhandle) > 0
playerhit = EntityCollided(biter2\entityhandle, 1)
For playersearch.player = Each player
If playerhit = playersearch\entityhandle
If biter2\from = 2
CreateSomeParticles(EntityX(playersearch\entityhandle), EntityY(playersearch\entityhandle), EntityZ(playersearch\entityhandle), 255, 255, 100, 100)
health = health - 5
Exit
EndIf
EndIf
Next
Delete biter
EndIf
Next
;Kill the badguy if shot
For biter.bullettype = Each bullettype
If CountCollisions(biter\entityhandle) > 0
badguyhit = EntityCollided(biter\entityhandle, 3)
For badguysearch.badguytype = Each badguytype
If badguyhit = badguysearch\entityhandle
If badguysearch\state <> 5
If biter\from = 1
CreateSomeParticles(EntityX(badguysearch\entityhandle), EntityY(badguysearch\entityhandle), EntityZ(badguysearch\entityhandle), 255, 255, 100, 100)
badguysearch\state = 5
RotateEntity badguysearch\entityhandle, 0, 0, 180
kills = kills + 1
TranslateEntity badguysearch\entityhandle, 0, -1, 0
HideEntity badguysearch\entityhandle
Delete badguysearch
Exit
EndIf
EndIf
EndIf
Next
Delete biter
EndIf
Next
End Function
;UpdateShoot()
;updates the player's shot
Function UpdateShoot()
;Shoot
;-----
If gun=1
If ammo >= 1
If MouseHit(1)
PlaySound shoot
bullet.bullettype = New bullettype
bullet\entityhandle = CopyEntity(bulletmesh)
bullet\from = 1
PositionEntity bullet\entityhandle, EntityX(camera), EntityY(camera), EntityZ(camera)
RotateEntity bullet\entityhandle, EntityPitch(camera), EntityYaw(camera), EntityRoll(camera)
EntityType bullet\entityhandle, 4
EntityRadius bullet\entityhandle, .01
ammo = ammo - 1
CameraPick(camera, MouseX(), MouseY())
h.hole = New hole
h\entityhandle = CopyEntity(bullethole)
h\alpha = 0.9
PositionEntity h\entityhandle, PickedX(), PickedY(), PickedZ()
EndIf
EndIf
EndIf
For b.hole = Each hole
EntityAlpha b\entityhandle, b\alpha
b\alpha = b\alpha-0.1
If b\alpha <= 0
FreeEntity b\entityhandle
Delete b
EndIf
Next
End Function
;UpdateMiscActions()
;updates misc. features of the game, such as gamma, etc.
Function UpdateMiscActions()
If KeyHit(57)
jump = 10
EndIf
If jump > 0
MoveEntity camera,0,jump,0
jump = jump
EndIf
n = n + 4
If n >= -25
n = -25
EndIf
SetGammaIntensity(n)
Cls
SeedRnd 1234
;Update timer
If MilliSecs() >= timer + 1000
time = time - 1
timer = MilliSecs()
EndIf
;Quit if timer is out
If time <= -1
Quit()
EndIf
If time <= 10
info$ = "You have " + time + " seconds left."
EndIf
If gun=1
guntype$ = "Semi-Auto"
ElseIf gun=2
guntype$ = "Full Auto"
EndIf
End Function
;UpdateMenu()
;updates the game menu, if applicable
Function UpdateMenu()
If menu = 1 ;campaign
Text 5, 250, "Currently selected: " + levelname$
Button("1 - Rural",300,200,200,30,17)
Button("2 - Suburban",300,240,200,30,18)
Button("3 - Urban",300,280,200,30,19)
Button("Start",300,360,200,30,20)
Button("Back",300,420,200,30,10)
ElseIf menu = 10 ;main menu
Button("Campaign",300,200,200,30,1)
Button("Skirmish",300,240,200,30,2)
Button("Options",300,280,200,30,3)
Button("About",300,320,200,30,4)
Button("Exit",300,420,200,30,16)
ElseIf menu = 3 ;options
Button("Music",300,200,200,30,6)
Button("Sound",300,240,200,30,7)
Button("Graphics",300,280,200,30,8)
Button("Gameplay",300,320,200,30,9)
Button("Back",300,420,200,30,10)
EndIf
If start = True
UpdateLogic("game")
EndIf
Rect 0, 0, 800, 600
DrawImage title,420,75
DrawImage bottom,400,300
End Function
;makes a button
Function Button(ButtonAssetType$,ButtonX,ButtonY,ButtonWidth,ButtonHeight,ButtonAction)
If MouseX() > ButtonX And MouseX() < ButtonX+ButtonWidth And MouseY() > ButtonY And MouseY() <Buttony+ButtonHeight Then
Color 75,0,0
doaction = 1
Else
Color 0,0,0
doaction = 0
End If
If doaction = 1
If MouseHit(1)
If ButtonAction <= 15
menu = ButtonAction
ElseIf ButtonAction = 16
End
ElseIf ButtonAction <= 19 And ButtonAction >= 17
level = ButtonAction - 1
levelname$ = ButtonAssetType
ElseIf ButtonAction = 20
start = True
EndIf
EndIf
EndIf
;Make Button
Rect ButtonX, ButtonY, ButtonWidth, ButtonHeight
;HighLights
Color 255,0,0
Line ButtonX,ButtonY,ButtonX+ButtonWidth, ButtonY
Line ButtonX,ButtonY,ButtonX,ButtonY+ButtonHeight
;Shadow
Color 255,0,0
Line ButtonX,ButtonY+ButtonHeight,ButtonX+ButtonWidth, ButtonY+ButtonHeight
Line ButtonX+ButtonWidth,ButtonY,ButtonX+ButtonWidth,ButtonY+ButtonHeight
;Text
Color 255,0,0
Text ButtonX+(ButtonWidth/2), Buttony+(ButtonHeight/2),ButtonAssetType$,True,True
End Function
When you shoot, the picked place by the camera, (UpdateShoot()) doesn't place the sprite. The sprite is always in the same spot, 0, 0, 0. I think I used "FreeEntity" correctly, but the sprite doesn't place itself in the right place. It places itself at 0, 0, 0, instead of the picked location.
Any ideas? (and yes, my code is a bit messy)
|