Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- client {
- // 25.07.2016
- // NOTE: I have a new domain, szymekk.me, links to the music and sound effects won't work
- //Maps array contains tables like that:
- //1, color - Background color
- //2, color - Main color
- //3, color - Center color
- //4, string - Music URL
- //5, int - Rotation speed
- //6, int - Wall speed
- //7, int - Cursor speed
- //8, int - Spawn delay
- array maps = tableArray()
- maps[#maps+1] = {
- color(100,0,0),
- color(150,0,0),
- color(200,0,0),
- "http://szymekk.info/music/hex1.ogg",
- 50,
- 100,
- 200,
- 2
- }
- maps[#maps+1] = {
- color(0,0,100),
- color(0,0,150),
- color(0,0,200),
- "http://szymekk.info/music/hex2.ogg",
- 80,
- 200,
- 200,
- 1.5
- }
- maps[#maps+1] = {
- color(0,100,0),
- color(0,150,0),
- color(0,200,0),
- "http://szymekk.info/music/hex3.ogg",
- 150,
- 250,
- 400,
- 1
- }
- maps[#maps+1] = {
- color(230,230,230),
- color(230,200,230),
- color(175,33,179),
- "http://szymekk.info/music/mazeOfMayonnaise.ogg",
- 150,
- 300,
- 500,
- 1
- }
- int curMap = 3
- table map = maps[curMap, table]
- setFPS(60)
- int startTime = realtime()
- int deltaTime = 0
- int lastTime = realtime()
- int rotation = 0
- int plRot = 30
- int dieBox = 0
- int level = 1
- int rotSpeed = 0
- int wallSpeed = 0
- int cursorSpeed = 0
- int spawnDelay = 0
- bool alive = true
- int aliveTime = 0
- //Walls array contains tables like that:
- //1, int - distance from center
- //2, array - array with normalized vertexes
- array walls = tableArray()
- int fftf = 0;
- function void PlayURL(string url) {
- if(canPlayFromURL()) playURL(url,"",function(audio a) { a.play() },function() {})
- }
- event drawScreen(int w, int h) {
- color bgc = (round(realtime()/4) % 2 == 0 ? map[1, color] : map[2, color])
- color mainc = (round(realtime()/4) % 2 == 0 ? map[2, color] : map[1, color])
- color centerc = map[3, color]
- setDrawColor(bgc)
- drawBox(vec2(0,0),vec2(w,h))
- array ray1 = vector2Array(
- vec2(w/2 + sin(rotation)*50, h/2 + cos(rotation)*50),
- vec2(w/2 + sin(rotation + 60)*50, h/2 + cos(rotation + 60)*50),
- vec2(w/2 + sin(rotation + 60)*500, h/2 + cos(rotation + 60)*500),
- vec2(w/2 + sin(rotation)*500, h/2 + cos(rotation)*500)
- )
- array ray2 = vector2Array(
- vec2(w/2 + sin(rotation + 120)*50, h/2 + cos(rotation + 120)*50),
- vec2(w/2 + sin(rotation + 180)*50, h/2 + cos(rotation + 180)*50),
- vec2(w/2 + sin(rotation + 180)*500, h/2 + cos(rotation + 180)*500),
- vec2(w/2 + sin(rotation + 120)*500, h/2 + cos(rotation + 120)*500)
- )
- array ray3 = vector2Array(
- vec2(w/2 + sin(rotation + 240)*50, h/2 + cos(rotation + 240)*50),
- vec2(w/2 + sin(rotation + 300)*50, h/2 + cos(rotation + 300)*50),
- vec2(w/2 + sin(rotation + 300)*500, h/2 + cos(rotation + 300)*500),
- vec2(w/2 + sin(rotation + 240)*500, h/2 + cos(rotation + 240)*500)
- )
- setDrawColor(mainc)
- drawPoly(ray1)
- drawPoly(ray2)
- drawPoly(ray3)
- array cursor = vector2Array(
- vec2(w/2 + sin(rotation + plRot)*70, h/2 + cos(rotation + plRot)*70),
- vec2(w/2 + sin(rotation + plRot - 8)*60, h/2 + cos(rotation + plRot -8)*60),
- vec2(w/2 + sin(rotation + plRot + 8)*60, h/2 + cos(rotation + plRot + 8)*60)
- )
- setDrawColor(centerc)
- drawPoly(cursor)
- //Drawing Walls
- for(int i=1; #walls; 1) {
- table wa = walls[i, table]
- int dis = wa[1, int]
- array ve = wa[2, array]
- setDrawColor(centerc)
- array p = vector2Array(
- vec2(w/2 + sin(rotation + ve[1,vector2].getX() * 60)*(dis-ve[1,vector2].getY()), h/2 + cos(rotation + ve[1,vector2].getX() * 60)*(dis-ve[1,vector2].getY())),
- vec2(w/2 + sin(rotation + ve[2,vector2].getX() * 60)*(dis-ve[2,vector2].getY()), h/2 + cos(rotation + ve[2,vector2].getX() * 60)*(dis-ve[2,vector2].getY())),
- vec2(w/2 + sin(rotation + ve[3,vector2].getX() * 60)*(dis-ve[3,vector2].getY()), h/2 + cos(rotation + ve[3,vector2].getX() * 60)*(dis-ve[3,vector2].getY())),
- vec2(w/2 + sin(rotation + ve[4,vector2].getX() * 60)*(dis-ve[4,vector2].getY()), h/2 + cos(rotation + ve[4,vector2].getX() * 60)*(dis-ve[4,vector2].getY()))
- )
- drawPoly(p)
- }
- array center = vector2Array()
- for(int i=0; 6; 1) {
- center[i] = vec2(w/2 + sin(i/6*360+rotation)*(50+fftf),h/2 + cos(i/6*360+rotation)*(50+fftf))
- }
- setDrawColor(centerc)
- drawPoly(center)
- center = vector2Array()
- for(int i=0; 6; 1) {
- center[i] = vec2(w/2 + sin(i/6*360+rotation)*(40+fftf),h/2 + cos(i/6*360+rotation)*(40+fftf))
- }
- setDrawColor(map[1, color])
- drawPoly(center)
- setFontColor(color(255,255,255))
- setFont("Trebuchet24",32)
- drawText(vec2(5,5),""+aliveTime)
- setFontColor(color(255,255,255))
- setFont("Trebuchet24",32)
- drawText(vec2(w-10-getTextWidth("Restart"),5),"Restart")
- setDrawColor(color(255,255,255,dieBox))
- drawBox(vec2(0,0),vec2(w,h))
- }
- function void Restart() {
- startTime = realtime()
- level = 1
- alive = true
- aliveTime = 0
- walls = tableArray()
- }
- int spawnTime = realtime() + 6
- int rot = 1
- int nextChange = realtime()
- int circle = 0
- int circleStart = 0
- int circleRot = 1
- event tick() {
- rotSpeed = map[5, int]
- wallSpeed = map[6, int]
- cursorSpeed = map[7, int]
- spawnDelay = map[8, int]
- deltaTime = realtime() - lastTime; lastTime = realtime()
- dieBox = clamp(dieBox-deltaTime*100,0,255)
- rotation = (rotation+deltaTime*rotSpeed*rot) % 360
- if(realtime()>nextChange) {
- nextChange = realtime() + random(5,15)
- rot = -rot
- }
- if(localPlayer().getScreenCursor().getX()>460 && localPlayer().getScreenCursor().getY()<64 && localPlayer().keyUse()) {
- Restart()
- }
- if(!alive) return
- aliveTime = round((realtime()-startTime)*10)/10
- //Spawning walls
- if(realtime()>spawnTime) {
- if(circle > 0) {
- spawnTime = realtime() + 30/wallSpeed
- walls[#walls+1] ={ 500, vector2Array( vec2(circleStart+circle*circleRot,0), vec2(circleStart+circle*circleRot + 1,0), vec2(circleStart+circle*circleRot + 1,50), vec2(circleStart+circle*circleRot,50) ) }
- circle--
- if(circle == 0) spawnTime = realtime() + spawnDelay
- }
- else {
- spawnTime = realtime() + spawnDelay
- int type = round(random(0,6))
- int offset = round(random(0,6.4))
- if(type == 0) {
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 0,0), vec2(offset + 1,0), vec2(offset + 1,50), vec2(offset + 0,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 1,0), vec2(offset + 2,0), vec2(offset + 2,50), vec2(offset + 1,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 2,0), vec2(offset + 3,0), vec2(offset + 3,50), vec2(offset + 2,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 3,0), vec2(offset + 4,0), vec2(offset + 4,50), vec2(offset + 3,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 4,0), vec2(offset + 5,0), vec2(offset + 5,50), vec2(offset + 4,50) ) }
- }
- elseif(type == 1) {
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 0,0), vec2(offset + 1,0), vec2(offset + 1,50), vec2(offset + 0,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 2,0), vec2(offset + 3,0), vec2(offset + 3,50), vec2(offset + 2,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 4,0), vec2(offset + 5,0), vec2(offset + 5,50), vec2(offset + 4,50) ) }
- }
- elseif(type == 2) {
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 0,0), vec2(offset + 1,0), vec2(offset + 1,50), vec2(offset + 0,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 1,0), vec2(offset + 2,0), vec2(offset + 2,50), vec2(offset + 1,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 2,0), vec2(offset + 3,0), vec2(offset + 3,50), vec2(offset + 2,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 4,0), vec2(offset + 5,0), vec2(offset + 5,50), vec2(offset + 4,50) ) }
- }
- elseif(type == 3) {
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 0,0), vec2(offset + 1,0), vec2(offset + 1,50), vec2(offset + 0,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 1,0), vec2(offset + 2,0), vec2(offset + 2,50), vec2(offset + 1,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 2,0), vec2(offset + 3,0), vec2(offset + 3,50), vec2(offset + 2,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 3,0), vec2(offset + 4,0), vec2(offset + 4,50), vec2(offset + 3,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 4,0), vec2(offset + 5,0), vec2(offset + 5,50), vec2(offset + 4,50) ) }
- }
- elseif(type == 4) {
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 0,0), vec2(offset + 1,0), vec2(offset + 1,50), vec2(offset + 0,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 2,0), vec2(offset + 3,0), vec2(offset + 3,50), vec2(offset + 2,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 4,0), vec2(offset + 5,0), vec2(offset + 5,50), vec2(offset + 4,50) ) }
- }
- elseif(type == 5) {
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 0,0), vec2(offset + 1,0), vec2(offset + 1,50), vec2(offset + 0,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 1,0), vec2(offset + 2,0), vec2(offset + 2,50), vec2(offset + 1,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 2,0), vec2(offset + 3,0), vec2(offset + 3,50), vec2(offset + 2,50) ) }
- walls[#walls+1] ={ 500, vector2Array( vec2(offset + 4,0), vec2(offset + 5,0), vec2(offset + 5,50), vec2(offset + 4,50) ) }
- }
- elseif(type == 6) {
- circle = round(random(6,16))
- circleStart = round(random(0,6))
- circleRot = -circleRot
- }
- }
- }
- //Moving walls
- for(int i=1; #walls; 1) {
- walls[i,table][1] = walls[i,table][1,int] - deltaTime * wallSpeed * level
- if(walls[i,table][1,int]<=20) { walls.removetable(i); break }
- }
- //Checking collisions
- for(int i=1; #walls; 1) {
- int tmp=walls[i,table][2,array][1,vector2].getX()*60
- int tmp2=walls[i,table][1,int]
- if(tmp % 360 < plRot && (tmp + 59.9) % 360 > plRot && tmp2 < 80+50 && tmp2 > 60)
- {
- alive = false
- dieBox = 255
- PlayURL("http://szymekk.info/music/hexagon/die.wav")
- }
- }
- if(localPlayer().keyUse()) {
- if(localPlayer().getScreenCursor().getX()<256) {
- plRot += deltaTime * cursorSpeed
- }
- elseif(localPlayer().getScreenCursor().getX()>256) {
- plRot -= deltaTime * cursorSpeed
- }
- plRot = plRot % 360
- }
- }
- function void Play() {
- playURL(map[4,string],"",function(audio a) {
- a.play()
- event think() {
- array fft = a.fft(128)
- if(#fft<=0) return
- fftf = clamp((#fft>0 ? fft[4,int] : 0) * 50,0,10)
- }
- },function() {})
- }
- if(canPlayFromURL()) {
- Play()
- PlayURL("http://szymekk.info/music/hexagon/start.wav")
- }
- event enablePlayURL() {
- Play()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement