I did this simple code to illustrate... BUT the simple code works...
(this is a biggie)
-RZ
PS If you want to use ANY part of this code be sure and give Ross, Ross C, Wolron, Neuromancer and Me a nod in the credits! :)
; TELEPORT THINGEE ; Ralph Dunn ; ------------------- Graphics3D 800,600 SetBuffer BackBuffer() SeedRnd (MilliSecs()) campiv = CreatePivot() Global camera = CreateCamera(campiv) floorpivot=CreatePivot() PositionEntity camera,0,12,0 CameraRange camera,.1,2500 CameraFogRange camera,25,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 flash=CreateLight(2) PositionEntity flash,0,60,0 PointEntity flash,camera EntityParent flash,camera ;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 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 ; OK we make some teleport points Global trigger1 = CreateSphere(8) PositionEntity trigger1,10,10,10 ScaleEntity trigger1,8,8,8 EntityAlpha trigger1,.65 EntityType trigger1,3 EntityColor trigger1,255,1,1 Global trigger2 = CreateSphere(8) PositionEntity trigger2,20,10,1000 ScaleEntity trigger2,8,8,8 EntityAlpha trigger2,.65 EntityType trigger2,4 EntityColor trigger2,1,255,1 Global thing = CreateCube() PositionEntity thing,100,10,100 ScaleEntity thing,8,8,8 EntityType thing,2 EntityColor thing,120,1,149 ; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= CameraFogColor camera, 1,1,1 CameraFogMode camera,1 Collisions 1,2,2,2 Collisions 1,3,2,2 Collisions 1,4,2,2 Collisions 3,1,2,2 Collisions 4,1,2,2 While Not KeyDown( 1 ) check_collide 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 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# Flip Wend End Function check_collide() If EntityCollided(camera,3) Then ResetEntity camera PositionEntity camera,20,20,1050 ;MoveEntity camera,20,20,1010 EndIf If EntityCollided(camera,4) Then ResetEntity camera PositionEntity camera,20,20,20 ;MoveEntity camera,20,20,1010 EndIf End FunctionI can't explain it... HERE the command POSITIONENTITY works... but HERE...
(this is a biggie)
; Gnash v1.alpha ; Ralph Dunn ; June 10, 2004 ; starting to come together ; ------------------- Graphics3D 800,600 SetBuffer BackBuffer() SeedRnd (MilliSecs()) campiv = CreatePivot() Global camera = CreateCamera(campiv) floorpivot=CreatePivot() PositionEntity camera,1466,200,410 ; 600,440,2000 - BUILDING 1466,200,410 - PAD CameraRange camera,.1,1500 CameraFogRange camera,10,1300 EntityRadius camera,8,41 EntityType camera,1 Global gun_timer=MilliSecs() ; timer to track the difference in millisecs Global gun_time=750 ; time in milliseconds that the gun will fire Global ammo Global DUDE ; -------------- HidePointer ;setup lighting light=CreateLight() RotateEntity light,45,45,0 AmbientLight 32,32,32 ; was 32,32,32 ; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= SOUND ; Load Sound for backmusic Global windnoise=LoadSound("media/windlow.ogg") LoopSound windnoise Global wind=LoadSound("media/windy1.ogg") LoopSound wind firebow=LoadSound("media/click1.wav") Global doorx=LoadSound("media/metaldoor.wav") Global walk=LoadSound("media/walk2.ogg") SoundPitch walk,18000 LoopSound walk play_walk=PlaySound(walk) ; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= MAP Global 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\aimpoint3.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 Global w=CreatePlane() EntityTexture w,tex EntityBlend w,1 EntityAlpha w,.75 PositionEntity w,0,39,0 EntityFX w,1 ;EntityType p,2 ; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ENTITYS ;cool castle Global 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 ; GREAT HALL Global ghall=LoadMesh( "textures\great_hall.b3d" ) PositionEntity ghall,3179,260,2458 EntityFX ghall,0 EntityType ghall,2 UpdateNormals ghall TurnEntity ghall,0,164,0 ScaleEntity ghall,15,15,15 ; CRYPT Global crypt=LoadMesh( "textures\portal2.b3d" ) PositionEntity crypt,1835,399,2872 EntityFX crypt,0 EntityType crypt,2 UpdateNormals crypt TurnEntity crypt,0,0,0 ScaleEntity crypt,15,15,15 ; SWITCH Global switch=LoadMesh( "textures\trigger1.b3d" ) PositionEntity switch,1835,399,2872 EntityFX switch,0 EntityAlpha switch,0 UpdateNormals switch EntityType switch,4 TurnEntity switch,0,0,0 ScaleEntity switch,15,15,15 ; CRYPT2 Global crypt2=LoadMesh( "textures\portal4.b3d" ) PositionEntity crypt2,1835,399,2872 EntityFX crypt2,0 EntityType crypt2,2 UpdateNormals crypt2 TurnEntity crypt2,0,0,0 ScaleEntity crypt2,15,15,15 HideEntity crypt2 ; CRYPT3 Global crypt3=LoadMesh( "textures\crypt4.b3d" ) PositionEntity crypt3,1835,399,2872 EntityFX crypt3,0 EntityType crypt3,2 UpdateNormals crypt3 TurnEntity crypt3,0,0,0 ScaleEntity crypt3,15,15,15 HideEntity crypt3 ;DOCK Global dock=LoadMesh( "textures\dock_old.b3d" ) PositionEntity dock,950,80,116 EntityFX dock,0 EntityType dock,2 UpdateNormals dock TurnEntity dock,0,180,0 ScaleEntity dock,18,18,18 ;TELEPORT PAD pad=LoadMesh( "textures\teleportpad1.b3d" ) PositionEntity pad,1466,150,410 EntityFX pad,0 EntityType pad,2 UpdateNormals pad TurnEntity pad,0,0,0 ScaleEntity pad,5,5,5 Global pad2=LoadMesh( "textures\teleportpad1.b3d" ) PositionEntity pad2,949,-86,1949 EntityType pad2,2 UpdateNormals pad2 ScaleEntity pad2,5,5,5 ; PAD 2 Trigger Global switch2=LoadMesh( "textures\trigger1.b3d" ) PositionEntity switch2,950,-60,1949 EntityFX switch2,0 EntityAlpha switch2,1 ; was 0 UpdateNormals switch2 EntityType switch2,5 ScaleEntity switch2,25,25,25 HideEntity switch2 ;WALL Global wall=LoadMesh( "textures\gate3.b3d" ) PositionEntity wall,1190,175,837 EntityFX wall,0 EntityType wall,2 UpdateNormals wall ;TurnEntity wall,0,164,0 ScaleEntity wall,18,30,18 ; PORTAL Global 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 Global 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 Global 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 Global Adoor=LoadAnimMesh( "textures\adoor1.b3d" ) PositionEntity Adoor,850,252,2180 ; 252 EntityFX Adoor,0 EntityType Adoor,2 EntityPickMode Adoor,2 EntityRadius Adoor,10 UpdateNormals Adoor TurnEntity Adoor,0,0,0 RotateEntity Adoor,90,0,0 ScaleEntity Adoor,6,8,7 ;making new doors ;door2 = CopyMesh(Adoor) ;PositionEntity door2,800,252,2000 ; Load Xbow Global gun=LoadAnimMesh("textures\xbow3.b3d",camera) ScaleEntity gun,.8,.8,.8 PositionEntity gun,-.1,-4,8 ; load xbow ammo Global bolt=LoadMesh("textures\bolt6.b3d",gun) ;PositionEntity bolt,.26,-4,9 HideEntity bolt ; create a type Type bullet Field entity Field speed# Field range Field pivot End Type ; HEALTHwidget Global 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 2,1,2,3 Collisions 4,1,2,2 Collisions 5,1,2,2 Collisions 1,4,2,2 Collisions 1,5,2,2 ammo = 100 jumpflag=False j#=1 PlaySound windnoise PlaySound wind healthy#=1 current = MilliSecs() chnWalk=PlaySound (mov) ; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX HERE While Not KeyDown( 1 ) volume_walk=0 ChannelVolume play_walk,volume_walk 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 volume_walk = 1 ChannelVolume play_walk,volume_walk EndIf If KeyDown( 200 )=True Then MoveEntity camera,0,0,+5 volume_walk = 1 ChannelVolume play_walk,volume_walk EndIf ; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Bullet code by Ross C If MouseDown(1) And MilliSecs()>gun_time+gun_timer Then ammo = ammo-1 If ammo<0 Goto carryon Animate gun,3 PlaySound firebow 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 .carryon If ammo < 0 Then ammo = 0 check_collide() If DUDE=1 Then PositionEntity camera,1466,220,410 update_bullet() ;walktimer=MilliSecs() ; timer reset ; =--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-==-=-=-=-=-=-= If MouseDown(2) = True Then entity = EntityPick(camera,190) Select entity Case Adoor ;For hh = 1 To 90 ;RotateEntity Adoor,0,hh,0 ;Next Animate Adoor,3,1 Default hh=0 End Select 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) ;AIMPOINT DrawImage aim,378,300 heal#=healthy#*100 Text 0,530,"Health: "+heal# Text 0,90,"Ammo: "+ammo Text 0,100,"JOP:"+jop Flip DUDE=0 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() ; EntityType b\entity,1 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=300 ; the range of the bullets b\speed=18; 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 Function Function check_collide() If EntityCollided(camera,5) Then HideEntity switch2 PositionEntity terr,-20*512,0,-20*512 ResetEntity camera ;PositionEntity camera,1466,220,410 MoveEntity camera,1466,220,410 ShowEntity w DUDE=1 ;playsound whoop ShowEntity crypt2 ShowEntity crypt ShowEntity castle ShowEntity wall ShowEntity portal ShowEntity ghall HideEntity crypt3 HideEntity pad2 EndIf If EntityCollided(camera,4) Then HideEntity switch PlaySound doorx ShowEntity crypt3 ShowEntity pad2 ShowEntity switch2 HideEntity crypt2 HideEntity crypt HideEntity castle HideEntity wall HideEntity portal HideEntity ghall PositionEntity terr,0,-120,0 HideEntity w EndIf End FunctionNo joy!!! Why???
-RZ
PS If you want to use ANY part of this code be sure and give Ross, Ross C, Wolron, Neuromancer and Me a nod in the credits! :)