# ashbb/shoes_tutorial_html

Fetching contributors…
Cannot retrieve contributors at this time
86 lines (62 sloc) 2.48 KB

## Assignment 4 Pong in Shoes

Create your own Pong in Shoes by doing the following 5 steps.

1. Open Shoes Window / Play Pong in Shoes

• Window's width and height are both 400 pixel.
• Can't resize.
• Show your app name and revision number on the window's title bar.
• Color the surface of the window with the horizontal gradation.
• Play Pong in Shoes written by _why.
2. Show two paddles and a ball

• Allocate computer paddle on the top (immobile yet).
• Allocate player's (your) paddle on the bottom.
• A ball appears left-top side and moves smoothly to right-bottom side at 20 frames per second.
3. Lock-in the ball within the window

• Bounce a ball on the edge of the window.
• Computer's paddle synchronizes with the ball movement.
4. Hit the ball

• have computer's paddle hit the ball.
• Change ball's speed and bounce angle when the ball is hit.
5. Have a match

• When the ball goes over the goal lines, game finishes with victory message.

sample58.png

``````# sample58.rb
Shoes.app :width => 400, :height => 400, :resizable => false do
vx, vy = 3, 4

nostroke
@ball = oval 0, 0, 20, :fill => forestgreen
@comp = rect 0, 0, 75, 4, :curve => 2
@you = rect 0, 396, 75, 4, :curve => 2

@anim = animate 40 do
nx, ny = @ball.left + vx.to_i, @ball.top + vy.to_i

if @ball.top + 20 < 0 or @ball.top > 400
para strong("GAME OVER", :size => 32), "\n",
@ball.top < 0 ? "You win!" : "Computer wins", :top => 140, :align => 'center'
@ball.hide and @anim.stop
end

vx = -vx  if nx + 20 > 400 or nx < 0

if ny + 20 > 400 and nx + 20 > @you.left and nx < @you.left + 75
vy = -vy * 1.2
vx = (nx - @you.left - (75 / 2)) * 0.25
end

if ny < 0 and nx + 20 > @comp.left and nx < @comp.left + 75
vy = -vy * 1.2
vx = (nx - @comp.left - (75 / 2)) * 0.25
end

@ball.move nx, ny
@you.left = mouse[1] - (75 / 2)
@comp.left += 10  if @comp.left + 75 < @ball.left
@comp.left -= 10  if @ball.left + 20 < @comp.left
end
end
``````

Have fun!

a pong challenge

## Policeman

The sample58.rb worked well with Shoes-0.r1263