October 28, 2020, 06:09:30 AM

Author Topic: [bb] Dropping 3 bombs by Blitzplotter [ 10 months ago ]  (Read 1233 times)

Offline BlitzBot

  • Jr. Member
  • **
  • Posts: 1
[bb] Dropping 3 bombs by Blitzplotter [ 10 months ago ]
« on: June 29, 2017, 12:28:42 AM »
Title : Dropping 3 bombs
Author : Blitzplotter
Posted : 10 months ago

Description : Generated with help from RemiD and Rick Nasher (and I probably wouldn't have got there without them - thanks folks ;)

Note, the A, B and C.png were simple 32x32 graphics quickly drawn using Microsoft Paint.

All associated files included here:
<a href="http://www.wishingwellsoftware.co.uk/setup_3bombs_Blitz3D.exe" target="_blank">http://www.wishingwellsoftware.co.uk/setup_3bombs_Blitz3D.exe[/url]


Code :
Code: BlitzBasic
  1. Global screen_width = 800, screen_height = 600
  2.  
  3. Graphics3D screen_width, screen_height, 32,1
  4. SetBuffer BackBuffer()
  5.        
  6. light = CreateLight()
  7. RotateEntity light, 90, 0, 0
  8.  
  9. Global terrainscale=4
  10. Global height#=0.0
  11.  
  12. createdTerrain = LoadTerrain( "terrain_hmap.jpg" )
  13.  
  14. tex_A = LoadTexture( "A.png" )
  15.  
  16. ScaleTexture tex_A, 1, 1
  17.  
  18. EntityTexture createdTerrain, tex_A
  19.  
  20.  
  21.  
  22. ScaleEntity createdTerrain, terrainscale, 25.5, terrainscale
  23. TerrainDetail createdTerrain,2000*terrainscale,True : TerrainShading createdTerrain,True
  24.  
  25.  
  26. ModifyTerrain createdTerrain, 8, 8, 1, 1 ; put in test spike
  27. ModifyTerrain createdTerrain, 13, 8, 1, 1 ; put in test spike
  28. ModifyTerrain createdTerrain, 18, 8, 1, 1 ; put in test spike
  29. ModifyTerrain createdTerrain, 24, 8, 1, 1 ; put in test spike
  30. ModifyTerrain createdTerrain, 33, 8, 1, 1 ; put in test spike
  31.  
  32. ModifyTerrain createdTerrain, 5, 10, 1, 1; put in test spike
  33. ModifyTerrain createdTerrain, 5, 20, 1, 1; put in test spike
  34.  
  35.  
  36.  
  37. ;Bravo's terrain------------------------------
  38.  
  39. landTerrain = CreateTerrain(4)
  40.  
  41. ScaleEntity landTerrain,3,25.5,3
  42.  
  43. MoveEntity landTerrain,190,0,-30
  44.  
  45. tex_B = LoadTexture( "B.png" )
  46.  
  47. ScaleTexture tex_B, 5, 5
  48.  
  49. EntityTexture landTerrain, tex_B
  50.  
  51.  
  52. ;Chariles terrain-----------------------------
  53.  
  54. ClandTerrain = CreateTerrain(4)
  55.  
  56.  
  57. ScaleEntity ClandTerrain,3,25.5,3
  58.  
  59. MoveEntity ClandTerrain,390,0,-30
  60.  
  61. tex_C = LoadTexture( "C.png" )
  62.  
  63. ScaleTexture tex_C, 5, 5
  64.  
  65. EntityTexture ClandTerrain, tex_C
  66.  
  67.  
  68.  
  69. ;---------------------------------------
  70. ;insertions;
  71. ;---------------------------------------
  72.  
  73. lit=CreateLight()
  74. cam=CreateCamera()
  75.  
  76. CameraRange cam,.1,1000
  77. PositionEntity cam,32,20,25
  78. TurnEntity cam,0,90,0
  79.  
  80.  
  81.  
  82.  
  83.  
  84. Const BEAKS=9
  85. Const PEAKS=3
  86.  
  87. riseup=0
  88.  
  89. Global raiseBy#=0.2
  90.  
  91. bomberx=20
  92. bombery=150
  93. bomberz=50
  94. bombSpeed#=0.2
  95.  
  96.  
  97. ;Bbomberx=204
  98. ;Bbombery=100
  99. ;Bbomberz=6
  100. ;BbombSpeed#=2.2
  101.  
  102. Bbomberx=25
  103. Bbombery=200
  104. Bbomberz=100
  105. BbombSpeed#=0.4
  106.  
  107.  
  108. ;Cbomberx=404
  109. ;Cbombery=150
  110. ;Cbomberz=9
  111. ;CbombSpeed#=2.2
  112.  
  113.  
  114.  
  115. Cbomberx=16
  116. Cbombery=220
  117. Cbomberz=350
  118. CbombSpeed#=0.8
  119.  
  120. Global bomb_a_falling=0
  121. Global bomb_b_falling=0
  122. Global bomb_c_falling=0
  123.  
  124. Global bomb_a_exploding=0
  125. Global bomb_b_exploding=0
  126. Global bomb_c_exploding=0
  127.  
  128. xDivide=5.2
  129. zDivide=4.2
  130.  
  131. Bsize=6
  132.  
  133.  
  134. ;make a bomb carrier
  135.  
  136. Blimp = CreateSphere(25)
  137. PositionEntity Blimp,bomberx,bombery,bomberz
  138. ScaleEntity Blimp,Bsize,Bsize,Bsize
  139.  
  140. ;make a  A bomb
  141.  
  142. bomb = CreateSphere(25)
  143. PositionEntity bomb,bomberx,bombery-5,bomberz
  144. ScaleEntity bomb,0.9,1.5,0.9
  145.  
  146. ;make a Bravo bomb carrier
  147.  
  148. BBlimp = CreateSphere(25)
  149. PositionEntity BBlimp,Bbomberx,Bbombery,Bbomberz
  150. ScaleEntity BBlimp,Bsize,Bsize,Bsize
  151.  
  152. ;make a B bomb
  153.  
  154. Bbomb = CreateSphere(25)
  155. PositionEntity Bbomb,Bbomberx,Bbombery-5,Bbomberz
  156. ScaleEntity Bbomb,0.9,1.5,0.9
  157.  
  158. ;make a C bomb carrier
  159.  
  160. CBlimp = CreateSphere(25)
  161. PositionEntity CBlimp,Cbomberx,Cbombery,Cbomberz
  162. ScaleEntity CBlimp,Bsize,Bsize,Bsize
  163.  
  164. ;make a C bomb
  165.  
  166. Cbomb = CreateSphere(25)
  167. PositionEntity Cbomb,Cbomberx,Cbombery-5,Cbomberz
  168. ScaleEntity Cbomb,0.9,1.5,0.9
  169.  
  170. ;bomb vars
  171.  
  172. bombs=0
  173. Global bombstext=0
  174.  
  175.  
  176. ;Assign collision numbers to items
  177.  
  178. EntityType bomb, 1
  179. EntityType createdTerrain, 3    ; A
  180. EntityType Blimp, 4
  181.  
  182. ;-------------------------------------
  183.  
  184. EntityType Bbomb,7
  185. EntityType BBlimp,8
  186. EntityType landterrain, 2       ; B
  187.  
  188. ;--------------------------------------
  189.  
  190. EntityType Cbomb,5
  191. EntityType CBlimp,6
  192. EntityType CLandTerrain,9       ; C
  193.  
  194.  
  195. ;------------------------------------------------------------
  196. ;
  197. ; Collisions 1 sph to sph, 2 sph to poly, 3 sph to box
  198. ; response 1:stop,  2:full sliding collision,  
  199. ; 3:slide 2 - prevent entities from sliding down slopes?
  200. ;
  201. ;----------------------------------------------------------
  202.  
  203. Collisions 1,2,2,1
  204.  
  205. Collisions 1,3,2,1     ;makes bomb A land on the terrain
  206.  
  207.  
  208.  
  209. ;---------------------------
  210. ; bBomb collisions
  211. ;---------------------------
  212.  
  213. Collisions 7,2,2,1
  214.  
  215. Collisions 7,3,2,1  ;lets B Bomb collide with A Terrain
  216.  
  217.  
  218. ;------------------------
  219. ; cBomb collisions
  220. ;------------------------
  221.  
  222. Collisions 5,9,2,1
  223.  
  224. ;------------------------
  225.  
  226. MoveEntity Cam,0,90,-340
  227.  
  228.  
  229. ;MoveEntity createdTerrain,20,15,10
  230.  
  231.  
  232.  
  233. While Not KeyDown(1)
  234.        
  235.         If KeyDown(203) MoveEntity cam,-1,0,0
  236.                 If KeyDown(205) MoveEntity cam,1,0,0
  237.                         If KeyDown(200) MoveEntity cam,0,0,1
  238.                                 If KeyDown(208) MoveEntity cam,0,0,-1
  239.                                        
  240.                                        
  241.                                         If KeyDown(16) ;q
  242.                                                
  243.                                                 TurnEntity cam,1,0,0
  244.                                                
  245.                                                 Flip
  246.                                                
  247.                                         EndIf
  248.                                        
  249.                                         If KeyDown(30) ;a
  250.                                                
  251.                                                 TurnEntity cam,-1,0,0
  252.                                                
  253.                                         EndIf
  254.                                        
  255.                                        
  256.                                         If KeyDown(44)
  257.                                                
  258.                                                 TurnEntity cam,0,1,0
  259.                                                
  260.                                         EndIf
  261.                                        
  262.                                        
  263.                                         If KeyDown(45)
  264.                                                
  265.                                                 TurnEntity cam,0,-1,0
  266.                                                
  267.                                         EndIf
  268.                                        
  269.                                         If KeyDown(48)   ;  B
  270.                                                
  271.                                                 bombs=1
  272.                                                
  273.                                         EndIf
  274.                                        
  275.                                         If KeyDown(19)   ;  R  -  Rise the terrain up
  276.                                                
  277.                                                 riseup=1
  278.                                                
  279.                                         Else
  280.                                                
  281.                                                 riseup = 0
  282.                                                
  283.                                         EndIf
  284.                                        
  285.                                        
  286.                                         If riseup = 1
  287.                                                
  288.                                                 pickgrid=TerrainSize(createdTerrain)
  289.                                                
  290.                                                 raiseTerrain(createdTerrain,pickgrid)
  291.                                                
  292.                                         EndIf
  293.                                        
  294.                                        
  295.                                        
  296.                                         If bombs = 1
  297.                                                
  298.                                                 dropbombs()
  299.                                                
  300.                                         Else
  301.                                                
  302.                                                 stopbombs()
  303.                                                
  304.                                         EndIf
  305.                                        
  306.                                         UpdateWorld
  307.                                         RenderWorld
  308.                                        
  309.                                         If bombstext=1
  310.                                                 Text 20,20,"Dropping A, B and C bombs...."
  311.                                                
  312.                                                 ;---------- bomb A --------------------------
  313.                                                
  314.                                                 If bomb_a_falling=1
  315.                                                        
  316.                                                        
  317.                                                         MoveEntity bomb,0,-bombSpeed,0
  318.                                                        
  319.                                                         bomx#=EntityX(bomb)
  320.                                                         bomy#=EntityY(bomb)
  321.                                                         bomz#=EntityZ(bomb)
  322.                                                        
  323.                                                         Text 40,100,"bomy#: "+bomy#
  324.                                                        
  325.                                                         Text 40,120,"TerrainY#:  "+TerrainY#(createdTerrain,bomx#,bomy#,bomz#)
  326.                                                        
  327.                                                         ;TerrainY is 15.0
  328.                                                         ;15.0/25.5 = 0.588
  329.                                                         ;lets say I want to dig a 4 unit hole, this'll equate to 4x0.588
  330.                                                         ;0.5/25.5 = 0.019607
  331.                                                         ; 0.588 - 0.08 = 0.50 (new heightnafter hole dig)
  332.                                                        
  333.                                                         If bomy#-3<TerrainY#(createdTerrain,bomx#,bomy#,bomz#)
  334.                                                                
  335.                                                                 bomb_a_exploding=1
  336.                                                                
  337.                                                                 TFormPoint (x, y, z,  createdTerrain, bomb  )
  338.                                                        
  339.                                                         Else
  340.                                                                
  341.                                                                 Text 40,160,"Bomb a still intact with bomy#:"+bomy#+" not less than TerrainY#: "+TerrainY#(createdTerrain,bomx#,bomy#,bomz#)
  342.                                                                
  343.                                                                
  344.                                                                
  345.                                                         EndIf
  346.                                                        
  347.                                                        
  348.                                                 EndIf
  349.                                                
  350.                                                 If bomb_a_exploding=1
  351.                                                        
  352.                                                         x = EntityX(bomb)
  353.                                                         y = EntityY(bomb)
  354.                                                         z = EntityZ(bomb)
  355.                                                        
  356.                                                         ModifyTerrain createdTerrain, x/xdivide, (z/zdivide), 0.02, 1;
  357.                                                         ModifyTerrain createdTerrain, (x/xdivide)+1, (z/zdivide)+1, 0.02, 1;
  358.                                                         ModifyTerrain createdTerrain, (x/xdivide)+1, (z/zdivide)+1, 0.02, 1;
  359.                                                         ModifyTerrain createdTerrain, x/xdivide, (z/zdivide)+1, 0.02, 1;
  360.                                                        
  361.                                                         ;if bomb is at terrain level explode and hide
  362.                                                         ;Text 40,40,"Exploding Bomb A"
  363.                                                        
  364.                                                 EndIf
  365.                                                
  366.                                                
  367.                                                
  368.                                                 ;---------- bomb B --------------------------
  369.                                                
  370.                                                 If bomb_b_falling=1
  371.                                                        
  372.                                                
  373.                                                         MoveEntity Bbomb,0,-BbombSpeed,0    
  374.                                                        
  375.                                                         bombx#=EntityX(Bbomb)
  376.                                                         bomby#=EntityY(Bbomb)
  377.                                                         bombz#=EntityZ(Bbomb)
  378.                                                        
  379.                                                         If bomby#-3<TerrainY#(createdTerrain,bombx#,bomby#,bombz#); Or ; Failing to crater, commented
  380.                                                                
  381.                                                                 bomb_b_exploding=1
  382.                                                                
  383.                                                                 Text 40,180,"Bomb B Booming............"
  384.                                                                
  385.                                                         Else
  386.                                                                
  387.                                                                 Text 40,180,"Bomb B still intact with bomby#:"+bomby#+" not less than TerrainY#: "+TerrainY#(createdTerrain,bombx#,bomby#,bombz#)
  388.                                                                
  389.                                                                
  390.                                                                
  391.                                                         EndIf
  392.                                                        
  393.                                                 EndIf
  394.                                                
  395.                                                 ;If 0
  396.                                                
  397.                                                 If bomb_b_exploding=1
  398.                                                        
  399.                                                        
  400.                                                         Text 40,60,"Attempting to Crater where bomb B was"
  401.                                                        
  402.                                                         bx = EntityX(Bbomb)
  403.                                                         by = EntityY(Bbomb)
  404.                                                         bz = EntityZ(Bbomb)
  405.                                                        
  406.                                                         ModifyTerrain createdTerrain, bx/xdivide, (bz/zdivide), 0.02, 1;
  407.                                                         ModifyTerrain createdTerrain, (bx/xdivide)+1, (bz/zdivide)+1, 0.02, 1;
  408.                                                         ModifyTerrain createdTerrain, (bx/xdivide)+1, (bz/zdivide)+1, 0.02, 1;
  409.                                                         ModifyTerrain createdTerrain, bx/xdivide, (bz/zdivide)+1, 0.02, 1;
  410.                                                        
  411.                                                        
  412.                                                         ;Text 40,40,"Exploding Bomb B"
  413.                                                        
  414.                                                 EndIf
  415.                                                
  416.                                         ;EndIf
  417.                                                
  418.                                                
  419.                                                 ;---------- bomb C --------------------------
  420.                                                
  421.                                                 If bomb_c_falling=1
  422.                                                        
  423.                                                        
  424.                                                         MoveEntity Cbomb,0,-CbombSpeed,0    
  425.                                                        
  426.                                                         bomcx#=EntityX(Cbomb)
  427.                                                         bomcy#=EntityY(Cbomb)
  428.                                                         bomcz#=EntityZ(Cbomb)
  429.                                                        
  430.                                                         If bomcy#-3<TerrainY#(createdTerrain,bomcx#,bomcy#,bomcz#); Or ; Failing to crater, commented
  431.                                                                
  432.                                                                 bomb_c_exploding=1
  433.                                                                
  434.                                                                 ;Text 40,220,"bomc c Booming............"
  435.                                                                
  436.                                                         Else
  437.                                                                
  438.                                                                 ;Text 40,220,"bomc c still intact with bomcy#:"+bomcy#+" not less than TerrainY#: "+TerrainY#(createdTerrain,bomcx#,bomcy#,bomcz#)
  439.                                                                
  440.                                                                
  441.                                                                
  442.                                                         EndIf
  443.                                                        
  444.                                                 EndIf
  445.                                                
  446.                                                 ;If 0
  447.                                                
  448.                                                 If bomb_c_exploding=1
  449.                                                        
  450.                                                        
  451.                                                         Text 40,60,"Attempting to Crater where bomc B was"
  452.                                                        
  453.                                                         bx = EntityX(Cbomb)
  454.                                                         by = EntityY(Cbomb)
  455.                                                         bz = EntityZ(Cbomb)
  456.                                                        
  457.                                                         ModifyTerrain createdTerrain, bx/xdivide, (bz/zdivide), 0.02, 1;
  458.                                                         ModifyTerrain createdTerrain, (bx/xdivide)+1, (bz/zdivide)+1, 0.02, 1;
  459.                                                         ModifyTerrain createdTerrain, (bx/xdivide)+1, (bz/zdivide)+1, 0.02, 1;
  460.                                                         ModifyTerrain createdTerrain, bx/xdivide, (bz/zdivide)+1, 0.02, 1;
  461.                                                        
  462.                                                        
  463.                                                         ;Text 40,40,"Exploding bomb C"
  464.                                                        
  465.                                                 EndIf
  466.                                                
  467.                                         Else
  468.                                                 Text 20,20,"Press B to drop a bomb., Press R to raise the terrain - set peaks required by PEAKS variable."
  469.                                                 Text 20,1,"                              Cursors, Q, A, Z, W manipulate camera"
  470.                                         EndIf
  471.                                        
  472.                                         Text 300,40,"Raising Terrain by: "+raiseBy+" thru a grid of : "+pickgrid
  473.                                        
  474.                                         bombstext=0
  475.                                        
  476.                                         Flip
  477.                                        
  478.                                 Wend
  479.                                
  480.                                
  481.                                 FreeEntity createdTerrain
  482.                                 FreeEntity landterrain
  483.                                 FreeEntity lit
  484.                                 FreeEntity cam
  485.                                 EndGraphics
  486.                                 End
  487.                                
  488.                                
  489.                                
  490. Function dropbombs()
  491.        
  492.         bombstext=1
  493.        
  494.         bomb_a_falling=1
  495.         bomb_b_falling=1
  496.         bomb_c_falling=1
  497.        
  498.        
  499. End Function
  500.  
  501. Function stopbombs()
  502.        
  503.         bombstext=0
  504.        
  505. End Function
  506.  
  507.  
  508. Function raiseTerrain(createdTerrain,pickgrid)
  509.        
  510.         raiseBy=raiseBy+0.02
  511.        
  512.         If raiseBy=1 Then raiseBy=0.01
  513.        
  514.         For x=1 To pickgrid Step PEAKS
  515.                
  516.                 For z=1 To pickgrid Step BEAKS
  517.        
  518.                         ModifyTerrain(createdTerrain,x,z,raiseBy,True)
  519.        
  520.                 Next
  521.                
  522.         Next
  523.        
  524. End Function


Comments : none...

 

SimplePortal 2.3.6 © 2008-2014, SimplePortal