Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Particles, cos/sin, circles and a box
#1
Run the code, you'll understand
Code:
'Nice thingy by J. Pihl [Z!re | XiberLord]
'Free, use as you like, give credits if you want.
'$DYNAMIC
TYPE part
x AS SINGLE
y AS SINGLE
vx AS SINGLE
vy AS SINGLE
c AS INTEGER
END TYPE
DIM CenterX AS LONG
DIM CenterY AS LONG

RANDOMIZE TIMER

CONST MaxParticles = 500
Active = 100
CenterX = 160
CenterY = 100

DIM p(MaxParticles) AS part
FOR a = 0 TO Active
p(a).x = 160 + 80 * RND - 80 * RND
p(a).y = 100 + 100 * RND - 100 * RND
p(a).c = 9 + (a / (Active / 2))
NEXT

CLS
CONST PI = 3.141593
SCREEN 12

n = 4

CLS
DO

FOR b = 0 TO PI * 2 STEP .05
r = 1 + SIN(n * PI + b)
sx = 320 + r * COS(g + PI) * 50
sy = 240 + r * SIN(g + PI) * 50
r = 1 + SIN(n * PI + b)
sx2 = 320 + r * COS(g + PI + PI / 2) * 50
sy2 = 240 + r * SIN(g + PI + PI / 2) * 50

FOR Angle = b TO 2 * PI + b STEP .007
  r = 1 + SIN(n * Angle + b)
  x = sx + r * COS(Angle) * 100
  y = sy + r * SIN(Angle) * 100
  PSET (x, y), 9 + r
  IF INKEY$ <> "" THEN END
NEXT
r = 1 + SIN(n + b)
x = sx2 + r * COS(b) * 100
y = sy2 + r * SIN(b) * 100
CIRCLE (x, y), SIN(r) * 50, 15
g = b

r = 1 + SIN(n * PI + b)
x = 320 + r * COS(g + 0) * 50
y = 240 + r * SIN(g + 0) * 50
x2 = 320 + r * COS(g + PI / 2) * 50
y2 = 240 + r * SIN(g + PI / 2) * 50
LINE (x, y)-(x2, y2), 13
x = 320 + r * COS(g + PI) * 50
y = 240 + r * SIN(g + PI) * 50
x2 = 320 + r * COS(g + PI + PI / 2) * 50
y2 = 240 + r * SIN(g + PI + PI / 2) * 50
LINE (x, y)-(x2, y2), 13
x = 320 + r * COS(g + PI / 2) * 50
y = 240 + r * SIN(g + PI / 2) * 50
x2 = 320 + r * COS(g + PI) * 50
y2 = 240 + r * SIN(g + PI) * 50
LINE (x, y)-(x2, y2), 14
x = 320 + r * COS(g + PI + PI / 2) * 50
y = 240 + r * SIN(g + PI + PI / 2) * 50
x2 = 320 + r * COS(g + PI * 2) * 50
y2 = 240 + r * SIN(g + PI * 2) * 50
LINE (x, y)-(x2, y2), 14
CIRCLE (320, 240), SQR((x2 - x) ^ 2 + (y2 - y) ^ 2) / 2 + 50, 15

CenterX = x
CenterY = y
FOR a = 0 TO Active / 2
  PSET (p(a).x, p(a).y), 0
  IF p(a).x > CenterX THEN p(a).vx = p(a).vx - .1 - (RND / 5)
  IF p(a).x < CenterX THEN p(a).vx = p(a).vx + .1 + (RND / 5)
  IF p(a).y > CenterY THEN p(a).vy = p(a).vy - .1 - (RND / 5)
  IF p(a).y < CenterY THEN p(a).vy = p(a).vy + .1 + (RND / 5)
  p(a).vx = p(a).vx / 1.01
  p(a).vy = p(a).vy / 1.01
  IF INT(p(a).vx) = 0 AND INT(p(a).vy) = 0 THEN
   IF INT(p(a).x) = CenterX AND INT(p(a).y) = CenterY THEN
    p(a).vx = 25 * RND - 25 * RND
    p(a).vy = 25 * RND - 25 * RND
   END IF
  END IF
  p(a).x = p(a).x + p(a).vx
  p(a).y = p(a).y + p(a).vy
  PSET (p(a).x, p(a).y), p(a).c
NEXT

