warp speed thing
Author |
Message |
shoobyman

|
Posted: Fri Dec 29, 2006 2:20 pm Post subject: warp speed thing |
|
|
i was just experimenting with a star moving background thingy, and i created a warp effect also.
use arrow keys to move around, the farther you move from the srating point, the less stars though, so don't go too far.
if you press w you will go into warp speed, press e to exit warp speed. I think it is pretty cool.
code: |
%BY SHOOBYMAN
View.Set ("offscreenonly")
colourback (black)
var starx, stary, starsize, starx2, stary2 : array 1 .. 2000 of real
var plx, ply : int
var direction : string := "up"
var movex, movey : real := 0
var chars : array char of boolean
var warp : boolean := false
plx := round (maxx / 2)
ply := round (maxy / 2)
proc MOVEALL
for i : 1 .. 2000
starx (i) += movex * starsize (i) * 2
stary (i) += movey * starsize (i) * 2
if warp = true then
starx (i) += movex * starsize (i) * 18
stary (i) += movey * starsize (i) * 18
starx2 (i) += movex * starsize (i) * 19
stary2 (i) += movey * starsize (i) * 19
else
starx2 (i) := starx (i)
stary2 (i) := stary (i)
end if
end for
movex := 0
movey := 0
end MOVEALL
for i : 1 .. 2000
starx (i) := Rand.Int (-1000, 1000)
stary (i) := Rand.Int (-1000, 1000)
starx2 (i) := starx (i)
stary2 (i) := stary (i)
starsize (i) := Rand.Real
end for
loop
Input.KeyDown (chars)
for i : 1 .. 2000
if starsize (i) > 0.8 and warp = false then
drawfilloval (round (starx (i)), round (stary (i)), 1, 1, 0)
elsif warp = false then
drawdot (round (starx (i)), round (stary (i)), 0)
end if
if warp = true and starsize (i) > 0.8 then
Draw.ThickLine (round (starx (i)), round (stary (i)), round (starx2 (i)), round (stary2 (i)), 2, 0)
elsif warp = true then
drawline (round (starx (i)), round (stary (i)), round (starx2 (i)), round (stary2 (i)), 0)
end if
end for
drawfilloval (plx, ply, 2, 2, 12)
if warp = true then
if direction = "up" then
movey := -3
end if
if direction = "down" then
movey := 3
end if
if direction = "left" then
movex := 3
end if
if direction = "right" then
movex := -3
end if
end if
if warp = false then
if chars (KEY_UP_ARROW) then
movey := -3
direction := "up"
end if
if chars (KEY_DOWN_ARROW) then
movey := 3
direction := "down"
end if
if chars (KEY_LEFT_ARROW) then
movex := 3
direction := "left"
end if
if chars (KEY_RIGHT_ARROW) then
movex := -3
direction := "right"
end if
end if
if chars ('w') then
warp := true
end if
if chars ('e') then
warp := false
end if
MOVEALL
View.Update
delay (35)
cls
end loop
|
|
|
|
|
|
 |
Sponsor Sponsor

|
|
 |
frank26080115
|
Posted: Sat Dec 30, 2006 10:00 pm Post subject: (No subject) |
|
|
riding that lil ship must hurt, nice work, hows the space shooter going? |
|
|
|
|
 |
ericfourfour
|
Posted: Sun Dec 31, 2006 12:20 am Post subject: (No subject) |
|
|
You procedure called MOVEALL is all in capitals. This naming convention is usually reserved for constants. Instead try moveAll or move_all. For more information check out wtd's Turing Style Guidelines.
You should also look into records because that first array has many similar variables in it. Try something like this:
code: | var star : array 1 .. 2000 of
record
x1. y1. x2. y2. size : real
end record |
|
|
|
|
|
 |
Windsurfer

|
Posted: Wed Jan 10, 2007 4:34 pm Post subject: Re: warp speed thing |
|
|
Uhm. you should be looping your stars so that after they go off the edge of th screen, they appear somewhere else... space is supposed to infinite, after all.  |
|
|
|
|
 |
shoobyman

|
Posted: Wed Jan 10, 2007 6:54 pm Post subject: RE:warp speed thing |
|
|
good idea, but for the game i will be making with this, you will not be allowed to go too far out because the mission is to defend a space station. When the game is done i will post it up. Should be pretty cool. |
|
|
|
|
 |
Barloq

|
Posted: Thu Jan 11, 2007 11:52 am Post subject: Re: warp speed thing |
|
|
That's really cool man!
 |
|
|
|
|
 |
Barloq

|
Posted: Thu Jan 11, 2007 12:03 pm Post subject: Re: warp speed thing |
|
|
(Btw Shooby, the +2 on your karma was all me man. You're a cool poster.) |
|
|
|
|
 |
|
|