Buenas, ya me he puesto con el del pin pong y lo tengo casi terminado, he conseguido que la barra de abajo se me deslice (con las teclas z y x) y ponerle los topes en los laterales, y que la pelota rebote ya ta perfecto tambien, pero me falta la condicion para que rebote solo cuando de en la barra, os pongo lo que tengo:
spoiler<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<title> Juego Pelota </title>
<meta name="autor" content="Jose Benito" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content=""/>
<meta name="keywords" content=""/>
<script type="text/javascript">
var x = 0; /* Movimiento horizontal /
var y=230; / Movimiento barra /
var n= 0; / Movimiento vertical /
var control = 0; / Controla el alto y bajo /
var control2 = 0; / Controla los lados /
var controlbarra = 0; / Controla la barra /
var controlbarra2 =0; / Controla la barra /
var balon = 60; / Tama?o de la imagen /
var barra = 100; / Ancho de la barra /
var altobarra = 50 ; / Alto de la barra */
window.onload = mover; /* Cargar la aplicacion al iniciar la pagina /
window.onload = pulsar; / Cargar la aplicacion al iniciar la pagina */
function pulsar(e)
{
document.onkeypress=pulsar;
var mievento=e || window.event;
var codigotecla = mievento.charCode || mievento.keyCode;
letra=String.fromCharCode(codigotecla)
leftbarra = parseFloat(document.getElementById("barra").style.left);
if ( leftbarra >= 20 )
{
controlbarra=1;
}
else
{
controlbarra=2;
}
if (leftbarra < anchorectangulo - barra)
{
controlbarra2=1;
}
else
{
controlbarra2=2;
}
if (codigotecla == 122 && controlbarra==1)
{
y= y-14;
}
else if (codigotecla == 120 && controlbarra2==1 )
{
y= y+14;
}
document.getElementById("barra").style.left= y +"px";;
}
function mover() /* Funcion que realiza el movimiento y controla que no salga de los bordes/
{
/ Cambia los estilos a flotante y los introduce en una variable/
altorectangulo = parseFloat(document.getElementById("rectangulo").style.height);
anchorectangulo = parseFloat(document.getElementById("rectangulo").style.width);
top = parseFloat(document.getElementById("balon").style.top);
left = parseFloat(document.getElementById("balon").style.left);
topbarra = parseFloat(document.getElementById("barra").style.top);
/ Esta parte controla que no se salga del cuadrado */
if (top <=0) {control=1;}
if (left <=0) {control2=1;}
if ( top > altorectangulo - balon) {control=2;}
if (left > anchorectangulo - balon) {control2=2;}
/* Esta parte realiza los movimiento del balon */
if (control==1) {x++;}
else {x--;}
if (control2==1) {n++;}
else {n--;}
/* Esta parte pasa los valores de x y n a la imagen en cuestion /
document.getElementById("balon").style.top = x + "px";
document.getElementById("balon").style.left = n + "px";
if ( top + balon == altorectangulo - altobarra) {control=2;}
if (control2==1) {n++;}
else {n--;}
}
setInterval("mover()",10); / Intervalo del tiempo */
</script>
</head>
<body style="margin-left:4px;">
<!-- Le da tama?o al rectangulo y le pone fondo azul -->
<div id="rectangulo" style="height:385px; width:550px; margin-left:0px; background-color:blue;">
<!-- Introduce la imagen y la pone en posicion relativa para que pueda moverse -->
<img src="balon.gif" alt="balon" id="balon" style="position:relative; "/>
<img src="barra.gif" alt="barra" id="barra" style="position:absolute; top:343px; left:230px;"/>
</div>
</body>
</html>
La condicion la estoy intentando meter en :
spoilerif ( top + balon == altorectangulo - altobarra) {control=2;}
if (control2==1) {n++;}
else {n--;}
}
he probado metiendole un
if ( top + balon == altorectangulo - altobarra && balon[n] == barra[y])
pero lo unico que he conseguido es que me rebote a la altura de la barra en toda la pantalla.
Me dais alguna pistilla o algo?? que es mi proyecto final de javascript
Venga muchas gracias!!