CSS play - Ping-pong - Player v Computer
3rd July 2013
For IE10+, Firefox, Chrome, Safari and Opera
copyright © stu nicholls - CSS play
Remember this is just for fun to see if it could be done using just CSS.
Whilst investigating the possibility of producing a game of ping-pong where you play against the computer I came across this version CSS3 PONG by Alex Walker with the method used detailed here METHOD.
After looking at the method used and the problems found I thought it might be possible to recode and restyle this using plain links instead of inputs which are limited in the css department.
So this is my take on PONG with a player v computer using just CSS. To start place your bat behind the ball and 'click'. Keep the bat within the base line area and move up/down to hit the returning ball.
This also demonstrates the following differences between browsers:
1. Opera still does not support the cursor:url(); style and shows a text cursor instead of the bat.cur
2. All browsers except Firefox will not fire :hover events when the cursor is statonary so in IE10, Chrome, Safari and Opera if you do not move your bat then the ball will be returned even if it does not hit the bat.
3. Firefox, however, does check :hovers even when the cursor is stationary, so in this browser you must hit the ball with the bat to return it.
I have removed the scoring as it serves no purpose because it is not possible to beat the computer, and also the jiggle on the PC bat is removed.
So a game of ping-pong against the computer using just eight lines of code (three links and four divs).
You may use this method on your personal 'non-profit' web site without seeking my permission. A link back to CSSplay is always appreciated.
Commercial usage is also permitted without seeking approval, but I would ask that a donation is considered to support my work on CSSPlay.
If you are having problems integrating any of my demonstrations into your website then I now offer a service to fault find and correct any errors that you may have introduced. Please email me for more information.