liam-m / sepr-mqv-2 Goto Github PK
View Code? Open in Web Editor NEWThis project forked from imp1/bear_traffic_controller
Team MQV's SEPR Assessment 3 Project
This project forked from imp1/bear_traffic_controller
Team MQV's SEPR Assessment 3 Project
When an aircraft leaves the airspace, display its score by its exit point, which gradually fades (decrease alpha until it's 0)
Sub-task for #3
Mechanism decided by @Matidy
Each aircraft has a base score:
There is a value 'x' which is equal to:
(of course these are all 1 at the moment. This is for if we decide to change base score in future)
There is a value 'y', which is initially 0. This is increased by 'x' every time an aircraft leaves the airspace.
There is a global multiplier, which is based on y:
There is a global score, initially 0. Every time an aircraft leaves the airspace, the global score is increased by (multiplier * base_score * x)
did it already - this is just to keep track of what we changed
Currently when an aircraft's destination is the airport and it is selected clicking causes the aircraft to change its bearing so it wont land. I think the left mouse does too many things and im not sure the bearing changing works well since the main method of control should be routing the plane through the airspace
We should all attempt to produce good documentation as a selling point for the next assessment, good documentation means:
Sub-task for #2
The airport is located near the centre of the airspace. The player should have more than enough time to redirect a new plane entering the airspace before it crashes/almost crashes into a plane waiting to land.
As the background image currently has the airport on the right, a new image will have to be made at some point (@aljidy, @Matidy).
Aircraft will continue to try to reach a waypoint even if their turning speed means they'll never reach it.
Particularly an issue if you make a plane circle it's exit point as control is removed everytime you exit the airspace.
Aircraft is very large and potentially unmanageable. Refactor out flight plan and associated methods/attributes into its own class.
Make sure that an aircraft isn't spawned at an entry point if:
Instead, make it spawn at a different entry point. If none of them is available, make it spawn at the airport. If the airport is full and no entry point is available, don't spawn anything.
Modify createAircraft() in Demo for this.
The aircraft will start turning towards the old manual target bearing as soon as you re enter manual control.
All of the other entry / exit points have a label with their name on. Display 'Mosbear Airport' just above it.
When an aircraft leaves the airspace on manual control mode, it reverts back to auto control mode to be guided back to it's flight path. Once back in the airspace it reverts back to manual mode and if the user doesn't take quick drastic action it can get stuck in this loop.
Suggested Fix
Once the plane comes back into the airspace it should remain on auto control as opposed to reverting back to manual control.
Do we want to add keyboard controls for everything? I think particularly we could do with changing the control altitude as scroll wheel is a fairly clunky way to do it.
I don't think it'll really be possible to change flight plans using keyboard but it could probably be used for everything else.
Sub-task for #1
Plane positions continue to be calculated when you move the menu. Everything else freezes. Plane position is not calculated correctly while moving the menu.
Make it so that planes don't get lower alpha as they change altitude - just make it so they become smaller
The selected aircraft's flight path should be highlighted as it is currently.
The aircraft you're hovering over's flight path should be highlighted with half alpha.
When an aircraft is ready to land but the ATCO hasn't sent the land command, the aircraft will circle the airport at a certain radius. Of course, this only applies to aircraft that have the airport as their destination. This behaviour may change based on UX decisions so we'll wait for those to be finalised before implementing this.
Sub-task for #1
Offset has to be applied to mouse handlers in order for the mouse to line up with GUI elements in game and the only other solution is to mess with lwjgl which at this point is far too messy, the offsets should be in variables and their presence should be documented and explained
Sub-task for #3
See UI/UX document/ask @Matidy if you're not sure where it should be displayed. Ask @jacob135135 if you're not sure how to retrieve the current score
When attempting to issue the land command the player picks up the flight path as if to modify.
Display what used to be called control altitude above where it says how many planes are currently in the air.
I think it should be called either 'view altitude' or 'highlighted altitude' and its main use is just so you can see which planes are in danger of colliding.
The increase to the plane spawn rate based on multiplier isn’t enough (should also be scaled by difficulty due to the planes moving faster).
Ideally there will be at least 10 aircraft in the airspace at some points
I think it'd be good to have a settings/config file (e.g. in XML or something) to make it easier to change values like aircraft speeds, collision radius and entry/exit point positions. Rather than having to go to several different classes to change these they could all be found in one place.
Then we could find a library to read in the information from the file and stick these into the relevant classes at initialisation. If a value isn't in there then it could either throw an error or go to a default value.
What do we think of this?
Part of #5
If you start a game, press escape and start a new one a do it a few times, planes will crash immediately as you start a game
This is just a reminder for you
We can get some extra marks for adding further features or behaviours. These need to be fully explained and justified in the deliverables and must not violate the requirements for the game.
Anyone got any ideas for these?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.