Foros del Web » Programación para mayores de 30 ;) » Programación General »

[SOLUCIONADO] Código para reducir cualquier velocidad.

Estas en el tema de Código para reducir cualquier velocidad. en el foro de Programación General en Foros del Web. Intento hacer un pong en el que la velocidad (hacia la derecha o izquierda) de la bola disminuya a medida que avanza. ¿Cómo hago? En ...
  #1 (permalink)  
Antiguo 10/02/2013, 11:10
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Código para reducir cualquier velocidad.

Intento hacer un pong en el que la velocidad (hacia la derecha o izquierda) de la bola disminuya a medida que avanza. ¿Cómo hago?

En principio adquiere mediante random una velocidad de digamos 1 o -1, o sea, a la derecha o a la izquierda. Si pongo:
XSp = XSP - 0.01
...entonces disminuye cuando va a la derecha, pero aumenta cuando va hacia la izquierda. Y si pongo:
XSp = XSP + 0.01
...entonces sucede al revés, sí. ¿Entonces qué hago?

Ifs no quiero usar. O sea ¿es necesario usar un if?

Gracias.
  #2 (permalink)  
Antiguo 10/02/2013, 15:26
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 3 meses
Puntos: 46
Respuesta: Código para reducir cualquier velocidad.

Buenas, pues es bastante simple, pero supongo que tendras que usar condicionales, es decir, si la velocidad es positiva, disminuir la velocidad. Si la velocidad es negativa, augmentarla.


PD: Se puede saber que tipo de pong haces ? :P
  #3 (permalink)  
Antiguo 10/02/2013, 16:38
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Código para reducir cualquier velocidad.

Sí pero, ifs no quiero usar. En eso. Esperaré un rato más alguna alternativa.

Sobre el pong, es que me gusta el efecto liftado (ver en tenis), pero hacer algo con límites de cancha o con red se me complica muchísimo, y recién se me ocurrió hacer un pong en que la pelota caiga, a veces con efecto, cosa que no me parece TAN difícil (pero veremos ¬¬ ). Pensé que era algo novedoso, pero en realidad he visto algo muy parecido; nota: No intenté hacer algo novedoso. Me gustaría que uno pueda elegir la dirección, fuerza y efecto de los golpes, con lo cual parecería más un tenis, pero bueno, veremos qué sale.

Foto:


Ah, tiene piso y techo, la pelota rebotaría.

Editable (hice muy poco):
http://rapidshare.com/files/3509686672/01.fla
  #4 (permalink)  
Antiguo 11/02/2013, 04:27
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Código para reducir cualquier velocidad.

Cita:
Iniciado por Tachikomaia Ver Mensaje
Me gustaría que uno pueda elegir la dirección, fuerza y efecto de los golpes, con lo cual parecería más un tenis, pero bueno, veremos qué sale.

Foto:


Ah, tiene piso y techo, la pelota rebotaría.

Editable (hice muy poco):
http://rapidshare.com/files/3509686672/01.fla
Diria que, por ejemplo, el arkanoid aplicaba ese efecto que tu dices. En lugar de aplicar siempre la misma formula para calcular el nuevo vector de movimiento de la pelota, se utiliza la dirección de la "nave" como factor a la formula y hacer que pudieras cambiarla de movimiento.
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 11/02/2013, 07:21
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Código para reducir cualquier velocidad.

Cita:
Iniciado por Malenko Ver Mensaje
Diria que, por ejemplo, el arkanoid aplicaba ese efecto que tu dices.
¿El de NES? Se podía elegir la dirección, aunque requería golpear con los extremos, y se podía elegir el efecto en el sentido de qué bloques golpear, pero el efecto al que me refiero es el liftado y el cortado, hacer que la pelota baje muy rápido o muy lento. Además en el arcanoid la pelota baja a velocidad CASI constante.

Pude solucionarlo así:
Código:
onClipEvent (load) {
    XSp = -1 + random(2)*2;
    Aire = 0.001*(XSp/Math.abs(XSp));
}
onClipEvent (enterFrame) {
    XSp = XSp - Aire;
    this._x = this._x + XSp;
}
  #6 (permalink)  
Antiguo 11/02/2013, 07:24
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Código para reducir cualquier velocidad.

Al que yo he jugado (Amstrad CPC) diría que también le podías cambiar la velocidad.

En cualquier caso, para lo que quieres hacer es cuestión de aplicar físicas: velocidad potencial, velocidad cinética, aceleración, etc.
__________________
Aviso: No se resuelven dudas por MP!
  #7 (permalink)  
Antiguo 11/02/2013, 08:19
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Código para reducir cualquier velocidad.

Por lo que vi se parece MUCHO al de NES XD Pero ¿cómo le cambiabas la velocidad? Creo que al golpear con los bordes aumentaba, pero eso, no se podía reducir, excepto que agarraras el bloque especial... Y definitivamente ahí no hay efecto liftado. La pelota siempre cae así:

...recta, nunca así:

formando curvas.

Acá lo explica pero la imagen no se carga (no sé por qué):
http://www.google.com.uy/imgres?um=1...13&tx=66&ty=83

  #8 (permalink)  
Antiguo 11/02/2013, 09:52
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 3 meses
Puntos: 46
Respuesta: Código para reducir cualquier velocidad.

Buenas, supongo que si quieres hacer lo que aparece en la segunda imagen puedes augmentar la componente y de la velocidad cuando la "pelota" esté cerca del enemigo y supongo que deberia quedar algo así. Sino puedes hacer un poco de geometria bastante sencillita en 2d para que el modulo de la velocidad se mantenga intacto mientras que cambian sus componentes, nose prueba a ver que se parece mas al efecto que buscas.
  #9 (permalink)  
Antiguo 11/02/2013, 10:52
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Código para reducir cualquier velocidad.

El efecto de caída me gusta como lo hago, no hay problema con eso :)
Así:
YSp = YSp+0.01;
this._y = this._y + YSp;
  #10 (permalink)  
Antiguo 11/02/2013, 10:56
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 3 meses
Puntos: 46
Respuesta: Código para reducir cualquier velocidad.

Ah pense que aun era ese el problema xD Entonces aun tienes algo que le quieras añadir o ya esta como querias?
  #11 (permalink)  
Antiguo 11/02/2013, 11:24
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Código para reducir cualquier velocidad.

Quedan varias cosas, como hacer que el rival se mueva XD pero lo que quería resolver con este tema ya está :)

Etiquetas: reducir, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:01.