QB64.org Forum

Active Forums => Programs => Topic started by: bplus on October 14, 2018, 11:35:44 am

Title: More Sky Chickens
Post by: bplus on October 14, 2018, 11:35:44 am
Code: QB64: [Select]
  1. SCREEN _NEWIMAGE(800, 600, 32)
  2. _SCREENMOVE 300, 50
  3. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  4. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  5. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  6. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  7. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  8. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  9. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  10. DATA 0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0
  11. DATA 1,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0
  12. DATA 0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0
  13. DATA 0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0
  14. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  15. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  16. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  17. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  18. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  19.  
  20. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  21. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  22. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  23. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  24. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  25. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  26. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  27. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  28. DATA 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
  29. DATA 0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0
  30. DATA 0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0
  31. DATA 0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0
  32. DATA 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0
  33. DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0
  34. DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0
  35. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  36.  
  37.  
  38. DIM SHARED sprt(15, 15)
  39. FOR y = 0 TO 15
  40.     FOR x = 0 TO 15
  41.         READ sprt(x, y)
  42.     NEXT
  43.  
  44. DIM SHARED sprt2(15, 15)
  45. FOR y = 0 TO 15
  46.     FOR x = 0 TO 15
  47.         READ sprt2(x, y)
  48.     NEXT
  49.  
  50. TYPE btype
  51.     x AS SINGLE
  52.     y AS SINGLE
  53.     f AS INTEGER
  54.     a AS SINGLE
  55.  
  56. DIM SHARED bs(10000) AS btype
  57. bi = -1
  58.     CLS , _RGB32(0, 0, 128)
  59.     nloop = nloop + 1
  60.     IF RND < .15 AND (bi + 1) < 10000 THEN
  61.         bi = bi + 1
  62.         newb bi
  63.     END IF
  64.     FOR i = 0 TO bi
  65.         drawb i
  66.     NEXT
  67.     _DISPLAY
  68.     _LIMIT 20
  69.  
  70. SUB newb (i)
  71.     bs(i).x = 800 + RND * 320
  72.     bs(i).y = 600 + RND * 80
  73.     bs(i).f = INT(RND * 2)
  74.     bs(i).a = 0
  75.  
  76. SUB drawb (i)
  77.     IF bs(i).a < _PI(16) AND bs(i).y < 580 AND bs(i).y > -100 THEN
  78.         bs(i).a = bs(i).a + _PI(1 / 144)
  79.         bs(i).x = bs(i).x + bs(i).a * COS(bs(i).a)
  80.         bs(i).y = bs(i).y + .2 * bs(i).a * SIN(bs(i).a)
  81.         bs(i).y = bs(i).y - .2
  82.     ELSE
  83.         bs(i).x = bs(i).x - (RND * 8 + 2)
  84.         bs(i).y = bs(i).y - (RND * 6 + 1)
  85.     END IF
  86.     IF bs(i).y < -160 THEN newb i
  87.     bs(i).f = (bs(i).f + 1) MOD 10
  88.     sz = (600 - bs(i).y) * .006
  89.     IF bs(i).f = 0 OR bs(i).f = 1 THEN
  90.         FOR y = 0 TO 15
  91.             FOR x = 0 TO 15
  92.                 IF sprt2(x, y) THEN LINE (x * sz + bs(i).x, y * sz + bs(i).y)-STEP(sz, sz), _RGB32(0, 0, 0), BF
  93.             NEXT
  94.         NEXT
  95.     ELSE
  96.         FOR y = 0 TO 15
  97.             FOR x = 0 TO 15
  98.                 IF sprt(x, y) THEN LINE (x * sz + bs(i).x, y * sz + bs(i).y)-STEP(sz, sz), _RGB32(0, 0, 0), BF
  99.             NEXT
  100.         NEXT
  101.     END IF
  102.  
  103.  
