tron.bb 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. smooth=True
  2. Global info1$="Tron demo"
  3. Global info2$="Features dynamic mesh creation"
  4. Global info3$="Use arrow keys to steer, A/Z to zoom"
  5. Include "../start.bb"
  6. grid_tex=CreateTexture( 32,32,8 )
  7. ScaleTexture grid_tex,10,10
  8. SetBuffer TextureBuffer( grid_tex )
  9. Color 0,0,64:Rect 0,0,32,32
  10. Color 0,0,255:Rect 0,0,32,32,False
  11. SetBuffer BackBuffer()
  12. grid_plane=CreatePlane()
  13. EntityTexture grid_plane,grid_tex
  14. EntityBlend grid_plane,1
  15. EntityAlpha grid_plane,.6
  16. EntityFX grid_plane,1
  17. mirror=CreateMirror()
  18. pivot=CreatePivot()
  19. p=CreatePivot( p )
  20. cube=CreateCube( p )
  21. ScaleEntity cube,1,1,5
  22. SetAnimKey cube,0
  23. RotateEntity cube,0,120,0
  24. SetAnimKey cube,60
  25. RotateEntity cube,0,240,0
  26. SetAnimKey cube,120
  27. RotateEntity cube,0,0,0
  28. SetAnimKey cube,180
  29. AddAnimSeq p,180
  30. For x=-100 To 100 Step 25
  31. For z=-100 To 100 Step 25
  32. e=CopyEntity( p,pivot )
  33. PositionEntity e,x,5,z
  34. Animate e
  35. Next
  36. Next
  37. FreeEntity cube
  38. trail_mesh=CreateMesh()
  39. trail_brush=CreateBrush()
  40. BrushColor trail_brush,255,0,0
  41. BrushBlend trail_brush,3
  42. BrushFX trail_brush,1
  43. trail_surf=CreateSurface( trail_mesh,trail_brush )
  44. AddVertex trail_surf,0,2,0,0,0
  45. AddVertex trail_surf,0,0,0,0,1
  46. AddVertex trail_surf,0,2,0,0,0
  47. AddVertex trail_surf,0,0,0,0,1
  48. AddTriangle trail_surf,0,2,3
  49. AddTriangle trail_surf,0,3,1
  50. AddTriangle trail_surf,0,3,2
  51. AddTriangle trail_surf,0,1,3
  52. trail_vert=2
  53. bike=CreateSphere()
  54. ScaleMesh bike,.75,1,2
  55. PositionEntity bike,0,1,0
  56. EntityShininess bike,1
  57. EntityColor bike,192,0,255
  58. camera=CreateCamera()
  59. TurnEntity camera,45,0,0
  60. cam_d#=30
  61. light=CreateLight()
  62. TurnEntity light,45,45,0
  63. add_flag=False
  64. While Not KeyHit(1)
  65. If KeyHit(17)
  66. wire=Not wire
  67. WireFrame wire
  68. EndIf
  69. If KeyDown(30) cam_d=cam_d-1
  70. If KeyDown(44) cam_d=cam_d+1
  71. turn=0
  72. If smooth
  73. If KeyDown(203) turn=5
  74. If KeyDown(205) turn=-5
  75. If turn
  76. add_cnt=add_cnt+1
  77. If add_cnt=3
  78. add_cnt=0
  79. add_flag=True
  80. Else
  81. add_flag=False
  82. EndIf
  83. Else If add_cnt
  84. add_cnt=0
  85. add_flag=True
  86. Else
  87. add_flag=False
  88. EndIf
  89. Else
  90. If KeyHit(203) turn=90
  91. If KeyHit(205) turn=-90
  92. If turn Then add_flag=True Else add_flag=False
  93. EndIf
  94. If turn
  95. TurnEntity bike,0,turn,0
  96. EndIf
  97. MoveEntity bike,0,0,1
  98. If add_flag
  99. AddVertex trail_surf,EntityX(bike),2,EntityZ(bike),0,0
  100. AddVertex trail_surf,EntityX(bike),0,EntityZ(bike),0,1
  101. AddTriangle trail_surf,trail_vert,trail_vert+2,trail_vert+3
  102. AddTriangle trail_surf,trail_vert,trail_vert+3,trail_vert+1
  103. AddTriangle trail_surf,trail_vert,trail_vert+3,trail_vert+2
  104. AddTriangle trail_surf,trail_vert,trail_vert+1,trail_vert+3
  105. trail_vert=trail_vert+2
  106. Else
  107. VertexCoords trail_surf,trail_vert,EntityX(bike),2,EntityZ(bike)
  108. VertexCoords trail_surf,trail_vert+1,EntityX(bike),0,EntityZ(bike)
  109. EndIf
  110. UpdateWorld
  111. PositionEntity camera,EntityX(bike)-5,0,EntityZ(bike)
  112. MoveEntity camera,0,0,-cam_d
  113. ; PositionEntity camera,0,20,0
  114. ; PointEntity camera,bike
  115. RenderWorld
  116. Flip
  117. Wend
  118. End