#C++ Sneek game
- Basic variables (
int
,bool
,float
),const
specifier,auto
- Type casting (c-style (type) cast)
- Basic arithmetic operations (
+
,-
,/
,*
,%
, precedence()
, assignment+=
etc.,++
/--
) - Conditionals (
if
...else
,switch
...case
) - Boolean logic operations (
||
,&&
,!
) - Comparisons (
>
,<
,==
,<=
,>=
,!=
) - Loops (
while
,for
,do
...while
, range-based for) - Writing functions / function parameters / return values / overloading functions
- References
&
/ pass by reference-vs-pass by value - Arrays
[]
struct
(and its difference fromclass
)enum class
namespace
/using
- Forward declaration of classes to break circular
#include
cycles - Uniform initialization of classes / structs with
{}
- Creating objects, calling member functions
- Creating
class
es, data members, and member functions public
/private
member access / encapsulation and data hidingconst
/non-mutating member functions- Writing constructors / initializing embedded objects
- Default (automatic) constructor /
= default
; - Delegating constructors
static
member variables /static constexpr
member variables- Nested classes
- Forward declaration to break circular dependencies
- Implementing operators for classes
- Rng <random>
std::mt19973
/ uniform_distributions - Utility functions
std::min
/std::max
/std::swap
- Math functions
std::abs
/std::sqrt
- Measuring time
<chrono>
std::chrono::steady_clock
/ duration - Assertions
<assert.h>
- Gfx: putpixel/screenwidth/height
- Color: getting/setting RGB color components
- Mouse/kbd: input (polled and event-driven)
- Sound: loading and playing sounds
- Game loop / frame based animation
- Grid coordinate systems and mappings
- Variable (measured) time step and fixed time step
- Basic rectangle collision detection and handling
- Recursion
- Managing a partially-filled array
- Mapping a 2D array onto a 1D array
- Compiled sprite
- Drawing filled rectangles and filled circles
- Drawing beveled graphics
- Pulsating color animation effect
- Position / velocity / acceleration
- Rebounding off of a vertical/horizontal surface
- Basic vector math (vector add/sub/scale/length/normalize)
- Basic visual studio IDE usage & navigation
- Visual studio debugger
- Git + MSVC
- Basic understanding of compiler, linker, .h/.cpp files, .lib/.obj files
- Using regex find/replace in visual studio