Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: moti simulati

  1. #1
    Utente di HTML.it L'avatar di tonaz
    Registrato dal
    Jan 2002
    Messaggi
    82

    moti simulati

    ciao ragazzi, ho un idea dalla quale deriva, naturalmente, un problema:

    l'idea è quella di fare un giochino carino che simuli la guida di un treno, graficamente bello ma dalla tecnica semplice.
    Il treno si vedrebbe da di lato e il movimento viene simulato facendo muovere lo sfondo. e qui sorge il problema:

    chi ha giocato a train simulator sa che i valori principali sono tre:
    POTENZA MOTORE
    VELOCITA' PROIETTATA
    VELOCITA'

    per ora tralasciamo la velocità proiettata (ovvero la velocità che raggiungerà prima o poi il treno mantenendo quella potenza).

    supponendo che la potenza dei motori varia da -100 (in frenata massima) e +100 (in accelerazione massima), ovviamente partendo da zero, come posso ricavarmi la velocità che ovviamente deve aumentare progressivamente?

    per esempio, aumento la potenza del motore a 15 e piano piano la velocità deve aumentare per poi stabilizzarsi lentamente a un determinato valore per esempio 40(kmh). poi aumento la potenza di nuovo fino a 55 e la velocità inizia di nuovo ad aumentare progressivamente fino a stabilizzarsi ad una velocità maggiore, per esempio 120(kmh).
    poi vado a settare nuovamente la potenza a 15 e piamo piano per forza d'inerzia, la velocità raggiungerà di nuovo i 40kmh.
    poi vado a settare la potenza ad un valore negativo percui sto frenando e la velocità deve diminuire proporzionalmente alla potenza di frenata, tenendo conto che dovrà cmq raggiungere Zero qualunque sia la potenza di frenata.
    in tutto questo sò che deve esserci il fattore accelerazione, ma mi sto talmente incartando che neanche teoricamente riesco a capire come fare a farlo funzionare. :master: :master:
    ovviamente una volta che ho il valore VELOCITA' ecco che lo sfrutto come fattore di spostamento _X dello sfondo per dare l'effetto movimento.

    alcune formule che credo vi complicheranno la vita come hanno fatto a me, percui consiglio di nn tenerne conto...

    Acc(t) = AccMax - (AccMax*AccMax) / 2VelMax * t

    Vel(t) = (AccMax * t)- (AccMax*AccMax) / 4VelMax * t*t + Vel(tempo 0)

    need help please!
    TonaZ

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    306
    lasciando perdere le formule, controlli ad ogni fotogramma la potenza del motore e determini di conseguenza la velocità max che teoricamente il treno dovrebbe raggiungere
    quando ti accorgi che questa velocità non corrisponde a quella a cui viaggia il treno, lo fai accelerare o decelerare fino a che non raggiunge il valore max corrispondente a quella potenza
    per rendere l'idea dell'accelerazione puoi aumentare la velocità (o diminuirla) secondo la legge v1=v0+(1/2*a*t*t), dove v0 è la velocità iniziale, a è l'accelerazione che dipende dalla forza (quindi dalla potenza del motore)e t è il tempo

    fammi sapere come va

  3. #3
    Utente di HTML.it L'avatar di tonaz
    Registrato dal
    Jan 2002
    Messaggi
    82
    ottima idea domani provo! grazie!
    ma per settare t secondo te va bene fare un enterframe _root.time++ ? basta solo un numero che incrementa, all infinito?

    ciaoo
    TonaZ

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    se vuoi proprio avere precisione nel calcolo ti conviene usare un setInterval per verificare "t"

    qui una pillola su pregi e difetti del setInterval

  5. #5
    Utente di HTML.it L'avatar di tonaz
    Registrato dal
    Jan 2002
    Messaggi
    82
    ma questa:

    v1=v0+(1/2*a*t*t)

    la devo "tradurre" così?

    V1 = V0 + (1 su 2A) per T al quadrato
    TonaZ

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    306
    secondo me finisce che hai dei tempi con valori altissimi

    forse ti conviene far partire il tempo considerando come istante 0 il momnto in cui cambia la potenza del motore, cioè azzerare il tempo e farlo ripartire da lì, tanto quando il treno viaggia a velocità costante il tempo non serve(una volta che hai la velocità che deve tenere costante, ti regoli con la frequenza dei fotogrammi)

    devì però ricordarti sempre di mettere il valore v0, cioè la velocità che il treno ha nel momento in cui comincia l'accelerazione

    comunque puoi fare qualche prova per vedere quale sistema sia più congeniale al tuo tipo di gioco, dipenderà anche da quanto dura un livello...

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    306
    la formula letteralmente è: velocità 1 = (velocità 0 per tempo)+[0.5*accelerazione*(tempo al quadrato)]

  8. #8
    Utente di HTML.it L'avatar di tonaz
    Registrato dal
    Jan 2002
    Messaggi
    82


    non ne esco...

    codice:
    onClipEvent (load) {
    	_root.power = 0;
    	_root.powerpercent = 0;
    	_root.projected = 0;
    	_root.speed = 0;
    	_root.time = 0;
    	i = 0
    }
    onClipEvent (enterFrame) {
    	i++
    	_root.time = (_root.time + i) / 30
    	_root.projected = _root.power*1.5;
    	_root.powerpercent = _root.power/1.5;
    	
    	if (Key.isDown(38) and _root.power<150) {
    		_root.power++;
    	}
    	if (Key.isDown(40) and _root.power>0) {
    		_root.power--;
    	}
    
    	if (_root.speed<_root.projected) {
    		_root.speed = (_root.speedcheck*_root.time) + (0.5*_root.power*(_root.time*_root.time));
    
    	}
    	trace("power: "+_root.power+"     projected speed: "+_root.projected+"     actual speed: "+_root.speed+"      time: "+_root.time);
    }

    intanto non riesco a settare la v0, ossia lo speedcheck
    e poi bho..la storia del tempo non l'ho mica capita!
    TonaZ

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    306
    sto provando a realizzare qualcosa per farti un esempio
    tu la velocità proiettata come pensi di calcolarla?

  10. #10
    Utente di HTML.it L'avatar di tonaz
    Registrato dal
    Jan 2002
    Messaggi
    82
    la velocità proiettata per semplificare potrebbe essere benissimo anche il valore della potenza stessa.
    se la potenza la si può settare da 0 a 250, quando sto in potenza 250 il treno mi arriverà piano piano a 250kmh, mentre se abbasso la potenza a 100 il treno mi rallenterà piano piano fino a 150kmh. il che è molto plausibile.

    cmq qualcosa ho fatto ma non ci sono ancora, fammi sapere! e grazie mille!
    TonaZ

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.