diff options
author | Matt Strapp <matt@mattstrapp.net> | 2021-09-24 10:05:55 -0500 |
---|---|---|
committer | Matt Strapp <matt@mattstrapp.net> | 2021-09-24 10:05:55 -0500 |
commit | 458496b2db6d67736fd1ffc18c6e51a7a4e1180c (patch) | |
tree | 3d6ee4e37a48d71a6ac781cbd93a6d6dcb234f98 /dev/a2-carsoccer/car.cc | |
parent | Pushed feedback file submission-w1.1 (diff) | |
parent | publish a2 (diff) | |
download | csci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.tar csci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.tar.gz csci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.tar.bz2 csci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.tar.lz csci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.tar.xz csci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.tar.zst csci4611-458496b2db6d67736fd1ffc18c6e51a7a4e1180c.zip |
Merge branch 'support-code' of github.umn.edu:umn-csci-4611-f21/shared-upstream
Diffstat (limited to '')
-rw-r--r-- | dev/a2-carsoccer/car.cc | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/dev/a2-carsoccer/car.cc b/dev/a2-carsoccer/car.cc new file mode 100644 index 0000000..3b9bb5c --- /dev/null +++ b/dev/a2-carsoccer/car.cc @@ -0,0 +1,66 @@ +#include "car.h" + +/// The constructor sets the static properties of the car, like its size, +/// and then calls Reset() to reset the position, velocity, and any other +/// dynamic variables that change during game play. +Car::Car() : size_(3,2,4), collision_radius_(2.5) { + Reset(); +} + +Car::~Car() { +} + + +float Car::collision_radius() { + return collision_radius_; + +} + +Vector3 Car::size() { + return size_; +} + +Point3 Car::position() { + return position_; +} + +void Car::set_position(const Point3 &p) { + position_ = p; +} + +Vector3 Car::forward() { + return forward_; +} + +void Car::set_forward(const Vector3 &v) { + forward_ = v; +} + +float Car::speed() { + return speed_; +} + +void Car::set_speed(float s) { + speed_ = s; +} + +Vector3 Car::velocity() { + return speed_ * forward_; +} + + +void Car::Reset() { + position_ = Point3(0, size_[1]/2, 45); + forward_ = Vector3(0, 0, -1); + speed_ = 0.0f; +} + +void Car::Draw(QuickShapes quickShapes, Matrix4 modelMatrix, Matrix4 viewMatrix, Matrix4 projMatrix) { + Color carcol(0.8f, 0.2f, 0.2f); + Matrix4 Mcar = + Matrix4::Translation(position_ - Point3(0,0,0)) * + Matrix4::LookAt(Point3(0,0,0), Point3(0,0,0) + forward_, Vector3(0,1,0)).Inverse() * + Matrix4::Scale(size_) * + Matrix4::Scale(Vector3(0.5f, 0.5f, 0.5f)); + quickShapes.DrawCube(modelMatrix * Mcar, viewMatrix, projMatrix, carcol); +} |