Title: Re: More Sky Chickens
Post by: johnno56 on October 14, 2018, 04:40:38 pm
Hitchcock would have been proud of THAT display! (...as well as Colonel Sanders!) Great job!
Title: Re: More Sky Chickens
Post by: TempodiBasic on October 17, 2018, 05:28:01 pm
Hi Bplus
very cool all these flying  birds!
Title: Re: More Sky Chickens
Post by: bplus on October 17, 2018, 07:34:19 pm
Ha! Don't they look familiar? ;D
Title: Re: More Sky Chickens
Post by: TempodiBasic on October 18, 2018, 07:25:46 pm
not in the blue :-)
Title: Re: More Sky Chickens
Post by: johnno56 on October 19, 2018, 03:32:00 am
Code: QB64: [Select]
  1. SCREEN _NEWIMAGE(800, 600, 32)
  2. _SCREENMOVE 300, 50
  3.  
  4. CONST lightblue = _RGB32(128, 128, 255)
  5.  
  6. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  7. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  8. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  9. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  10. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  11. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  12. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  13. DATA 0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0
  14. DATA 1,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0
  15. DATA 0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0
  16. DATA 0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0
  17. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  18. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  19. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  20. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  21. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  22.  
  23. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  24. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  25. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  26. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  27. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  28. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  29. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  30. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  31. DATA 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
  32. DATA 0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0
  33. DATA 0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0
  34. DATA 0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0
  35. DATA 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0
  36. DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0
  37. DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0
  38. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  39.  
  40.  
  41. DIM SHARED sprt(15, 15)
  42. FOR y = 0 TO 15
  43.     FOR x = 0 TO 15
  44.         READ sprt(x, y)
  45.     NEXT
  46.  
  47. DIM SHARED sprt2(15, 15)
  48. FOR y = 0 TO 15
  49.     FOR x = 0 TO 15
  50.         READ sprt2(x, y)
  51.     NEXT
  52.  
  53. TYPE btype
  54.     x AS SINGLE
  55.     y AS SINGLE
  56.     f AS INTEGER
  57.     a AS SINGLE
  58.  
  59. DIM SHARED bs(10000) AS btype
  60. bi = -1
  61.     CLS , _RGB32(0, 0, 128)
  62.     nloop = nloop + 1
  63.     IF RND < .15 AND (bi + 1) < 10000 THEN
  64.         bi = bi + 1
  65.         newb bi
  66.     END IF
  67.     FOR i = 0 TO bi
  68.         drawb i
  69.     NEXT
  70.     _DISPLAY
  71.     _LIMIT 20
  72.  
  73. SUB newb (i)
  74.     bs(i).x = 800 + RND * 320
  75.     bs(i).y = 600 + RND * 80
  76.     bs(i).f = INT(RND * 2)
  77.     bs(i).a = 0
  78.  
  79. SUB drawb (i)
  80.     IF bs(i).a < _PI(16) AND bs(i).y < 580 AND bs(i).y > -100 THEN
  81.         bs(i).a = bs(i).a + _PI(1 / 144)
  82.         bs(i).x = bs(i).x + bs(i).a * COS(bs(i).a)
  83.         bs(i).y = bs(i).y + .2 * bs(i).a * SIN(bs(i).a)
  84.         bs(i).y = bs(i).y - .2
  85.     ELSE
  86.         bs(i).x = bs(i).x - (RND * 8 + 2)
  87.         bs(i).y = bs(i).y - (RND * 6 + 1)
  88.     END IF
  89.     IF bs(i).y < -160 THEN newb i
  90.     bs(i).f = (bs(i).f + 1) MOD 10
  91.     sz = (600 - bs(i).y) * .006
  92.     IF bs(i).f = 0 OR bs(i).f = 1 THEN
  93.         FOR y = 0 TO 15
  94.             FOR x = 0 TO 15
  95.                 IF sprt2(x, y) THEN LINE (x * sz + bs(i).x, y * sz + bs(i).y)-STEP(sz, sz), lightblue, BF
  96.             NEXT
  97.         NEXT
  98.     ELSE
  99.         FOR y = 0 TO 15
  100.             FOR x = 0 TO 15
  101.                 IF sprt(x, y) THEN LINE (x * sz + bs(i).x, y * sz + bs(i).y)-STEP(sz, sz), lightblue, BF
  102.             NEXT
  103.         NEXT
  104.     END IF
  105.  

Blue. As per your request... lol

J