Enero 29, 2013, 01:49:48 AM Ultima modificación: Enero 29, 2013, 10:43:50 PM por ZELDA
Hola CGM descargue un ejemplo que muestra como hacer una collision perfecta con el sig codigo
if keyboard_check(vk_up){
for(i=0; i<(velocidad+1) i+=1) {
if place_free(x,y-i) Y=i else break
} y-=Y
}
if keyboard_check(vk_down){
for(i=0; i<(velocidad+1) i+=1) {
if place_free(x,y+i) Y=i else break
} y+=Y
}

y ese lo use para las paletas y mi pregunta es como hago para que la pelota use ese mismo codigo pero que se mueva sola y que se mueva aunque sea nadamas horizontal pero alatoriamente, es decir: izquierda o derecha.
saludos y gracias de antemano!!!

Ese codigo lo que hace es mover la paleta de a un pixel por vez hasta que se choque un objeto con un maximo de velocidad, se mueve como máximo el número de píxeles por step que velocidad guarda

No entendí la parte de
Citarmi pregunta es como hago para que la pelota use ese mismo codigo pero que se mueva sola y que se mueva aunque sea nadamas horizontal pero alatoriamente, es decir: izquierda o derecha.

Es un juego de PingPong? porque si es así la pelota se puede mover de arriba a abajo. Si vos querés que se mueva hacia el costado hasta que rebote en una pared para pegarse la vuelta el código sería algo así:

En create
direccionDeMovimiento=0 //Dirección de moviiento inicial, 0 es derecha y 1 es izquierda
velocidad=3 //Velocidad de movimiento en pixeles por step


En step
if direccionDeMovimiento=1 { //Moviendo a izquierda
    for(i=0; i<=velocidad i+=1) {
        if place_free(x-i,y) y-=i //Ver si esta libre la posición x-i, si es así mover a esa posición
        else {direccionDeMovimiento=0; break} //Si no es así hacer que se mueva en la dirección contraria y terminar
    }
}
else { //Moviendo a derecha
    for(i=0; i<=velocidad i+=1) {
        if place_free(x+i,y) y-=i  //Ver si esta libre la posición x+i, si es así mover a esa posición
        else {direccionDeMovimiento=1; break} //Si no es así hacer que se mueva en la dirección contraria y terminar
    }
}

También arreglé unas cositas del código, por ejemplo "i<(velocidad+1)" es lo mismo que "i<=velocidad", para mí es mas entendible a la segunda manera
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy


Muchas gracias!!! me sirvio mucho!!!