## Overview

This project is designed to demonstraint some of the skills we have learned while taking CSC-471 at Calpoly.

In this project the main character is a Hierarchicaly modeled robot which tries to get to the "Crown." When the robot collides with an obsticle, it turn toward the other direction which reduces its distance toward the Crown. After reaching the "Crown", the crown shrinks until it is gone from the screen. After reaching the Crown, the robot celebrates the occasion by jumping up and down.

## Instructions

• Use "a" or "b" commandline arguments to load the obsticles in different locations

## Controlls

• #### "A" Key:

Moves the camera to left
• #### "D" Key:

Moves the camera to right
• #### "W" Key:

Moves the camera forward
• #### "A" Key:

Moves the camera to backward
• #### Mouse:

Enables the user to rotate the camera

## Technologies:

1. Collision Detection
3. Cursor Callback
4. Physics concepts
5. Hierarchical modeling
6. artificial intelligence

### 1- Collision Detection

The program is capable of detecting collisions between the robot and the trees that are spread accross the screen. When the collision is detected, the robot turn 90 degrees and continue browsing the enviroment.

Additionally, when it reaches the goal that is placed in the enviroment, it stops moving any further.

### 2- Phong Shading and light

Basic lighting of the enviroment is done based on the principals of Phong shading.

The light source moves along side with the camera which simulates having a flashlight in the viewers hand. This effect makes the center of the screen to look brighter than the edges of the screen.

### 3- Cursor CallBack

This functionallity is used to enable the user to rotate the camera in the enviroment useing the mouse

### 4- Physics concepts

After the robot reached the goal, it strats jumping up and down while staying in the same location. In order to have a realistic jumping motion, it uses V^2 - U^2 = 2at and y = 1/2 * at^2 + Vt + y(initial). This gives the robat a smooth jumping effect. The robot starts moving fast upwards while its speed slows down gradually until it reaches the higest point. Then, it starts falling down with very low speed. The falling down speed increases based on the time it passed from free falling.

### 5- Hierarchical modeling

Robot, the main character of the project, is build up of 12 different parts which all of them had to be assembled to form the robot.

### 6- Artificial Intelligence

Robot has a weak Artificial Intelligence which guids it toward the goal. It only allows the robot to go toward the goal. If robot enters a U-shape obsticle, it would not be able to get out of it and find the goal.

keyboard