Skip to content

Commit 4a0eefc

Browse files
Yang Gugreggman
authored andcommitted
Increase fish number and make its change easier
To cater the powerful desktops, fish number is creased so that FPS won't hit the roof 60 and an algorithm is introduced to decide the numbers among small, medium and big fishes. Also to make future change of fish number easier, the relevant logic is moved from html to js.
1 parent 7e2b32e commit 4a0eefc

File tree

2 files changed

+53
-31
lines changed

2 files changed

+53
-31
lines changed

aquarium/aquarium.html

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -119,17 +119,8 @@
119119
<div class="fps">fps: <span id="fps"></div>
120120
<div id="topUI">
121121
<div>Number of Fish</div>
122-
<div class="clickable" id="setSetting0">1</div>
123-
<div class="clickable" id="setSetting1">10</div>
124-
<div class="clickable" id="setSetting2">50</div>
125-
<div class="clickable" id="setSetting3">100</div>
126-
<div class="clickable" id="setSetting4">250</div>
127-
<div class="clickable" id="setSetting5">500</div>
128-
<div class="clickable" id="setSetting6">1000</div>
129-
<div class="clickable" id="setSetting7">2000</div>
130-
<div class="clickable" id="setSetting8">4000</div>
131-
<div class="clickable" id="setSetting9">Change View</div>
132-
<div class="clickable" id="setSetting10">Advanced</div>
122+
<div class="clickable" id="setSettingChangeView">Change View</div>
123+
<div class="clickable" id="setSettingAdvanced">Advanced</div>
133124
<div class="clickable" id="options">Options...
134125
<div id="optionsContainer">
135126
</div>

aquarium/aquarium.js

Lines changed: 51 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ var g_netUI = [
102102
var g_fishTable = [
103103
{
104104
name: 'SmallFishA',
105-
num: [0, 3, 36, 76, 206, 500-40-40-2-2, 1000-80-80-2-2, 2000-80-80-2-2, 4000-80-80-2-2, 50],
106105
speed: 1,
107106
speedRange: 1.5,
108107
radius: 30,
@@ -118,7 +117,6 @@ var g_fishTable = [
118117
},
119118
{
120119
name: 'MediumFishA',
121-
num: [0, 3, 6, 10, 20, 40, 80, 80, 80, 10],
122120
speed: 1,
123121
speedRange: 2,
124122
radius: 10,
@@ -134,7 +132,6 @@ var g_fishTable = [
134132
},
135133
{
136134
name: 'MediumFishB',
137-
num: [0, 2, 6, 10, 20, 40, 80, 80, 80, 10],
138135
speed: 0.5,
139136
speedRange: 4,
140137
radius: 10,
@@ -150,7 +147,6 @@ var g_fishTable = [
150147
},
151148
{
152149
name: 'BigFishA',
153-
num: [1, 1, 1, 2, 2, 2, 2, 2, 2, 3],
154150
speed: 0.5,
155151
speedRange: 0.5,
156152
radius: 50,
@@ -170,7 +166,6 @@ var g_fishTable = [
170166
},
171167
{
172168
name: 'BigFishB',
173-
num: [0, 1, 1, 2, 2, 2, 2, 2, 2, 1],
174169
speed: 0.5,
175170
speedRange: 0.5,
176171
radius: 45,
@@ -782,20 +777,12 @@ function advanceViewSettings() {
782777
* Sets the count
783778
*/
784779
function setSetting(elem, id) {
785-
switch (id) {
786-
case 10:
787-
break;
788-
case 9:
789-
advanceViewSettings();
790-
break;
791-
default:
792-
g_numSettingElements[id] = elem;
793-
setSettings({globals:{fishSetting:id}});
794-
for (var otherElem in g_numSettingElements) {
795-
g_numSettingElements[otherElem].style.color = "gray";
796-
}
797-
elem.style.color = "red";
780+
g_numSettingElements[id] = elem;
781+
setSettings({globals:{fishSetting:id}});
782+
for (var otherElem in g_numSettingElements) {
783+
g_numSettingElements[otherElem].style.color = "gray";
798784
}
785+
elem.style.color = "red";
799786
}
800787

801788
/**
@@ -854,8 +841,48 @@ function initialize() {
854841
Log("--Setup Laser----------------------------------------");
855842
var laser = setupLaser();
856843

844+
var num = [1, 100, 500, 1000, 5000, 10000, 15000, 20000, 25000, 30000];
845+
var changeViewElem = document.getElementById("setSettingChangeView");
846+
var parentElem = changeViewElem.parentNode;
847+
for (var i = 0; i < num.length; ++i) {
848+
var div = document.createElement("div");
849+
div.className = "clickable";
850+
div.id = "setSetting" + i;
851+
div.innerHTML = num[i];
852+
parentElem.insertBefore(div, changeViewElem);
853+
}
854+
857855
for (var ff = 0; ff < g_fishTable.length; ++ff) {
858856
g_fishTable[ff].fishData = [];
857+
g_fishTable[ff].num = [];
858+
}
859+
860+
var type = ["Big", "Medium", "Small"];
861+
for (var i = 0; i < num.length; ++i) {
862+
var numLeft = num[i];
863+
for (var j = 0; j < type.length; ++j) {
864+
for (var ff = 0; ff < g_fishTable.length; ++ff) {
865+
var fishInfo = g_fishTable[ff];
866+
var fishName = fishInfo.name;
867+
if (!fishName.startsWith(type[j])) {
868+
continue;
869+
}
870+
var numType = numLeft;
871+
if (type[j] == "Big") {
872+
numType = Math.min(numLeft, num[i] < 100 ? 1 : 2);
873+
} else if (type[j] == "Medium") {
874+
if (num[i] < 1000) {
875+
numType = Math.min(numLeft, num[i] / 10 | 0);
876+
} else if (num[i] < 10000) {
877+
numType = Math.min(numLeft, 80);
878+
} else {
879+
numType = Math.min(numLeft, 160);
880+
}
881+
}
882+
numLeft = numLeft - numType;
883+
fishInfo.num.push(numType);
884+
}
885+
}
859886
}
860887

861888
var particleSystem = new tdl.particles.ParticleSystem(
@@ -1616,11 +1643,15 @@ function setupCountButtons() {
16161643
} else {
16171644
setSetting(document.getElementById("setSetting2"), 2);
16181645
}
1619-
setSetting(document.getElementById("setSetting9"), 9);
16201646
}
16211647

16221648
function initUIStuff() {
16231649
setupCountButtons();
1650+
var elem = document.getElementById("setSettingChangeView");
1651+
elem.onclick = function() {
1652+
advanceViewSettings();
1653+
};
1654+
advanceViewSettings();
16241655

16251656
function toggleOption(name, option, elem) {
16261657
var options = { };
@@ -1697,7 +1728,7 @@ $(function(){
16971728
g.net.fovFudge = 1;
16981729
}
16991730

1700-
$('#setSetting10').click(function() {
1731+
$('#setSettingAdvanced').click(function() {
17011732
$("#uiContainer").toggle('slow'); return false; });
17021733
$("#uiContainer").toggle();
17031734
$('#options').click(function() {

0 commit comments

Comments
 (0)