Author Topic: Merry X-mas 2019!  (Read 3355 times)

0 Members and 1 Guest are viewing this topic.

This topic contains a post which is marked as Best Answer. Press here if you would like to see it.

FellippeHeitor

  • Guest
Merry X-mas 2019!
« on: December 23, 2019, 09:23:50 am »
 [ You are not allowed to view this attachment ]  
Code: QB64: [Select]
  1. TYPE star
  2.     x AS SINGLE
  3.     y AS SINGLE
  4.     size AS SINGLE
  5.     life AS INTEGER
  6.     maxlife AS INTEGER
  7.     lifeStep AS _BYTE
  8.  
  9. DIM stars(1000) AS star
  10. DIM canvas AS LONG
  11.  
  12. 'RANDOMIZE TIMER
  13.  
  14. GOSUB setMsg
  15.  
  16. canvas = _NEWIMAGE(800, 600, 32)
  17.  
  18. SCREEN canvas
  19.  
  20. _TITLE "Merry X-mas 2019!"
  21.  
  22. 'sky
  23. FOR i = 0 TO 800 STEP 15
  24.     CircleFill 0, 500, i, _RGB32(0, 0, 100, 10)
  25.  
  26. 'big star glow
  27. FOR i = 200 TO 280 STEP 10
  28.     EllipseFill 600, i, map(i, 200, 280, 80, 100), 150, _RGB32(0, 0, 100, 15)
  29.  
  30. 'big star
  31. FOR i = 0 TO 720 STEP _PI(.5)
  32.     LINE (600, 200)-(600 + COS(_D2R(i)) * (RND * 60), 200 + SIN(_D2R(i)) * (RND * 60)), _RGB32(255, map(i, 0, 720, 0, 80))
  33.  
  34. 'mountain range
  35.     LINE (i, 480 + COS(_D2R(i)) * 5)-(i + _WIDTH / 3, _HEIGHT), _RGB32(0, 0, 40, map(i, -_WIDTH, _WIDTH, 0, 20))
  36.  
  37. 'snow
  38. FOR i = 0 TO _WIDTH STEP .1
  39.     LINE (i, 500 + COS(_D2R(i)) * 5)-(i + _WIDTH / 3, _HEIGHT), _RGB32(255, map(i, 0, _WIDTH, 0, 10))
  40.  
  41. 'trees
  42. FOR t = 1 TO 4 + _CEIL(RND * 10)
  43.     x = 350 + RND * 450
  44.     h1 = _HEIGHT - RND * 80
  45.     h2 = h1 - (50 + RND * 50)
  46.     m = 30
  47.     FOR i = h1 TO h2 STEP -1
  48.         FOR j = 180 TO 360
  49.             LINE (x, i)-(x + COS(_D2R(j)) * RND * map(i, h1, h2, RND * m, 1), i + SIN(_D2R(j)) * RND * map(i, h1, h2, m, 1)), _RGB32(0, RND * m, 0, RND * 100)
  50.         NEXT
  51.     NEXT
  52.  
  53.     m = m + 30
  54.     FOR i = h1 TO h2 STEP -1
  55.         FOR j = 180 TO 360 STEP 30
  56.             LINE (x, i)-(x + COS(_D2R(j)) * RND * map(i, h1, h2, RND * m, 1), i + SIN(_D2R(j)) * RND * map(i, h1, h2, m, 1)), _RGB32(0, RND * m, 0, RND * 100)
  57.         NEXT
  58.     NEXT
  59.  
  60. 'create stars
  61. FOR i = 0 TO UBOUND(stars)
  62.     stars(i).x = RND * _WIDTH
  63.     stars(i).y = RND * (_HEIGHT - 120)
  64.     stars(i).size = RND
  65.     IF stars(i).x - stars(i).size <= 0 THEN stars(i).x = stars(i).x + stars(i).size
  66.     IF stars(i).x + stars(i).size >= _WIDTH THEN stars(i).x = stars(i).x - stars(i).size
  67.     stars(i).life = RND * 30
  68.     stars(i).maxlife = 20 + RND * 180
  69.     stars(i).lifeStep = 1
  70.  
  71. bg = _COPYIMAGE(0)
  72. logo$ = "internal/source/qb64icon32.png"
  73.     qb64logo = _LOADIMAGE(logo$)
  74.  
  75.  
  76. ml = INSTR(ml + 1, msg$, CHR$(32))
  77.     CLS
  78.     _PUTIMAGE , bg
  79.     FOR i = 0 TO UBOUND(stars)
  80.         CircleFill stars(i).x, stars(i).y, stars(i).size, _RGB32(map(stars(i).life, 0, stars(i).maxlife, 0, 255), map(stars(i).life, 0, stars(i).maxlife, 0, 80))
  81.         stars(i).life = stars(i).life + stars(i).lifeStep
  82.         IF stars(i).life > stars(i).maxlife OR stars(i).life < 0 THEN
  83.             stars(i).lifeStep = stars(i).lifeStep * -1
  84.         END IF
  85.     NEXT
  86.     IF qb64logo < -1 THEN _PUTIMAGE (_WIDTH - 50, _HEIGHT - 50), qb64logo
  87.  
  88.     IF ml = 0 AND startpause = 0 THEN
  89.         IF startpause = 0 THEN startpause = TIMER
  90.         DRAW msg$
  91.     ELSEIF ml = 0 AND startpause > 0 THEN
  92.         DRAW msg$
  93.         IF TIMER - startpause > 3 THEN
  94.             startpause = 0
  95.             ml = INSTR(ml + 1, msg$, CHR$(32))
  96.         END IF
  97.     ELSE
  98.         DRAW LEFT$(msg$, ml)
  99.         ml = INSTR(ml + 1, msg$, CHR$(32))
  100.     END IF
  101.  
  102.     _DISPLAY
  103.     _LIMIT 60
  104.  
  105. oops:
  106.  
  107. setMsg:
  108. msg$ = "B C4294967295 M43,260 M43,261 M43,261 M44,261 M44,261 M46,260 M46,260 M60,249"
  109. msg$ = msg$ + "M60,249 M62,247 M62,247 M63,245 M64,242 M65,240 M65,240 M68,232 M68,232 M68,231"
  110. msg$ = msg$ + "M68,231 M69,229 M69,229 M69,231 M69,231 M69,234 M69,234 M69,236 M69,236 M71,245"
  111. msg$ = msg$ + "M71,245 M71,250 M71,250 M71,251 M71,251 M71,253 M71,254 M72,258 M72,258 M72,261"
  112. msg$ = msg$ + "M72,261 M72,264 M72,264 M74,274 M74,274 M74,275 M74,276 M75,280 M75,280 M75,282"
  113. msg$ = msg$ + "M75,283 M76,289 M76,289 M76,293 M76,293 M77,293 M77,293 M77,292 M77,292 M80,286"
  114. msg$ = msg$ + "M80,286 M82,282 M82,282 M84,277 M84,277 M86,272 M86,272 M88,265 M88,265 M90,259"
  115. msg$ = msg$ + "M90,259 M91,256 M92,251 M93,246 M93,246 M95,232 M95,232 M97,222 M97,222 M97,221"
  116. msg$ = msg$ + "M97,221 M97,220 M97,220 M97,217 M97,217 M97,216 M97,216 M98,221 M98,221 M98,224"
  117. msg$ = msg$ + "M98,228 M100,240 M100,240 M100,242 M100,242 M104,260 M104,260 M105,266 M105,266"
  118. msg$ = msg$ + "M105,269 M105,269 M107,276 M107,276 M108,274 M108,274 M110,273 M110,273 M114,267"
  119. msg$ = msg$ + " M115,265 M116,262 M116,262 M122,246 M122,246 M123,241 M123,241 M123,239 M123,"
  120. msg$ = msg$ + "239 M124,225 M124,225 M124,222 M124,222 M124,219 M124,219 M124,217 M124,217 M125"
  121. msg$ = msg$ + ",213 M125,213 M125,208 M125,208 M126,205 M126,205 M126,202 M126,202 M126,200"
  122. msg$ = msg$ + "M126,200 M127,201 M127,201 M127,204 M127,208 M127,212 M127,212 M129,227 M129,227"
  123. msg$ = msg$ + " M129,229 M129,233 M130,234 M130,234 M131,242 M131,242 M132,251 M132,251 M133,"
  124. msg$ = msg$ + "251 M133,251 M135,255 M135,255 M137,258 M137,258 M138,258 M138,258 M141,259 M141"
  125. msg$ = msg$ + ",259 M142,260 M142,260 M148,260 M148,260 M156,258 M156,258 M159,257 M159,257"
  126. msg$ = msg$ + "M161,255 M161,255 M170,247 M170,247 M171,244 M171,244 M173,240 M173,240 M173,238"
  127. msg$ = msg$ + " M173,238 M175,229 M175,229 M175,228 M175,228 M175,227 M175,227 M173,224 M173,"
  128. msg$ = msg$ + "224 M171,222 M171,222 M170,222 M170,222 M169,223 M169,223 M168,227 M168,227 M168"
  129. msg$ = msg$ + ",228 M168,228 M170,234 M170,234 M170,235 M171,238 M172,241 M172,241 M175,245"
  130. msg$ = msg$ + "M175,245 M177,248 M177,248 M178,248 M178,248 M183,249 M183,249 M189,245 M190,244"
  131. msg$ = msg$ + " M192,240 M192,240 M194,226 M194,226 M194,221 M194,221 M192,216 M192,216 M191,"
  132. msg$ = msg$ + "214 M191,214 M190,213 M190,213 M194,212 M194,212 M197,212 M197,212 M199,211 M199"
  133. msg$ = msg$ + ",211 M199,212 M199,212 M198,215 M198,215 M198,217 M198,217 M198,221 M198,221"
  134. msg$ = msg$ + "M198,222 M198,222 M198,225 M198,225 M199,228 M199,228 M199,229 M199,229 M202,234"
  135. msg$ = msg$ + " M202,234 M205,236 M205,236 M208,238 M208,238 M214,237 M214,237 M217,235 M217,"
  136. msg$ = msg$ + "235 M220,231 M220,231 M220,225 M220,225 M219,216 M219,216 M216,208 M216,208 M212"
  137. msg$ = msg$ + ",201 M212,201 M205,197 M205,197 M203,196 M203,196 M204,198 M204,198 M205,198"
  138. msg$ = msg$ + "M208,198 M215,199 M215,199 M218,199 M218,199 M222,199 M222,199 M223,203 M223,203"
  139. msg$ = msg$ + " M223,205 M223,205 M224,211 M224,211 M227,218 M227,218 M228,218 M228,218 M234,"
  140. msg$ = msg$ + "221 M235,221 M236,221 M236,221 M240,216 M240,216 M242,208 M242,205 M243,202 M243"
  141. msg$ = msg$ + ",202 M242,190 M242,190 M242,189 M242,189 M242,188 M242,188 M242,190 M242,190"
  142. msg$ = msg$ + "M243,196 M243,196 M247,212 M247,212 M250,216 M250,216 M256,211 M256,211 M262,203"
  143. msg$ = msg$ + " M262,203 M263,173 M263,173 M262,171 M262,171 M262,170 M262,170 M262,172 M262,"
  144. msg$ = msg$ + "172 M263,181 M263,181 M268,202 M268,202 M273,219 M273,219 M278,235 M278,235 M284"
  145. msg$ = msg$ + ",266 M284,266 M283,272 M283,272 M280,277 M280,277 M279,277 M279,277 M272,264"
  146. msg$ = msg$ + "M272,264 M271,257 M271,257 M271,250 M271,250 M274,240 M275,237 M287,217 M287,217"
  147. msg$ = msg$ + " M294,208 M294,208 M302,200 M302,200 M310,192 M310,192 M319,182 M321,180 M333,"
  148. msg$ = msg$ + "161 M333,161 M335,153 M335,153 M335,150 M335,150 M335,149 M335,149 M335,148 M335"
  149. msg$ = msg$ + ",148 B M151,330 M151,331 M151,331 M155,346 M155,346 M163,360 M163,360 M174,367"
  150. msg$ = msg$ + "M174,367 M199,366 M199,366 M210,362 M210,362 M213,360 M213,360 M214,358 B M175,"
  151. msg$ = msg$ + "285 M178,303 M178,303 M181,340 M181,340 M176,408 M176,408 M177,437 M177,437 M177"
  152. msg$ = msg$ + ",438 M177,438 B M211,333 M222,326 M222,326 M227,322 M227,322 M230,320 B M242,292"
  153. msg$ = msg$ + " M243,299 M243,299 M249,316 M249,316 M252,327 M252,327 M253,330 M253,330 M254,"
  154. msg$ = msg$ + "332 M254,332 M254,334 M254,334 M262,322 M263,321 M264,316 M264,316 M268,303 M268"
  155. msg$ = msg$ + ",303 M270,295 M270,295 M272,288 M273,288 M273,286 M273,286 M274,286 M274,286"
  156. msg$ = msg$ + "M275,292 M275,292 M280,308 M280,308 M284,313 M284,313 M285,313 M285,313 M289,303"
  157. msg$ = msg$ + " M289,303 M291,292 M292,289 M293,278 M293,278 M296,269 M296,269 M301,263 M301,"
  158. msg$ = msg$ + "263 M302,261 M302,261 M302,260 M302,260 M303,263 M303,263 M303,274 M303,274 M305"
  159. msg$ = msg$ + ",284 M305,284 M306,290 M306,290 M308,294 M308,294 M313,298 M313,298 M316,298"
  160. msg$ = msg$ + "M316,298 M332,289 M332,289 M337,280 M337,280 M338,280 B M362,236 M362,235 M362,"
  161. msg$ = msg$ + "235 M361,233 M361,232 M360,228 M360,228 M358,227 M358,227 M351,227 M351,227 M342"
  162. msg$ = msg$ + ",231 M342,231 M341,232 M341,232 M338,238 M338,238 M338,239 M338,239 M335,252"
  163. msg$ = msg$ + "M335,252 M336,261 M336,261 M337,265 M337,265 M338,266 M338,266 M339,268 M339,268"
  164. msg$ = msg$ + " M340,269 M340,269 M342,270 M342,270 M343,271 M343,271 M346,270 M346,270 M349,"
  165. msg$ = msg$ + "268 M349,268 M353,264 M353,264 M355,260 M355,260 M358,251 M358,251 M359,246 M359"
  166. msg$ = msg$ + ",246 M361,241 M361,241 M362,238 M362,238 M363,233 M363,233 M363,234 M363,234"
  167. msg$ = msg$ + "M361,239 M361,240 M360,244 M360,244 M362,256 M362,256 M364,258 M364,258 M367,258"
  168. msg$ = msg$ + " M367,258 M373,256 M373,256 M377,253 M377,253 M383,244 M383,244 M384,240 M384,"
  169. msg$ = msg$ + "240 M385,239 M385,239 B M380,231 M383,224 M383,224 M386,218 M386,218 M392,204"
  170. msg$ = msg$ + "M392,204 M395,192 M395,192 M396,186 M396,186 M396,185 M396,185 M396,187 M396,187"
  171. msg$ = msg$ + " M398,193 M398,193 M401,198 M401,198 M403,199 M403,199 M414,196 M414,196 M418,"
  172. msg$ = msg$ + "194 M418,194 M418,195 M418,195 M418,204 M418,204 M418,213 M418,213 M416,220 M416"
  173. msg$ = msg$ + ",220 M415,223 M414,224 M413,227 M413,227 M406,233 M406,233 M403,234 M403,234"
  174. msg$ = msg$ + "M402,234 M402,234 M401,231 M401,231 M400,229 M400,229 M400,225 M400,225 M404,216"
  175. msg$ = msg$ + " M404,216 M407,212 M407,211 M408,207 M408,207 M408,206 M408,206 B M429,100 M430,"
  176. msg$ = msg$ + "101 M430,101 M430,102 M430,102 M430,130 M430,130 M430,132 M430,132 M429,166 M429"
  177. msg$ = msg$ + ",171 M430,182 M430,182 M431,188 M431,188 M431,195 M431,195 M431,200 M431,200"
  178. msg$ = msg$ + "M431,205 M431,205 M431,206 M431,206 M433,206 B M442,219 M441,219 M441,219 M439,"
  179. msg$ = msg$ + "220 M439,220 M437,221 M437,221 M435,224 M435,224 M434,226 M434,226 M434,227 M434"
  180. msg$ = msg$ + ",227 M435,227 M435,227 M439,227 M439,227 M441,227 M441,227 M443,226 M443,226"
  181. msg$ = msg$ + "M444,225 M444,225 M445,223 M445,223 M445,222 M445,222 M444,222 M444,222 M443,222"
  182. msg$ = msg$ + " M443,222 M440,222 M440,222 M439,222 M439,222 M437,223 B M216,441 M266,394 M266,"
  183. msg$ = msg$ + "394 M359,329 M359,329 M385,320 M387,319 M388,318 M388,318 M381,327 M381,327 M303"
  184. msg$ = msg$ + ",406 M303,406 M263,459 M263,459 M261,479 M261,479 M329,430 M329,430 M394,382"
  185. msg$ = msg$ + "M394,382 M424,371 M424,371 M424,372 M424,372 M333,454 M333,454 M408,478 M408,478"
  186. msg$ = msg$ + " M416,494 M415,497 M411,527"
  187.  
  188. FUNCTION map! (value!, minRange!, maxRange!, newMinRange!, newMaxRange!)
  189.     map! = ((value! - minRange!) / (maxRange! - minRange!)) * (newMaxRange! - newMinRange!) + newMinRange!
  190.  
  191. SUB CircleFill (CX AS INTEGER, CY AS INTEGER, R AS INTEGER, C AS _UNSIGNED LONG)
  192.     ' CX = center x coordinate
  193.     ' CY = center y coordinate
  194.     '  R = radius
  195.     '  C = fill color
  196.     DIM Radius AS INTEGER, RadiusError AS INTEGER
  197.     DIM X AS INTEGER, Y AS INTEGER
  198.     Radius = ABS(R)
  199.     RadiusError = -Radius
  200.     X = Radius
  201.     Y = 0
  202.     IF Radius = 0 THEN PSET (CX, CY), C: EXIT SUB
  203.     LINE (CX - X, CY)-(CX + X, CY), C, BF
  204.     WHILE X > Y
  205.         RadiusError = RadiusError + Y * 2 + 1
  206.         IF RadiusError >= 0 THEN
  207.             IF X <> Y + 1 THEN
  208.                 LINE (CX - Y, CY - X)-(CX + Y, CY - X), C, BF
  209.                 LINE (CX - Y, CY + X)-(CX + Y, CY + X), C, BF
  210.             END IF
  211.             X = X - 1
  212.             RadiusError = RadiusError - X * 2
  213.         END IF
  214.         Y = Y + 1
  215.         LINE (CX - X, CY - Y)-(CX + X, CY - Y), C, BF
  216.         LINE (CX - X, CY + Y)-(CX + X, CY + Y), C, BF
  217.     WEND
  218.  
  219. SUB EllipseFill (CX AS INTEGER, CY AS INTEGER, a AS INTEGER, b AS INTEGER, C AS _UNSIGNED LONG)
  220.     ' CX = center x coordinate
  221.     ' CY = center y coordinate
  222.     '  a = semimajor axis
  223.     '  b = semiminor axis
  224.     '  C = fill color
  225.     IF a = 0 OR b = 0 THEN EXIT SUB
  226.     DIM h2 AS _INTEGER64
  227.     DIM w2 AS _INTEGER64
  228.     DIM h2w2 AS _INTEGER64
  229.     DIM x AS INTEGER
  230.     DIM y AS INTEGER
  231.     w2 = a * a
  232.     h2 = b * b
  233.     h2w2 = h2 * w2
  234.     LINE (CX - a, CY)-(CX + a, CY), C, BF
  235.     DO WHILE y < b
  236.         y = y + 1
  237.         x = SQR((h2w2 - y * y * w2) \ h2)
  238.         LINE (CX - x, CY + y)-(CX + x, CY + y), C, BF
  239.         LINE (CX - x, CY - y)-(CX + x, CY - y), C, BF
  240.     LOOP
  241.  
