shoot arrow

Blitz3D Forums/Blitz3D Beginners Area/shoot arrow

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

OK aside from the PUN on giving this a shot... I got no joy. Let me post my code as it sits... Simple landscape... lonely castle... sunk boat (how you got here)... you and your xbow out to kick hiney and take names (except it is the age of mayhem and you didn't bring a pencil!)

; Gnash v1.alpha
; Ralph Dunn
; -------------------

Graphics3D 800,600
SetBuffer BackBuffer()
SeedRnd (MilliSecs())

campiv = CreatePivot()
camera = CreateCamera(campiv)
floorpivot=CreatePivot()
PositionEntity camera,0,140,0
CameraRange camera,.1,1500
CameraFogRange camera,10,1300
EntityRadius camera,5,49
EntityType camera,1
Global windnoise
; --------------

HidePointer

;setup lighting
light=CreateLight()
RotateEntity light,45,45,0
AmbientLight 48,48,48    ; was 32,32,32

; Load Sound for backmusic
windnoise=LoadSound("media/windlow.ogg")
LoopSound windnoise
	terr=LoadTerrain("textures\hmap_1024.bmp")
	ScaleEntity terr,25,400,25
	PositionEntity terr,-20*512,0,-20*512
	EntityFX terr,1
	EntityType terr,2	;Load terrain

	;apply textures To terrain	
	tex1=LoadTexture( "textures\coolgrass1.bmp",1 )
	ScaleTexture tex1,10,10
	tex2=LoadTexture( "textures\lmap_256.bmp" ) ; i like a nice set of colors
	ScaleTexture tex2,TerrainSize(terr),TerrainSize(terr)
	EntityTexture terr,tex1,0,0
	EntityTexture terr,tex2,0,1

; Draw the Aimpoint where the TEXT goes or you never see it
aim=LoadImage("textures\aimpoint2.png")

;create cloud planes
cloud=LoadTexture( "textures\cloud_2.bmp",3)
ScaleTexture cloud,1000,1000
p=CreatePlane()
EntityTexture p,cloud
EntityFX p,1
PositionEntity p,0,900,0
p=CopyEntity( p )
RotateEntity p,0,0,180

;create water plane
tex=LoadTexture( "textures\wawa1.bmp",3 )
ScaleTexture tex,128,128
p=CreatePlane()
EntityTexture p,tex
EntityBlend p,1
EntityAlpha p,.75
PositionEntity p,0,41,0
EntityFX p,1
;EntityType p,2

;create ground plane in case someone goes off map
tex=LoadTexture( "textures\mossyground1.jpg",3 )
ScaleTexture tex,128,128
p2=CreatePlane()
EntityTexture p2,tex
EntityBlend p2,1
EntityAlpha p2,.75
PositionEntity p2,0,1,0
EntityFX p2,1
EntityType p2,2

;cool castle
castle=LoadMesh( "textures\tower1.b3d" )
PositionEntity castle,418,125,809
EntityFX castle,0
EntityType castle,2
EntityPickMode castle,2
UpdateNormals castle
TurnEntity castle,0,164,0
ScaleEntity castle,18,30,18

;lil dingy
boat=LoadMesh( "textures\smallboat.b3d" )
PositionEntity boat,74,3,-267
EntityFX boat,0
EntityType boat,2
EntityPickMode boat,3
UpdateNormals boat
TurnEntity boat,0,0,0
ScaleEntity boat,2,2,2

; Load Xbow

xbow=LoadAnimMesh("textures\xbow1.b3d",camera)
ScaleEntity xbow,.8,.8,.8
RotateEntity xbow,90,0,190
PositionEntity xbow,2,-2,8

; load xbow ammo
bolt=LoadMesh("textures\xbowbolt.b3d",camera)
ScaleEntity bolt,.8,.8,.8
RotateEntity bolt,0,180,0
PositionEntity bolt,2,-2,8
newbolt=CopyEntity(bolt)


CameraFogColor camera, 2, 2, 2
CameraFogMode camera,1
Collisions 1,2,2,3
Collisions 1,3,2,3

jumpflag=False

j#=1
PlaySound windnoise
While Not KeyDown( 1 )


  mxs#=MouseXSpeed()/4
  mys#=MouseYSpeed()/4
  xa#=(xa#-mxs#)Mod 360
  ya#=(ya#+mys#)Mod 360 
;limit up and down looking
	If ya#>=90 Then ya#=90 
    If ya#<= -89 Then ya#= -89

  MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
  RotateEntity camera,ya#,xa#,0
    
; -------------------------------------------------------------------------------------


If KeyDown( 205 )=True Then RotateEntity camera,0,-5,0
If KeyDown( 203 )=True Then RotateEntity camera,0,+5,0
If KeyDown( 208 )=True Then MoveEntity camera,0,0,-5
If KeyDown( 200 )=True Then MoveEntity camera,0,0,5
If MouseHit (1) = True Then Animate xbow,3
	newbolt=CopyEntity(bolt):PositionEntity newbolt,x#,y#,z#:RotateEntity newbolt,EntityPitch (camera),EntityYaw (camera),0
	PositionEntity newbolt,x#,y#,z#+1
If KeyHit( 57 )=True And jumpflag = False
	jumpflag=True
	oldtime=MilliSecs()
EndIf
		If jumpflag = True Then TranslateEntity camera,+0,+9,+0
		 	If MilliSecs()>oldtime+1250 Then jumpflag=False
		
x#=EntityX(camera)
y#=EntityY(camera)
z#=EntityZ(camera)

; ---- HOW TO USE GRAVITY

y#=y#-8

; ------------------

PositionEntity camera,x#,y#,z#


UpdateWorld()

RenderWorld()

Text 0,0,"Use cursor keys to move about the terrain [ESC] to quit"
Text 0,10,"Jumpflag:"+jumpflag
Text 0,30,"X: "+x#
Text 100,30,"Y: "+y#
Text 200,30,"Z: "+z#
DrawImage aim,400,300


Flip


Wend

End
I figure one of you bright boys can see what I done wrong... The program draws a new BOLT everyplac I move... kind of like pacman in reverse. No fire effect... nada!
-RZ