Programación Específica > Programación de Videojuegos

 Algoritmo De Bresenham

(1/2) > >>

el__dick:
Aver me explico,toy implementando un pekeño tenis en ensamblador y me olbigan a utilizar este o otro tipo e algoritmos q cambien los rebotes xq sino la partida como q es muy aburrida, e implementao el algoritmo de Bresenham en ensamblador pero ahora no se como utilizarlo xq este algoritmo de basa en la diferencias entre las coordenadas X de dos puntos, pero claro tu cuando rebota la bola no sabes cual es el siguiente rebote ni nada de eso, estoy atrancado en esta parte, si alguien lo a utilizao o sabe como acerlo me gustaría q me exase una mano.
Espero noticias. GRACIAS.

el__dick:
No leais tantoy contestar aunq sean ideas q este toy to atrancao y x mas q pienso no se x donde seguir, enga os dejo q sigais pensando  :P

ADIOS :kicking:

ArKaNtOs:
tu problema no es el lenguaje sino la lógica, en cuanto al algoritmo de bresenham es solo un algoritmo para crear lineas sin errores, ahora se supone que tu debes de saber siempre las coordenadas de donde se encuentra la bola sino como es que se esta moviendo?, cuando tu dices que no sabes hacia donde se va a ir la pelota, pues supongo que has hecho una macro para calcular este proceso, además ese es parte del algoritmo darle unas coordenadas iniciales y unas finales, en el caso del pong, estas coordenadas pueden ser interrumpidas si la barra golpea la bola no es así?, solo es ir pensando en ello :)

el__dick:
Claro,yo lo q he exo es ir sumando uno a cada componente, x e y de la bola y en el momento q llegue a los limites de la pantalla pos multiplicar por -1 el incremento de la x o de la y, la q en ese momento este en los limites. Pero aún así sigo sin saber como integrar el algoritmo,q tendría q acer pasarlo para el punto en el que esta?, x ejemplo (x,y), y para el siguiente  q sería (x+incremento,y+incremento)? lo malo de esto esq kizás el siguiente punto este antes q el inicial x lo tanto la diferencia en las X sería negativa y así el algoritmo no funciona...........jaja vaya mierda de rayadas navideñas jaja. Te paso mi subrutina para el movimiento de la pelota y si tienes alguna duda de como integrarlo dejamlo indicao o algo. Tiene algunos fallilos todavia la función pero en general esta bien,pero no tiene salida jaja aora mismo la bola se mueve eternamente :P
Bueno GRACIAS x preocuparte.


--- Código: Text --- rebotes proc   push ax  push dx  mov ax,0A000h  mov es,ax  mov ax,158  mov dx,98rebota:            &#59; al final tendr‚ q acer popdx popax cuando salga de la funcion  jmp comprueba  jmp incrementapunto   sigue:  bola ax,dx  push cx  push bx   &#59;nose xq ago esto pero ace q funcione  mov cx,50&#59; 1 s  mov bx,596;--> esta instruccion lo casca to; 1/200 sBucle_1_segundo:    call  Retardo    loop  Bucle_1_segundo  pop bx    &#59;es necesareo para q funcione  pop cx  borrar_bola ax,dx  jmp rebota comprueba:    cmp ax,319    jz rebotaX    cmp ax,1    jz rebotaX compruebay:    cmp dx,167    jz rebotaY    cmp dx,1    jz rebotaY incrementapunto:    add ax,incrementox    add dx,incrementoy    jmp sigue rebotaX:  neg incrementox  jmp compruebay  rebotaY:  neg incrementoy  jmp incrementapunto rebotes endp  

BlackWind:
que tal,

algo sencillo que se me ocurre es:

1.- En cuanto la bola rebote con la barra, generes un punto aleatorio en X con el borde superior o inferior de la pantalla
es decir, suponiendo que la pantalla mide  400x300, el punto aleatorio X siempre estaria entre 0 y 400 y el punto en Y siempre seria o  0 o 300, ejemplos:
(10,0), (55,0), (315,300)

2.- Ya tienes el nuevo punto XY y tambien tienes el punto XY de la bola, ya con eso puedes implementar el algoritmo de bresenham y que la bola vaya moviendose por todos los puntos que genera el algoritmo....

Nota: que esos pasos solo se hagan cuando la pelota choca con la barra, porque si tambien se hace cuando choca con la pared de arriba o de abajo, podria generar direcciones muy extrañas......

saludos,

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa