Ci sono una dozzina di modi in cui potrei formulare questa domanda, ma per mantenere i miei pensieri in linea, lo sto formulando in linea con il mio problema a portata di mano.
Quindi sto creando una piattaforma mobile che mi piacerebbe poter viaggiare da un punto designato all'altro, quindi tornare al primo e passare semplicemente tra i due in linea retta. Tuttavia, solo per renderlo un po 'più interessante, voglio aggiungere alcune regole alla piattaforma.
- Lo sto codificando per viaggiare multipli di interi valori di piastrelle dei dati del mondo. Quindi, se la piattaforma non è ferma, viaggerà almeno per l'intera larghezza o altezza della piastrella.
- Entro una piastrella, vorrei che acceleri da una fermata a una data velocità massima.
- Al raggiungimento della distanza di una piastrella, vorrei che si rallentasse fino a raggiungere una determinata coordinata di piastrelle e quindi ripetere il processo al contrario.
Le prime due parti non sono troppo difficili, essenzialmente sto avendo problemi con la terza parte. Vorrei che la piattaforma si fermasse esattamente alle coordinate di una piastrella, ma dato che sto lavorando con l'accelerazione, sembrerebbe facile semplicemente iniziare ad applicare l'accelerazione nella direzione opposta a un valore che memorizza la velocità corrente della piattaforma quando raggiunge la lunghezza di una piastrella di distanza (supponendo che la piastrella percorra più di una lunghezza di piastrella, ma per mantenere le cose semplici, supponiamo solo che lo sia) - ma allora la domanda è: quale sarebbe il valore corretto per accelerare l'incremento da cui produrre questo effetto? Come troverei quel valore?
acceleration = desired_velocity - currentVelocity
quindi applica tale accelerazione come faresti normalmente. Creerò una risposta un po 'più avanti mostrando ciò che faccio.