« Last Edit: December 23, 2019, 10:24:11 am by FellippeHeitor »

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
    • View Profile
Re: Merry X-mas 2019!
« Reply #1 on: December 23, 2019, 10:17:01 am »
Hi Great Odin, I claim your intervention  to move this thread in Programs section of the  forum . Too Cool.
Programming isn't difficult, only it's  consuming time and coffee

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: Merry X-mas 2019!
« Reply #2 on: December 23, 2019, 10:24:14 am »
Nice one Fellippe, Merry Christmas to All!

Marked as best answer by on September 18, 2024, 07:16:45 pm

FellippeHeitor

  • Guest
Re: Merry X-mas 2019!
« Reply #3 on: December 23, 2019, 10:24:55 am »
  • Undo Best Answer
  • @bplus: I was inspired by your generative landscapes of previous years.
    « Last Edit: December 23, 2019, 10:27:26 am by FellippeHeitor »

    Offline bplus

    • Global Moderator
    • Forum Resident
    • Posts: 8053
    • b = b + ...
      • View Profile
    Re: Merry X-mas 2019!
    « Reply #4 on: December 23, 2019, 10:29:59 am »
    Ha! yeah I read the writing on the wall :) But your trees and landscape are nice and new to me.

    Fellippe, Oh you edited, I thought you were talking of this from last year:
    Code: QB64: [Select]
    1. _TITLE "Christmas Star Tree" 'B+  2018-11-30
    2.  
    3. CONST xmax = 1280
    4. CONST ymax = 720
    5. COMMON SHARED cN, pR, pG, Plasma AS _UNSIGNED LONG
    6.  
    7. 'for Plasma writing
    8. DIM SHARED maxIndex AS INTEGER
    9. maxIndex = 3200
    10. REDIM SHARED xyDat%(maxIndex, 1)
    11. DIM SHARED cNw, pRw, pGw, pBw, indexP, DOTi
    12. loadPlasmaData
    13. resetPlasmaWrite
    14.  
    15. SCREEN _NEWIMAGE(xmax, ymax, 32)
    16.  
    17. 'begin drawing background stars&
    18. stars& = _NEWIMAGE(xmax, ymax, 32)
    19. _DEST stars&
    20. FOR i = 0 TO ymax - 80 ' sky
    21.     LINE (0, i)-(xmax, i), _RGB32(50, 0, i / ymax * 68)
    22. FOR s = 1 TO 100 ' stars
    23.     c = rand(155, 255)
    24.     COLOR _RGBA32(c, c, c, RND * 100 + 155)
    25.     fcirc RND * xmax, rand(0, 520), rand(0, 3)
    26. FOR i = ymax - 80 TO ymax 'ground
    27.     LINE (0, i)-(xmax, i), _RGB32(50, 30, 20)
    28.  
    29. ' setup for main screen
    30. midx = 400
    31. starCenterY = 30
    32. maxd = ((ymax - starCenterY) ^ 2 + (midx - xmax) ^ 2) ^ .5
    33. ofs = 0
    34. dir = 1
    35. DO WHILE _KEYDOWN(27) = 0 'main loop
    36.  
    37.     'update message
    38.     _DEST stars&
    39.     changePlasmaWrite
    40.     DOTi = DOTi + 2
    41.     IF DOTi <= indexP THEN fcirc xyDat%(DOTi, 0), xyDat%(DOTi, 1), 10
    42.  
    43.     'show update
    44.     _DEST 0
    45.     _PUTIMAGE , stars&, 0
    46.  
    47.     'main star over tree
    48.     resetPlasma
    49.     FOR a = 0 TO _PI(2) STEP _PI(1 / 36)
    50.         IF a = 0 THEN
    51.             lastx = midx + maxd * COS(a)
    52.             lasty = starCenterY + maxd * SIN(a)
    53.         ELSE
    54.             x1 = midx + maxd * COS(a)
    55.             y1 = starCenterY + maxd * SIN(a)
    56.             changePlasma
    57.             ftri midx, starCenterY, lastx, lasty, x1, y1, Plasma
    58.             lastx = x1: lasty = y1
    59.         END IF
    60.     NEXT
    61.     FOR R = 25 TO 0 STEP -1
    62.         COLOR _RGBA(255, 255, 205, (25 - R) ^ 2 / 2.5)
    63.         fcirc midx, starCenterY, R
    64.     NEXT
    65.  
    66.     'tree
    67.     stepper = stepper + dir
    68.     IF stepper > 75 THEN dir = dir * -1: stepper = 75
    69.     IF stepper < 14 THEN dir = dir * -1: stepper = 14
    70.     FOR y = 80 TO ymax - 20 STEP stepper
    71.         star midx, y, 5 + .1 * y, 15 + .5 * y, 6, ofs + _PI(y / 720)
    72.     NEXT
    73.     _DISPLAY
    74.     ofs = ofs + _PI(1 / 36)
    75.     IF ofs > _PI(2) THEN ofs = 0
    76.     _LIMIT 8
    77.  
    78. SUB changePlasma ()
    79.     cN = cN + 1
    80.     Plasma = _RGBA(200 + 56 * SIN(pR * cN), 200 + 56 * SIN(pG * cN), 128, RND * 64 + 30)
    81.  
    82. SUB resetPlasma ()
    83.     pR = RND ^ 2: pG = RND ^ 2
    84.  
    85. SUB ftri (x1, y1, x2, y2, x3, y3, K AS _UNSIGNED LONG)
    86.     a& = _NEWIMAGE(1, 1, 32)
    87.     _DEST a&
    88.     PSET (0, 0), K
    89.     _DEST 0
    90.     _MAPTRIANGLE _SEAMLESS(0, 0)-(0, 0)-(0, 0), a& TO(x1, y1)-(x2, y2)-(x3, y3)
    91.     _FREEIMAGE a& '<<< this is important!
    92.  
    93. SUB fatLine (x1, y1, x2, y2)
    94.     stepx = x2 - x1: stepy = y2 - y1
    95.     length = INT((stepx ^ 2 + stepy ^ 2) ^ .5)
    96.     IF length THEN
    97.         dx = stepx / length: dy = stepy / length
    98.         FOR i = 0 TO length
    99.             CIRCLE (x1 + dx * i, y1 + dy * i), 5
    100.         NEXT
    101.     END IF
    102.  
    103. SUB star (x, y, rInner, rOuter, nPoints, angleOffset)
    104.     ' x, y are same as for circle,
    105.     ' rInner is center circle radius
    106.     ' rOuter is the outer most point of star
    107.     ' nPoints is the number of points,
    108.     ' angleOffset = angle offset in radians
    109.     ' this is to allow us to spin the star
    110.  
    111.     'modified a bit for stacking up a tree
    112.  
    113.     DIM ar(INT(nPoints) * 4 + 3) 'add two for origin
    114.     pAngle = _PI(2) / nPoints: radAngleOffset = angleOffset - _PI(1 / 2)
    115.     x1 = x + rOuter * COS(radAngleOffset)
    116.     y1 = y + .2 * rOuter * SIN(radAngleOffset)
    117.     idx = 4
    118.     FOR i = 0 TO nPoints - 1
    119.         x2 = x + rInner * COS(i * pAngle + radAngleOffset + .5 * pAngle)
    120.         y2 = y + .2 * rInner * SIN(i * pAngle + radAngleOffset + .5 * pAngle)
    121.         COLOR _RGB32(rand(0, 40), rand(40, 120), rand(0, 35))
    122.         fatLine x1, y1, x2, y2
    123.         x1 = x2
    124.         y1 = y2
    125.         x2 = x + rOuter * COS((i + 1) * pAngle + radAngleOffset)
    126.         y2 = y + .2 * rOuter * SIN((i + 1) * pAngle + radAngleOffset)
    127.         COLOR _RGB32(rand(0, 40), rand(40, 120), rand(0, 35))
    128.         fatLine x1, y1, x2, y2
    129.         x1 = x2
    130.         y1 = y2
    131.     NEXT
    132.  
    133. FUNCTION rand% (lo%, hi%)
    134.     rand% = INT(RND * (hi% - lo% + 1)) + lo%
    135.  
    136. SUB fcirc (CX AS LONG, CY AS LONG, R AS LONG)
    137.     DIM subRadius AS LONG, RadiusError AS LONG
    138.     DIM X AS LONG, Y AS LONG
    139.  
    140.     subRadius = ABS(R)
    141.     RadiusError = -subRadius
    142.     X = subRadius
    143.     Y = 0
    144.  
    145.     IF subRadius = 0 THEN PSET (CX, CY): EXIT SUB
    146.  
    147.     ' Draw the middle span here so we don't draw it twice in the main loop,
    148.     ' which would be a problem with blending turned on.
    149.     LINE (CX - X, CY)-(CX + X, CY), , BF
    150.  
    151.     WHILE X > Y
    152.         RadiusError = RadiusError + Y * 2 + 1
    153.         IF RadiusError >= 0 THEN
    154.             IF X <> Y + 1 THEN
    155.                 LINE (CX - Y, CY - X)-(CX + Y, CY - X), , BF
    156.                 LINE (CX - Y, CY + X)-(CX + Y, CY + X), , BF
    157.             END IF
    158.             X = X - 1
    159.             RadiusError = RadiusError - X * 2
    160.         END IF
    161.         Y = Y + 1
    162.         LINE (CX - X, CY - Y)-(CX + X, CY - Y), , BF
    163.         LINE (CX - X, CY + Y)-(CX + X, CY + Y), , BF
    164.     WEND
    165.  
    166. 'separatePlasma for writing than main star
    167. SUB changePlasmaWrite ()
    168.     cNw = cNw + .5
    169.     COLOR _RGB(127 + 127 * SIN(pRw * cNw), 127 + 127 * SIN(pGw * cNw), 127 + 127 * SIN(pBw * cNw))
    170.  
    171. SUB resetPlasmaWrite ()
    172.     pRw = RND ^ 2: pGw = RND ^ 2: pBw = RND ^ 2
    173.  
    174. SUB loadPlasmaData
    175.     indexP = 0
    176.     WHILE dx <> 9999
    177.         READ dx, dy
    178.         IF dx <> 9999 THEN xyDat%(indexP, 0) = dx: xyDat%(indexP, 1) = dy: indexP = indexP + 1
    179.     WEND
    180.  
    181. DATA 877,65,877,65,877,65,877,65,877,65,877,67,877,70,877,74,877,79,878,85
    182. DATA 878,89,878,95,879,100,881,105,881,111,881,116,882,120,882,122,883,126,883,131
    183. DATA 883,135,883,140,883,144,883,148,883,153,883,159,883,164,883,166,883,177,883,179
    184. DATA 883,183,883,188,884,191,884,194,884,197,884,201,884,203,884,205,884,207,884,208
    185. DATA 884,210,884,211,883,211,883,211,878,211,874,211,859,210,853,210,843,210,840,210
    186. DATA 828,211,824,211,817,211,806,210,799,209,797,208,795,207,795,207,795,207,795,207
    187. DATA 795,207,795,207,795,207,795,207,795,207,795,207,795,207,795,207,795,207,795,207
    188. DATA 795,207,795,207,795,207,795,207,943,154,942,154,940,156,938,159,937,162,936,164
    189. DATA 935,167,935,170,934,173,934,174,934,177,934,179,934,183,935,186,937,189,937,192
    190. DATA 938,195,939,197,939,199,940,200,940,201,941,202,941,203,942,203,943,203,943,204
    191. DATA 944,204,945,204,945,204,948,205,949,205,952,206,956,206,962,206,966,206,968,205
    192. DATA 969,205,970,203,972,201,974,200,976,199,978,198,978,197,979,196,980,194,980,192
    193. DATA 980,190,980,186,980,183,980,182,980,181,980,180,980,179,980,178,980,177,978,175
    194. DATA 977,173,975,171,974,169,971,167,970,166,968,165,968,165,968,165,968,164,968,164
    195. DATA 967,164,965,163,963,163,962,162,962,161,961,161,961,161,961,161,960,161,960,161
    196. DATA 960,161,960,161,960,161,960,161,960,161,960,161,960,161,960,161,960,161,960,161
    197. DATA 960,161,960,161,960,161,960,161,960,161,960,161,960,161,960,161,960,161,1020,159
    198. DATA 1020,159,1020,159,1020,159,1020,159,1020,159,1020,162,1020,166,1021,172,1022,173,1024,178
    199. DATA 1026,180,1027,185,1028,188,1029,190,1030,192,1031,193,1031,195,1032,196,1033,197,1034,199
    200. DATA 1034,201,1036,203,1036,204,1037,205,1037,205,1037,205,1037,205,1037,205,1037,205,1037,205
    201. DATA 1037,205,1037,205,1037,205,1037,205,1037,205,1037,205,1037,205,1037,205,1037,205,1037,205
    202. DATA 1037,205,1037,205,1037,205,1037,205,1038,205,1038,204,1039,203,1040,200,1040,198,1041,195
    203. DATA 1042,192,1043,188,1044,187,1046,181,1046,180,1047,176,1047,175,1049,171,1051,169,1051,168
    204. DATA 1052,167,1052,166,1052,165,1053,164,1053,164,1053,163,1054,162,1055,161,1055,160,1055,159
    205. DATA 1055,158,1055,157,1056,157,1056,156,1056,155,1056,154,1056,154,1057,153,1057,153,1057,153
    206. DATA 1057,153,1057,153,1057,153,1057,153,1057,153,1057,153,1057,153,1057,153,1057,153,1036,204
    207. DATA 1036,204,1036,204,1036,204,1036,204,1036,204,1036,204,1036,204,1036,204,1036,204,1036,204
    208. DATA 1036,204,1036,204,1036,204,1036,204,1036,204,1036,204,1036,204,1036,204,1036,204,1036,204
    209. DATA 1036,204,1036,204,1036,204,1036,204,1036,204,1036,204,1036,204,1036,204,1036,204,1036,204
    210. DATA 1036,204,1036,204,1036,204,1035,207,1035,209,1035,211,1035,214,1034,218,1034,221,1033,225
    211. DATA 1032,229,1031,234,1030,237,1029,241,1028,243,1028,245,1028,246,1027,247,1026,249,1026,250
    212. DATA 1026,251,1026,251,1026,251,1026,251,1026,251,1026,251,1026,251,1026,251,1026,251,1026,251
    213. DATA 1026,251,1026,251,1026,251,1026,251,1026,251,1026,251,1026,251,1026,251,1026,251,1026,251
    214. DATA 1026,251,1026,251,1026,251,1026,251,1026,251,1026,251,1026,251,1026,251,1026,251,1026,251
    215. DATA 1026,251,1026,251,1025,252,1024,254,1024,256,1024,257,1024,257,1024,257,1024,257,1024,257
    216. DATA 1024,257,1024,257,1024,257,1024,257,1024,257,1024,257,1024,257,1024,257,1024,257,1024,257
    217. DATA 1024,257,1024,257,843,318,843,318,843,318,843,318,843,318,843,318,843,318,843,318
    218. DATA 843,319,843,319,844,323,845,325,845,334,846,341,846,350,847,363,848,375,848,387
    219. DATA 849,400,850,405,850,408,851,411,851,413,851,414,851,414,851,414,851,414,851,414
    220. DATA 851,414,851,414,851,416,851,416,851,416,851,416,851,416,851,416,831,375,831,375
    221. DATA 831,375,831,375,831,375,831,375,831,375,831,375,832,375,835,375,850,375,866,375
    222. DATA 883,375,891,375,894,375,898,375,899,375,899,375,899,375,899,375,900,375,900,375
    223. DATA 900,375,900,375,900,375,900,375,900,375,900,375,900,375,900,375,931,374,931,374
    224. DATA 931,374,928,377,927,380,924,384,922,387,921,389,921,391,921,394,921,394,923,397
    225. DATA 924,398,924,399,925,400,927,402,928,404,929,405,930,406,930,407,930,407,930,407
    226. DATA 931,407,931,407,933,407,941,405,944,404,946,402,947,401,948,399,948,398,948,397
    227. DATA 948,397,949,395,949,394,949,393,949,392,949,391,949,390,949,389,949,388,949,387
    228. DATA 949,385,949,383,949,383,949,381,948,380,947,380,947,380,947,380,947,380,947,380
    229. DATA 947,380,947,380,947,380,947,380,947,380,947,380,947,380,947,380,947,380,1023,303
    230. DATA 1023,303,1023,303,1022,306,1022,309,1022,314,1022,318,1023,323,1024,332,1025,341,1026,350
    231. DATA 1026,356,1026,361,1027,369,1028,371,1028,373,1028,375,1028,377,1028,380,1028,383,1028,386
    232. DATA 1028,388,1028,391,1028,392,1028,393,1029,393,1029,393,1029,393,1029,393,1029,393,1029,393
    233. DATA 1029,393,1029,393,1029,393,1029,393,1029,393,1029,393,1029,393,1029,395,1029,397,1030,398
    234. DATA 1030,398,1030,398,1030,398,1030,398,1030,398,1030,400,1030,401,1030,403,1030,404,1030,404
    235. DATA 1030,404,1030,404,1030,404,1030,405,1030,405,1030,405,1030,405,1030,405,1030,405,1030,405
    236. DATA 997,352,997,352,997,352,997,352,997,352,997,352,997,352,997,352,997,352,998,352
    237. DATA 1003,352,1011,353,1023,353,1028,352,1030,351,1031,351,1031,351,1031,351,1031,351,1031,351
    238. DATA 1031,351,1031,351,1031,351,1031,351,1031,351,1031,351,1031,351,1032,351,1032,351,1032,351
    239. DATA 1032,351,1032,351,1032,351,1032,351,1032,351,1032,351,1032,351,1032,351,1032,351,1032,351
    240. DATA 1032,351,1032,351,1032,351,1032,351,1032,351,1032,351,1032,351,1032,351,1033,351,1035,351
    241. DATA 1036,350,1037,350,1037,350,1037,350,1038,350,1039,350,1040,350,1041,349,1042,349,1042,349
    242. DATA 1042,349,1042,349,1042,349,1042,349,1042,349,1042,349,1042,349,1042,349,1059,296,1059,296
    243. DATA 1059,296,1059,296,1059,296,1059,296,1059,298,1059,302,1059,305,1059,314,1059,321,1059,327
    244. DATA 1059,333,1059,338,1059,343,1059,347,1059,351,1060,358,1060,364,1060,371,1060,378,1060,384
    245. DATA 1061,389,1061,392,1061,396,1061,398,1062,402,1062,404,1062,404,1062,405,1062,405,1062,405
    246. DATA 1062,405,1062,405,1062,405,1062,405,1062,405,1062,405,1062,405,1062,405,1062,405,1062,405
    247. DATA 1062,405,1062,405,1062,405,1062,405,1062,399,1063,395,1063,391,1064,386,1064,383,1065,376
    248. DATA 1066,370,1067,365,1069,361,1070,358,1072,354,1073,352,1074,351,1074,350,1075,349,1076,349
    249. DATA 1077,348,1078,348,1079,348,1080,348,1081,348,1081,347,1081,347,1081,347,1081,347,1081,349
    250. DATA 1083,352,1085,356,1087,361,1089,367,1090,369,1092,376,1094,378,1094,380,1094,381,1095,384
    251. DATA 1095,386,1095,387,1095,388,1095,389,1095,389,1095,389,1095,389,1095,389,1095,389,1095,389
    252. DATA 1095,389,1095,389,1095,389,1095,389,1095,389,1095,389,1096,391,1096,392,1096,392,1096,393
    253. DATA 1097,393,1098,396,1099,397,1099,397,1099,398,1099,398,1099,398,1099,398,1099,398,1099,398
    254. DATA 1099,398,1099,398,1099,398,1099,398,1099,398,1106,366,1106,366,1106,366,1106,366,1106,366
    255. DATA 1106,366,1106,366,1106,366,1106,366,1106,366,1106,366,1106,366,1106,366,1106,366,1106,366
    256. DATA 1106,366,1110,365,1111,364,1115,364,1118,363,1123,362,1124,362,1125,362,1126,362,1129,361
    257. DATA 1133,360,1137,359,1141,357,1142,356,1142,356,1143,356,1143,354,1144,353,1145,352,1146,350
    258. DATA 1146,349,1146,348,1146,347,1146,347,1146,347,1146,347,1146,347,1146,347,1146,347,1145,346
    259. DATA 1141,345,1138,344,1137,344,1135,344,1134,344,1132,344,1129,346,1126,347,1122,348,1119,350
    260. DATA 1117,351,1117,352,1116,353,1113,357,1111,360,1110,363,1109,366,1108,368,1107,372,1106,377
    261. DATA 1106,378,1106,382,1106,384,1106,386,1106,388,1106,389,1106,390,1108,390,1108,391,1109,391
    262. DATA 1114,392,1120,393,1129,393,1139,393,1147,393,1152,392,1158,391,1163,389,1164,389,1169,386
    263. DATA 1172,385,1175,383,1176,383,1177,381,1177,381,1177,381,1177,381,1177,381,1177,381,1177,381
    264. DATA 1177,381,1177,381,1177,381,1177,381,1177,381,1177,381,1177,381,1177,381,797,495,797,495
    265. DATA 797,495,797,495,797,495,797,495,797,495,797,495,797,495,797,499,800,507,802,517
    266. DATA 804,526,811,542,816,554,820,563,822,569,825,575,826,581,827,583,828,590,829,595
    267. DATA 830,598,831,602,832,608,832,609,834,614,834,618,835,620,837,623,838,624,838,624
    268. DATA 840,624,841,619,843,613,845,607,847,601,849,595,852,585,854,580,856,575,858,570
    269. DATA 859,564,861,560,864,552,865,548,866,544,867,540,869,534,870,529,873,522,873,516
    270. DATA 876,509,877,503,878,500,879,498,879,496,879,496,879,496,879,496,879,496,879,496
    271. DATA 879,496,879,496,879,496,879,496,879,496,879,496,879,496,880,500,881,507,883,516
    272. DATA 884,527,885,538,889,550,891,557,892,562,894,568,894,569,896,575,896,576,896,580
    273. DATA 897,581,898,585,898,587,900,590,902,594,904,596,906,599,907,600,908,601,909,602
    274. DATA 911,604,911,606,912,606,912,606,912,606,913,606,913,606,913,606,913,606,913,606
    275. DATA 914,606,914,606,915,606,915,606,916,606,916,606,916,606,917,606,917,606,918,607
    276. DATA 920,609,920,610,920,610,920,610,920,610,920,610,920,610,921,610,921,610,921,609
    277. DATA 924,600,925,595,926,588,927,581,928,573,930,565,931,550,932,538,932,530,933,522
    278. DATA 934,515,936,509,936,506,936,504,936,503,937,502,937,501,937,500,937,499,937,498
    279. DATA 937,498,937,498,937,498,937,498,937,498,937,498,937,498,937,498,937,498,937,498
    280. DATA 937,498,937,498,937,498,937,498,937,498,989,563,989,563,988,562,988,562,987,562
    281. DATA 985,562,983,563,981,564,977,569,975,572,973,573,970,577,968,582,967,585,966,588
    282. DATA 966,590,966,593,966,596,966,599,967,601,968,603,969,605,971,607,972,609,974,612
    283. DATA 975,614,976,615,977,615,977,615,977,615,977,615,980,613,985,609,989,606,992,603
    284. DATA 994,600,994,599,997,596,997,594,999,591,1000,590,1001,587,1003,584,1004,582,1004,580
    285. DATA 1005,579,1005,577,1005,574,1005,573,1005,571,1005,570,1005,569,1005,568,1005,568,1005,567
    286. DATA 1005,566,1005,566,1004,566,1004,566,1004,566,1004,566,1003,563,999,561,998,560,998,560
    287. DATA 998,560,998,560,998,560,998,560,998,560,998,560,1028,562,1028,562,1028,562,1028,562
    288. DATA 1027,562,1027,563,1027,564,1026,566,1026,567,1026,571,1026,574,1028,581,1030,585,1033,590
    289. DATA 1035,594,1036,597,1037,599,1038,600,1038,600,1038,600,1038,600,1038,600,1038,600,1038,600
    290. DATA 1038,600,1038,600,1038,599,1038,599,1038,599,1038,599,1038,597,1037,591,1036,589,1035,583
    291. DATA 1035,581,1034,577,1034,575,1034,572,1034,568,1034,566,1034,564,1034,563,1034,561,1034,560
    292. DATA 1035,560,1036,559,1037,558,1037,558,1037,558,1037,558,1037,558,1038,558,1038,557,1038,557
    293. DATA 1041,557,1043,556,1044,555,1044,555,1044,555,1044,555,1044,555,1044,555,1044,555,1044,555
    294. DATA 1044,555,1044,555,1044,555,1071,499,1071,499,1071,499,1071,499,1071,499,1071,507,1071,512
    295. DATA 1071,518,1071,525,1071,532,1071,539,1072,546,1074,554,1074,561,1075,566,1077,574,1078,580
    296. DATA 1079,585,1080,588,1080,590,1081,593,1081,593,1081,594,1081,594,1081,594,1081,594,1081,594
    297. DATA 1081,596,1082,597,1082,599,1082,600,1082,601,1083,602,1083,603,1083,603,1083,603,1083,603
    298. DATA 1083,603,1083,604,1083,605,1084,605,1084,605,1084,605,1084,605,1084,605,1159,563,1159,563
    299. DATA 1158,563,1158,563,1155,561,1153,560,1148,559,1147,559,1139,559,1135,559,1132,560,1131,561
    300. DATA 1130,562,1129,565,1128,567,1127,569,1127,573,1126,576,1126,580,1126,583,1125,587,1125,591
    301. DATA 1125,595,1126,601,1128,604,1130,605,1132,607,1133,609,1136,611,1138,612,1139,612,1140,612
    302. DATA 1145,609,1151,603,1155,601,1158,598,1161,595,1164,594,1166,592,1167,589,1169,585,1171,581
    303. DATA 1172,576,1172,573,1172,570,1172,568,1172,564,1172,561,1172,558,1171,554,1170,548,1170,542
    304. DATA 1170,537,1170,531,1169,526,1169,521,1168,517,1167,509,1167,505,1167,502,1167,497,1167,493
    305. DATA 1167,491,1167,489,1167,487,1167,487,1167,487,1167,486,1167,485,1167,484,1167,482,1167,480
    306. DATA 1167,479,1167,477,1167,476,1167,475,1167,475,1167,475,1167,475,1167,475,1167,475,1167,475
    307. DATA 1167,475,1167,475,1167,475,1167,476,1167,480,1167,487,1167,492,1168,497,1169,505,1170,511
    308. DATA 1171,518,1174,524,1176,536,1177,542,1178,548,1180,553,1181,558,1182,562,1183,567,1184,572
    309. DATA 1185,577,1187,584,1188,589,1189,592,1190,595,1190,598,1191,601,1191,603,1192,604,1192,605
    310. DATA 1193,606,1193,607,1194,608,1194,609,1194,609,1195,611,1195,611,1195,612,1195,613,1196,613
    311. DATA 1196,613,1196,613,1196,613,1196,613,1196,613,1196,613,1196,613,1196,613,1196,613,1196,613
    312. DATA 1196,613,1196,613,1196,613,1196,613,1196,613,1196,613,1131,51,1131,51,1131,51,1131,51
    313. DATA 1131,51,1131,51,1131,52,1131,56,1131,61,1131,71,1131,79,1131,89,1131,97,1130,106
    314. DATA 1130,112,1130,117,1130,122,1130,122,1130,129,1130,131,1130,134,1129,136,1129,141,1128,147
    315. DATA 1127,160,1126,164,1126,174,1126,180,1126,183,1126,183,1126,183,1125,183,1125,183,1125,183
    316. DATA 1125,183,1125,183,1125,183,1125,183,1125,183,1125,183,1125,183,1125,183,1125,183,1125,183
    317. DATA 1118,232,1118,232,1118,232,1118,232,1118,232,1118,232,1118,232,1118,232,1118,232,1118,232
    318. DATA 1118,232
    319. DATA 9999,9999
    320.  
    321.  
    « Last Edit: December 23, 2019, 10:47:14 am by bplus »

    Offline Petr

    • Forum Resident
    • Posts: 1720
    • The best code is the DNA of the hops.
      • View Profile
    Re: Merry X-mas 2019!
    « Reply #5 on: December 23, 2019, 10:34:02 am »
    Very nice work, Fellippe! Merry Christmas!

    Offline Qwerkey

    • Forum Resident
    • Posts: 755
      • View Profile
    Re: Merry X-mas 2019!
    « Reply #6 on: December 23, 2019, 10:44:28 am »
    Lovely.  Let us hope that we all have a healthy New Year and subsequent.

    Offline johnno56

    • Forum Resident
    • Posts: 1270
    • Live long and prosper.
      • View Profile
    Re: Merry X-mas 2019!
    « Reply #7 on: December 23, 2019, 03:23:24 pm »
      [ You are not allowed to view this attachment ]  

    Mary kiss moose. Peas on Earth.
    Logic is the beginning of wisdom.

    Offline Pete

    • Forum Resident
    • Posts: 2361
    • Cuz I sez so, varmint!
      • View Profile
    Re: Merry X-mas 2019!
    « Reply #8 on: December 23, 2019, 04:29:27 pm »
    Nice card johnno, but if a moose peas in the forest, should i really care? Well, I mean providing I'm not out walking in the forest, I suppose...

    My second favorite actor is Captain Kirk
    These are the things I think about at work


    Merry Christmas,

    Pete
    Want to learn how to write code on cave walls? https://www.tapatalk.com/groups/qbasic/qbasic-f1/

    Offline AndyA

    • Newbie
    • Posts: 73
      • View Profile
    Re: Merry X-mas 2019!
    « Reply #9 on: December 23, 2019, 11:38:23 pm »
    Very nice looking scene Fellippe!

    Merry Christmas!

    Andy

    Offline Ashish

    • Forum Resident
    • Posts: 630
    • Never Give Up!
      • View Profile
    Re: Merry X-mas 2019!
    « Reply #10 on: December 24, 2019, 08:50:04 am »
    Merry Christmas!
    if (Me.success) {Me.improve()} else {Me.tryAgain()}


    My Projects - https://github.com/AshishKingdom?tab=repositories
    OpenGL tutorials - https://ashishkingdom.github.io/OpenGL-Tutorials

    Offline Bert22306

    • Forum Regular
    • Posts: 206
      • View Profile
    Re: Merry X-mas 2019!
    « Reply #11 on: December 24, 2019, 04:05:51 pm »
    Merry Christmas, to all the impressive group here. E buon anno!