r = 1 + SIN(n + b)
CenterX = sx2 + r * COS(b) * 100
CenterY = sy2 + r * SIN(b) * 100
FOR a = Acrive / 2 TO Active
  PSET (p(a).x, p(a).y), 0
  IF p(a).x > CenterX THEN p(a).vx = p(a).vx - .1 - (RND / 5)
  IF p(a).x < CenterX THEN p(a).vx = p(a).vx + .1 + (RND / 5)
  IF p(a).y > CenterY THEN p(a).vy = p(a).vy - .1 - (RND / 5)
  IF p(a).y < CenterY THEN p(a).vy = p(a).vy + .1 + (RND / 5)
  p(a).vx = p(a).vx / 1.01
  p(a).vy = p(a).vy / 1.01
  IF INT(p(a).vx) = 0 AND INT(p(a).vy) = 0 THEN
   IF INT(p(a).x) = CenterX AND INT(p(a).y) = CenterY THEN
    p(a).vx = 25 * RND - 25 * RND
    p(a).vy = 25 * RND - 25 * RND
   END IF
  END IF
  p(a).x = p(a).x + p(a).vx
  p(a).y = p(a).y + p(a).vy
  PSET (p(a).x, p(a).y), p(a).c
NEXT

FOR Angle = b TO 2 * PI + b STEP .007
  r = 1 + SIN(n * Angle + b)
  x = sx + r * COS(Angle) * 100
  y = sy + r * SIN(Angle) * 100
  PSET (x, y), 0
  IF INKEY$ <> "" THEN END
NEXT
r = 1 + SIN(n + b)
x = sx2 + r * COS(b) * 100
y = sy2 + r * SIN(b) * 100
CIRCLE (x, y), SIN(r) * 50, 0

g = b

r = 1 + SIN(n * PI + b)
x = 320 + r * COS(g + 0) * 50
y = 240 + r * SIN(g + 0) * 50
x2 = 320 + r * COS(g + PI / 2) * 50
y2 = 240 + r * SIN(g + PI / 2) * 50
LINE (x, y)-(x2, y2), 0
x = 320 + r * COS(g + PI) * 50
y = 240 + r * SIN(g + PI) * 50
x2 = 320 + r * COS(g + PI + PI / 2) * 50
y2 = 240 + r * SIN(g + PI + PI / 2) * 50
LINE (x, y)-(x2, y2), 0
x = 320 + r * COS(g + PI / 2) * 50
y = 240 + r * SIN(g + PI / 2) * 50
x2 = 320 + r * COS(g + PI) * 50
y2 = 240 + r * SIN(g + PI) * 50
LINE (x, y)-(x2, y2), 0
x = 320 + r * COS(g + PI + PI / 2) * 50
y = 240 + r * SIN(g + PI + PI / 2) * 50
x2 = 320 + r * COS(g + PI * 2) * 50
y2 = 240 + r * SIN(g + PI * 2) * 50
LINE (x, y)-(x2, y2), 0
CIRCLE (320, 240), SQR((x2 - x) ^ 2 + (y2 - y) ^ 2) / 2 + 50, 0

NEXT
LOOP

I have way to much spare time... :lol:
Reply
#2
Quote:I have way to much spare time... :lol:
Could I have some? =P
.
.
.
anyway... COOL!!!! what is it? *wants to learn trig*
Particles, cos/sin, circles and a box
thats funny... 'And a box.' Smile
[Image: sig.php]
Back by popular demand!
I will byte and nibble you bit by bit until nothing remains but crumbs.
Reply
#3
That's quite a thingie you've created there, Zire! :o :o

So...what were the two swarms chasing? It looks like one chases the floating circle, but I couldn't really tell what the other was doing. fun stuff.
Reply
#4
1 group chase the circle

and the other group chases one of the corners on the box


It may flicker a lot on lowe end machines, but hey, i just threw it togheter with my girlfriend, she liked it, and so do I...
Reply
#5
Quote:she liked it, and so do I...

Don't you mean, "she liked it, so I do too..."

anyway cool... urgh I hate SINE and COSINE... I have bad luck with it... I only recently figured out how to make a circle. (I stick with good old memory hogging sprites)
Reply
#6
Quote:urgh I hate SINE and COSINE... I have bad luck with it...

SIN and COS are my best friends ^_^

You should learn how to use them well, you ca do some pretty amazing things with them, and they are essential for any 3D program.
Reply
#7
Quote:Don't you mean, "she liked it, so I do too..."

anyway cool... urgh I hate SINE and COSINE... I have bad luck with it... I only recently figured out how to make a circle. (I stick with good old memory hogging sprites)

1. he means that he likes the program and so does his girlfriend
2. wahhhhhh i wanna learn them....
[Image: sig.php]
Back by popular demand!
I will byte and nibble you bit by bit until nothing remains but crumbs.
Reply
#8
WT... do you have MSN? If so add me and i will give you a personal tutorial on anythiung you want to know about SIN and COS myself Wink
Reply
#9
ok... you have been addified.... mwahahaha
[Image: sig.php]
Back by popular demand!
I will byte and nibble you bit by bit until nothing remains but crumbs.
Reply
#10
I cant speak to you on MSN right, now, because I am at school, in class. *Looks around shiftily* Confusedhifty: but I'll see ya online later today or something, yea?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)