I would like to say that FIRST Ross C, Ross, and eBusiness have been a fantastic help. Neuromancer and Wolron as well!!! Muchos Kudos to all...
I have integrated Ross C's aroow fire routine into my game... But there is a slight problem. The arrows fire true... but they fire directly down. not out!
I have integrated Ross C's aroow fire routine into my game... But there is a slight problem. The arrows fire true... but they fire directly down. not out!
; Gnash v1.alpha ; Ralph Dunn ; June 10, 2004 ; starting to come together ; ------------------- Graphics3D 800,600 SetBuffer BackBuffer() SeedRnd (MilliSecs()) campiv = CreatePivot() camera = CreateCamera(campiv) floorpivot=CreatePivot() PositionEntity camera,600,440,2000 CameraRange camera,.1,1500 CameraFogRange camera,10,1300 EntityRadius camera,6,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 wind=LoadSound("media/windy1.ogg") LoopSound wind 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") health=LoadImage("textures\healthbar.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 UpdateNormals castle TurnEntity castle,0,164,0 ScaleEntity castle,18,30,18 ; PORTAL portal=LoadMesh( "textures\0portal.b3d" ) PositionEntity portal,725,250,1957 EntityFX portal,0 EntityType portal,2 UpdateNormals portal TurnEntity portal,0,0,0 ScaleEntity portal,25,25,25 EntityPickMode portal,1 ;lil dingy boat=LoadMesh( "textures\smallboat.b3d" ) PositionEntity boat,74,3,-267 EntityFX boat,0 EntityType boat,2 UpdateNormals boat TurnEntity boat,0,0,0 ScaleEntity boat,2,2,2 ;ladder ladder=LoadMesh( "textures\ladder_1.b3d" ) PositionEntity ladder,570,251,2022 EntityFX ladder,0 EntityType ladder,2 EntityPickMode ladder,3 UpdateNormals ladder TurnEntity ladder,0,180,0 ScaleEntity ladder,7,7,7 ;DOOR animated Adoor=LoadAnimMesh( "textures\adoor1.b3d" ) PositionEntity Adoor,857,252,2194 EntityFX Adoor,0 EntityType Adoor,2 EntityPickMode Adoor,2 UpdateNormals Adoor TurnEntity Adoor,0,0,0 RotateEntity Adoor,90,0,0 ScaleEntity Adoor,6,8,7 ; Load Xbow Global gun=LoadAnimMesh("textures\xbow1.b3d",camera) ScaleEntity gun,.8,.8,.8 RotateEntity gun,90,0,180 PositionEntity gun,-.25,-4,7 ; load xbow ammo Global bolt=LoadMesh("textures\bolt1.b3d",gun) PositionEntity bolt,.15,-4.75,9 HideEntity bolt ; create a type Type bullet Field entity Field speed# Field range Field pivot End Type ; HEALTHwidget health=LoadMesh("textures\healthbar2.b3d",camera) ScaleEntity health,.5,.5,.5 PositionEntity health,-4,-2,4 CameraFogColor camera, 2, 2, 2 CameraFogMode camera,1 Collisions 1,2,2,3 Collisions 1,3,2,3 Collisions 3,2,2,2 jumpflag=False j#=1 PlaySound windnoise healthy#=1 current = MilliSecs() Global gun_timer=MilliSecs() ; timer to track the difference in millisecs Global gun_time=750; time in milliseconds that the gun will fire While Not KeyDown( 1 ) x#=EntityX(camera) y#=EntityY(camera) z#=EntityZ(camera) ; ---- HOW TO USE GRAVITY y#=y#-8 PositionEntity camera,x#,y#,z# 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 (209)=True Then healthy#=healthy#-.1: ScaleEntity health,healthy#,.5,.5 If KeyDown (201)=True Then healthy#=healthy#+.1: ScaleEntity health,healthy#,.5,.5 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 ; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Bullet code by Ross C If MouseDown(1) And MilliSecs()>gun_time+gun_timer Then Animate gun,3 gun_timer=MilliSecs() ; reset the timer create_bullet(gun); call function to create a bullet. Pass across the gun entity to the function ; so the bullet can come from the guns position End If update_bullet() ; =--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-==-=-=-=-=-=-= If MouseDown(2) = True Then entity = EntityPick(camera,190) Select entity Case Adoor Animate Adoor,3 : EntityType Adoor,0 Default hh=0 End Select EntityType Adoor,2 FlushMouse 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 ; ------------------ 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# Text 0,50,"Entity: "+PickedEntity() Text 0,60,"M1"+ MouseHit(1) Text 0,70,"M2"+MouseHit(2) DrawImage aim,384,294 Text 0,90,"showme:"+current heal#=healthy#*100 Text 0,530,"Health: "+heal# Flip Wend End Function create_bullet(gun_entity) b.bullet=New bullet temp_x=EntityX(gun_entity,True) temp_y=EntityY(gun_entity,True) temp_z=EntityZ(gun_entity,True) b\entity=CopyEntity(bolt) ; copy the main bullet entity , into the type object b\pivot=CreatePivot() PositionEntity b\entity,temp_x,temp_y,temp_z RotateEntity b\entity,EntityPitch(gun_entity,True),EntityYaw(gun_entity,True),0 PositionEntity b\pivot,temp_x,temp_y,temp_z b\range=40 ; the range of the bullets b\speed=1 ; the speed of the bullets End Function Function update_bullet() For b.bullet = Each bullet MoveEntity b\entity,0,0,b\speed If EntityDistance#(b\entity,b\pivot) > b\range Then FreeEntity b\entity FreeEntity b\pivot Delete b.bullet End If Next End FunctionSo I am a bit confused... the only thing I can think of is that somehow I am reading this wrong. Z should be OUT right??? Y is up/down and X is left/right???