Skip to content

Latest commit

 

History

History
116 lines (89 loc) · 13.2 KB

design.md

File metadata and controls

116 lines (89 loc) · 13.2 KB

المكرمشة:


  1. high level of abstraction for main modules (objects)

  2. how those module might interact (talk to each other ?)

  3. the whole flow of the game (Flow chart)

    =================================================== -*try to study as much as can be for one object, then build the rest of objects

    - first approach for one meet the the other for another meet*

MAIN OBJECTS:

  • house->some objects within the house
  • scary faces
  • Granny
  • KEY (different sizes)

TODOS:

  • Separate objects from house (Texture and physics of the game )
  • Physics Engine

problems:

  • granny paths
  • collision ?
  • download tools and drawer

We need to see how we can use a physics engine !!?


Objects and important questions
Description Importance Logic Scenario Assigned to whom

Granny ( movement )
🤔 can be impelemented as Non playable character (NPC) or just static - movement
- catch
- animations

** House**
Can we use the house.obj as a whole or make everything alone. - Textures

 The Boy (and the Cage he is trapped in)
prisoned in the cage in the hidden room 🤔 - Face expressions(change face image)
Granny Vs Objects. Interactions between objects and each other
-> How can we make granny come to me if i make a noise in the game ()
- Collision 
Game Music How can we set the game music for each
situation and for each case

Game Scarry Faces
Class scareMe;

How to set timer and track the timer at each frame to check GameOver Condition
GameOver condition

COINS
random coins in the house once player step on it he will take it

key
Random keys hidden in the house one of them is the required one to open the Door
and a one for the cage.
- one for house
- one for cage
door exit door (winning condition) -> the door cannot open until i found its key so obvious but also the cage key

house->some objects within the house
Player Me - carry

- dead ?
- camera
- movement
- hide ?
- drop ?

Tasks
Description Assigned to whom

1 - Granny  (ghost ?) + 
- Shredan
2 - Player+ Light - Kiro
-
3 - Objects (keys,tools, .....etc) + House (Textures) - Nada
4 - Collision + Music + Scarry Faces Khaled
Text_instruction
System Description keyWords
S1 - check for distances between objects
if player is in the region of danger he is captured 
- check if player is too close too object to be able to carry it
- Capture tool
- Catched by granny
S2
Music How to use it
-  implemented using mciSendString which is a function in Windows API and is used to send command
 strings to control multimedia devices and services.
mciSendString("command  PATH", NULL, 0, NULL);
takes variety of commands to control multimedia devices and services in Windows

we should call it first with command open and file path to open the audio file
then call function again with the needed command and options

this commands are :

* open: Opens a multimedia file or device and assigns it an alias name.

  • close: Closes a multimedia file or device.
  • play: Plays a multimedia file or device.
  • stop: Stops playing a multimedia file or device.
  • pause: Pauses playback of a multimedia file or device.
  • resume: Resumes playback of a paused multimedia file or device.
  • seek: Seeks to a specific location in a multimedia file.
  • set: Sets various properties of a multimedia device or service, such as volume or playback speed.
  • status: Retrieves the status of a multimedia device or service, such as the current position of playback.
🔴Scary Faces appears at random times for a certain time (3 to 4 seconds): (Still working on How )
  1. Load the image you want to display using an image loading library such as SOIL or DevIL. This will give you a texture ID that you can use to reference the image.
  2. Set up an OpenGL quad that will cover the entire screen. You can do this by defining four vertices with texture coordinates that map to the corners of the screen.
  3. Bind the texture you loaded in step 1 to the quad using the texture ID.
  4. Render the quad to the screen using OpenGL's immediate mode or a vertex buffer object.
  5. Wait for the desired amount of time using a timer or sleep function.
  6. Clear the front buffer using glClear() to remove the quad and any other graphics from the screen.
Today's Tasks :
Tasks check
firan
music
coins
collision
text