Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- math.randomseed(os.clock())
- player={}
- player[1]={x=7,y=136-20,w=5,h=40,vel=4,score=0}
- player[1].img = image.create(player[1].w,player[1].h,color.new(0,255,0))
- player[2]={x=468,y=136-20,w=5,h=40,vel=4,score=0}
- player[2].img = image.create(player[2].w,player[2].h,color.new(0,0,255))
- limit={x=5,y=5,w=470,h=266}
- ball={x=240,y=136,w=10,h=10,ang=math.random(math.deg(-60),math.deg(60)),v=5,dx=0,dy=0}
- ball.img=image.create(ball.w,ball.h,color.new(255,0,0))
- goal={}
- goal[1]={x=0,y=116,w=5,h=80}
- goal[2]={x=475,y=116,w=5,h=80}
- goal[1].y = 136-goal[1].h/2
- goal[2].y = 136-goal[2].h/2
- function colision(Obj1)
- if Obj1.x + Obj1.w >= ball.x-ball.w/2 and
- Obj1.x <= ball.x + ball.w/2 and
- Obj1.y + Obj1.h >= ball.y-ball.h/2 and
- Obj1.y <= ball.y + ball.h/2 then
- return true else return false
- end
- end
- ball.img:center(ball.w/2,ball.h/2)
- while true do
- controls.read()
- draw.rect(limit.x,limit.y,limit.w,limit.h,color.new(255,255,255))
- ball.dx, ball.dy = math.vector.cartesian(ball.v,ball.ang);
- ball.x = ball.x + ball.dx;
- ball.y = ball.y + ball.dy;
- if (ball.y-ball.h/2<limit.y and ball.dy<0) or (ball.y+ball.h/2>limit.y+limit.h and ball.dy>0) then ball.dy=-ball.dy;end
- if (ball.x-ball.w/2<limit.x and ball.dx<0) or (ball.x+ball.w/2>limit.x+limit.w and ball.dx>0) then ball.dx=-ball.dx;end
- for i=1, #player do
- if colision(player[i]) then ball.dx = -ball.dx end
- player[i].img:blit(player[i].x,player[i].y)
- draw.rect(goal[i].x,goal[i].y,goal[i].w,goal[i].h,color.new(255,255,255))
- if colision(goal[1]) then player[2].score=player[2].score+1 ball.ang,ball.x,ball.y,ball.v = math.random(math.deg(-60),math.deg(60)),240,136,5 end
- if colision(goal[2]) then player[1].score=player[1].score+1 ball.ang,ball.x,ball.y,ball.v = math.random(math.deg(-60),math.deg(60)),240,136,5 end
- end
- ball.v, ball.ang = math.vector.polar(ball.dx,ball.dy);
- ball.img:blit(ball.x,ball.y)
- if controls.down() then player[1].y = math.min(player[1].y + player[1].vel,limit.y+limit.h-player[1].h) end
- if controls.up() then player[1].y = math.max(player[1].y - player[1].vel ,limit.y) end
- if controls.cross() then player[2].y = math.min(player[2].y + player[2].vel,limit.y+limit.h-player[2].h) end
- if controls.triangle() then player[2].y = math.max(player[2].y - player[2].vel ,limit.y) end
- screen.print(5,5," Score: "..player[1].score.." "..ball.v.." Score: "..player[2].score)
- ball.v=ball.v+0.001
- if controls.select() then a() end
- screen.flip()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement