Luft tryk mellem rum i et rumspil

DrZarqawi
Level 1 - Speck of dust
Posts: 10
Joined: 18 Mar 2013, 16:15

Luft tryk mellem rum i et rumspil

Unread post by DrZarqawi » 12 Aug 2016, 22:11

Hej :)

Jeg sidder og roder lidt med et Rumbaseret tycoon-spil i unity og jeg tænker at som en del af det skal Oxygen styring være en faktor.

Men jeg kan simpelthen ikke gennemskue hvordan jeg skal simulere Lufttryk og Volume mellem rummene jeg laver.
Image
I mit prototype projekt har jeg en "Oxygene-provider" (den grønne) i midten og rundt om kan jeg så bygge korridorer (de hvide).
Jeg vil finde en måde at udregne luft trykket for hvert enkelt rum og sende luft frem og tilbage gennem rumstationen baseret på hvor lufttrykket er højest eller lavest.

mit forslag ligenu er en udregning for hvert rum i stil med:

Code: Select all

Pressure = output - Oxygene Level / intake
Men problemet med det er at for at udregne output og intake skal jeg kende pressure :/

Jeg har siddet og stirret mig blind de sidste to dage og har angrebet fra alle mulige vinkler, men kan bare ikke gennemskue det.

Så jeg håber virkelig at der er nogen herinde der kan skubbe mig i den rigtige retning :)

User avatar
Instawin
Level 17 - Jade Raymond
Posts: 171
Joined: 30 Apr 2015, 09:28
Location: Copenhagen
Contact:

Re: Luft tryk mellem rum i et rumspil

Unread post by Instawin » 16 Aug 2016, 08:37

Hmm en lidt kompleks problemstilling lyder det til, som er lidt svær at overskue alene på baggrund af beskrivelsen?

Hvad er f.eks. formålet med at luften kan komme frem og tilbage? Skal lufttrykket jævnes ud rummene imellem, eller skal der være et bestemt tryk på et bestemt sted? Hvilke mekanismer har spilleren at operere med, og hvordan styres det?
Er der nogle grænser for hvor lidt og hvor meget lufttryk der kan være? Kan der f.eks. være over- eller undertryk, og hvad skal der i givet fald så ske?

Tilgang og afgang af luft, er den liniær eller stigende/faldende?

Jeg har ikke løsningen, men det var nogle af de spørgsmål, der lige hobede sig op hos mig, da jeg læste din post?

User avatar
Henrik LSP
Level 10 - Dark arts student
Posts: 105
Joined: 19 Apr 2011, 20:53

Re: Luft tryk mellem rum i et rumspil

Unread post by Henrik LSP » 18 Aug 2016, 16:38

Du kunne måske prøve noget i retning af nedenstående med en funktion der kaldes en gang per frame for hvert rum: (pseudo kode)

Code: Select all

for each Room r in getAdjacentRooms()
{
 if pressure < r.pressure
 {
  flow = flow_per_second * seconds_per_frame
  if flow > (r.pressure - pressure)/2
  {
   flow = (r.pressure - pressure)/2 
  }
  pressure += flow
  r.pressure -= flow
 } 
}

Post Reply