Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'DGC Code Pong : Untitled Elite-like
- 'ver 0000 : 2020-09-13
- '--- Definitions ------------------------------------------
- CONST kPi = 3.14159265
- CONST kPi2 = 6.28318531
- CONST kDiv3 = 0.333333333
- CONST kRoot2 = 1.414213562
- CONST kDivRoot2 = 0.7071067812
- TYPE tVec3
- x AS SINGLE
- y AS SINGLE
- z AS SINGLE
- END TYPE
- TYPE tStar
- p AS tVec3 'position
- c AS INTEGER
- END TYPE
- DIM star(1000) AS tStar
- DIM stars AS LONG
- '--- Main -------------------------------------------------
- SCREEN 13: cX = 160: cY = 100 'screen centres
- stars = 1000: GOSUB GenGalaxy
- DO
- a1 = a1 + 0.01
- a2 = COS(a1 / 3) ^ 2
- CLS
- FOR i = 1 TO stars
- pX = star(i).p.x
- pY = star(i).p.y
- pZ = star(i).p.z
- pX1 = pX * COS(a1) - pY * SIN(a1)
- pY = pX * SIN(a1) + pY * COS(a1)
- pX = pX1
- pZ1 = pZ * COS(a2) - pY * SIN(a2)
- pY = pZ * SIN(a2) + pY * COS(a2)
- pZ = pZ1
- CIRCLE (cX + pX, cY + pZ), 2, star(i).c
- NEXT
- page = 1 - page
- SCREEN 13, , page, 1 - page
- LOOP
- SLEEP
- SYSTEM
- '--- Subs -------------------------------------------------
- GenGalaxy:
- RANDOMIZE TIMER
- r = 100 'Galactic Radius
- FOR i = 1 TO stars
- a = (RND + RND) / 2
- b = kPi2 * RND: b = b + SIN(2 * b) - 6 * a
- c = (RND - RND) / (4 + 30 * a * a)
- star(i).p.x = r * a * COS(b)
- star(i).p.y = r * a * SIN(b)
- star(i).p.z = r * c
- SELECT CASE INT(RND * 100)
- CASE 0: star(i).c = 11 'blue giant
- CASE 1 TO 2: star(i).c = 15 'white
- CASE 3 TO 12: star(i).c = 14 'yellow
- CASE 13 TO 82: star(i).c = 4 'red dwarf
- CASE 83 TO 92: star(i).c = 6 'brown dwarf
- CASE 93: star(i).c = 12 'red giant
- CASE 95 TO 98: star(i).c = 7 'white dwarf
- CASE 99: star(i).c = 8 'compact object
- END SELECT
- NEXT
- RETURN
Advertisement
Add Comment
Please, Sign In to add comment