001 package components; 002 003 import physics3d.Vect3; 004 005 /** 006 * GameSettings is a mutable object that holds gamesettings 007 * @specfield gravity 008 * @specfield mu 009 * @specfield mu2 010 * @specfield fps 011 */ 012 013 /* 014 * Abstraction Function 015 * AF(r) = a GameSettings object, gs, such that 016 * gs.gravity = r.gravity 017 * gs.mu = r.mu 018 * gs.mu2 = this.mu2 019 * gs.fps = this.fps 020 */ 021 022 /* 023 * Rep Invariant 024 * gravity != null 025 */ 026 027 public class GameSettings { 028 029 //fields 030 private Vect3 gravity; 031 private double mu; 032 private double mu2; 033 private int fps; 034 035 public GameSettings() { 036 gravity = new Vect3(0,25,0); 037 mu = 0.025; 038 mu2 = 0.025; 039 fps = 30; //frames per second 040 } 041 042 /** 043 * @return the frames per second 044 */ 045 public int getFPS() { 046 return fps; 047 } 048 049 /** 050 * @param fps is the frames per second to set 051 * @effects sets the frames per second 052 */ 053 public void setFPS(int fps) { 054 this.fps = fps; 055 } 056 057 /** 058 * @return the gravity 059 */ 060 public Vect3 getGravity() { 061 return gravity; 062 } 063 064 /** 065 * @require gravity != null 066 */ 067 public void setGravity(Vect3 gravity) { 068 this.gravity = gravity; 069 } 070 071 /** 072 * @return the mu 073 */ 074 public double getMu() { 075 return mu; 076 } 077 078 /** 079 * @param mu the mu to set 080 */ 081 public void setMu(double mu) { 082 this.mu = mu; 083 } 084 085 /** 086 * @return the mu2 087 */ 088 public double getMu2() { 089 return mu2; 090 } 091 092 /** 093 * @param mu2 the mu2 to set 094 */ 095 public void setMu2(double mu2) { 096 this.mu2 = mu2; 097 } 098 }