This kineticjs, html5 canvas experiment reflects a scenaria of how the fishing crew on a trawler
could operate when active on the sea during a fishing mission.
The following operating states are thought to play a role in the game (=simulator game):
1. The boat is sailing from port. The crew is going on a mission out to some fishing grounds (which could be given as coordinates instructions at start)
2. There is other sea traffic that the fishing trawler should not collide with (game is lost)
3. The crew will use sonar (echo localisation) to discover fish occurrences
4. From observations they will decide on in which direction the fish shoal moves so as to bring boat in correct position (=sailing toward the shoal)..
5. The crew has to decide on on which sea depth the shoal goes to bring in use the appropriate fishing utils ( )
6. The crew must navigate according to the precise target points sonar gives
7. Future development point: we could distinguish between what type of fish we go for as as a guide for selecting fx best traps...
8. We could add other aspects : fx islands, ice blocks ,severe weather, that the navigation should relate to in the game
9. Obstacles to add: Bottom trawls can be damaged by debris etc ....
These are the outlines for the game.
Basically development of the game relies on the kinticjs framework as this plugin is very nice to build with cause of its classes with rich attributes sets and methods and
to wrap the things (objects) we plan to introduce on the (html) canvas.
The sonar feature 'lives' in a Kinetic.Animation loop.
For the kinetic sonar-circle object we call upon the associated .scale method for a defined period of time:
circlesonar.scale({x:scale,y:scale});
SPACE key press invoke sonar.
In the same instance we detect for occurrences of fish shoals and display the result in the console part of the game.
The detection measure for location of the shoal and sea depth it goes on.
The trawler is a kinetic rect that is binded to a image object. Player navigate the trawler with the 4 arrow keys manually . Behind the arrow key steps we synchronize the movements of the trap object to ensure that its x and y coords
always are strictly matched to the ones of the boat.
What might have worked just as well is stacking by using a kinetic Group construction including the boat and trap). Backspace invoke the trap and make it visible. Shift make it disappear.
Opacity attribute (that can take one of tree different values) of the trap object give the illusion of how deep the trap sticks.
There is a layer reserved specifically for the trawler and the trap together.
One of 3 different layers address the fish shoal and reflect the level on which the fish shoal moves.
Level allocation is assigned randomly. Location of shoal to distinct layer is determined in a jquery switch statement procedure.