Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- player={}
- player[1]={x=10,y=136-20,w=5,h=40,vel=3,score=0}
- player[1].img = image.create(player[1].w,player[1].h,color.new(0,255,0))
- player[2]={x=465,y=136-20,w=5,h=40,vel=3,score=0}
- player[2].img = image.create(player[2].w,player[2].h,color.new(0,0,255))
- ball={x=240,y=136,w=10,h=10,ang=(math.random()-0.5)*math.pi,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=40}
- goal[2]={x=475,y=116,w=5,h=40}
- function colision(Obj1,Obj2)
- if Obj1.x + Obj1.w >= Obj2.x and
- Obj1.x <= Obj2.x + Obj2.w and
- Obj1.y + Obj1.h >= Obj2.y and
- Obj1.y <= Obj2.y + Obj2.h then
- return true else return false
- end
- end
- ball.img:center(ball.w/2,ball.h/2)
- while true do
- controls.read()
- 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<0 and ball.dy<0) or (ball.y+ball.h/2>272 and ball.dy>0) then ball.dy=-ball.dy;end
- if (ball.x-ball.w/2<0 and ball.dx<0) or (ball.x+ball.w/2>480 and ball.dx>0) then ball.dx=-ball.dx;end
- for i=1, #player do
- if colision(player[i],ball) 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(ball,goal[1]) then player[2].score=player[2].score+1 ball.ang,ball.x,ball.y = (math.random()-0.5)*math.pi,240,136 ball.v = 5 end
- if colision(ball,goal[2]) then player[1].score=player[1].score+1 ball.ang,ball.x,ball.y = (math.random()-0.5)*math.pi,240,136 ball.v = 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,272-player[1].h) end
- if controls.up() then player[1].y = math.max(player[1].y - player[1].vel ,0) end
- if controls.cross() then player[2].y = math.min(player[2].y + player[2].vel,272-player[2].h) end
- if controls.triangle() then player[2].y = math.max(player[2].y - player[2].vel ,0) end
- screen.print(5,5," Score: "..player[1].score.." Score: "..player[2].score)
- ball.v=ball.v+0.01
- if controls.select() then a() end
- screen.flip()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement