Beginner lessons:
Lesson 1: Video -
Material ||
( lo-spec ) Material
General Introduction
Requirements for following along with the tutorials
Homework: Mess around with
PutPixel() and figure out what each number represents
Lesson 2: Video
Review of homework from lesson 1
General explanation of functions and objects
Introduction to Intellisense, Auto-Completion and Tooltips
Homework: Translate the coordinates of the
PutPixel() composition to the lower right portion of the screen
Lesson 3: Video
Review of homework from lesson 2
The
int data type
Arithmetic operators
// + -
Homework: Offset the Y-Coordinate values with a variable
Lesson 4: Video
Review of homework from lesson 3
Whitespace and code format
if statements
Keyboard input (up, down, left, right, space and enter)
The
bool data type
Homework: Add keyboard input for each direction and change the color to red if space is pressed
Lesson 5: Video
Review of homework from lesson 4
Scope of variables
Introduction to constructors
// the initializer list
Find and replace
// Ctrl + F
Homework: Change the speed that the reticle moves around the screen
Space = 1 pixel per frame
No key pressed = 3 pixels per frame
Enter = 8 pixels per frame
Lesson 6: Video
Review of homework from lesson 5
Collision with the window borders
Comparison operators
// < >
Homework: Change the color of the reticle from white to teal when within a rectangular area at the center of the screen
Lesson 7: Video
Review of homework from lesson 6
Nested if statements
Logical operators
// &&
Bounding box collision
The equivalence
// == and assignment operator
// =
Review of all operators learned so far
// = + - < > == &&
Homework: Make a 2nd reticle that moves by itself in a rectangular pattern around the screen
Lesson 8: Video -
Material
Review of homework from lesson 7
Introduction to the debugger
Declaring and defining a function to draw reticles
The Pooface game, which uses everything learned thus far
else statements
The not operator
// !
Homework: 'like' Chili's youtube tutorial videos
Lesson 9: Video
Change the default window location in windows.cpp
while loops
Increment operator
// ++
Draw a line looping
PutPixel() calls
Homework: Draw a square and move it around with arrow keys and re-size it if holding down space. Additionally, if inclined to do so you can add a color pattern to the square.
Homework solution:
http://www.planetchili.net/forum/viewto ... ?f=3&t=943
Lesson 10: Video
Review of homework from lesson 9
for loops
Linear equations
More fun with the debugger
The
float data type
Explicit type conversion
// ( )
Absolute value function (
abs() )
// <stdlib.h>
Swapping variable values
DrawLine() for drawing lines
Lesson 11: Video
Pythagorean theorem
Square root function (
sqrt() )
// <math.h>
DrawCircle() for drawing circles
Lesson 12: Video -
Material
Enumerations (
enum )
switch-
case statements
return values from a function
Function overloading
Constant variables (
const )
Read a single key press when a key is held down
Generate random numbers (
rand() ) and seed them (
srand() )
// <stdlib.h> with time (
time() )
// <time.h>
do-
while loops
Modulus operator
// %
Create a Tic-Tac-Toe game using what we've learned
Homework: Improve the AI and have the computer move the cursor
Lesson 13: Video -
Material
Arrays
Memory allocation
Pre-processor directives
// #define
Implicit type conversion
Dividing logic and drawing into separate functions
Updating the framework to improve
PutPixel()
Memory mapped I/O
Updating the Pooface game to include things learned recently
Homework: Change the objective of the Pooface game to collecting yellow circles while avoiding poo. Each yellow circle collected generates more poo until the maximum is reached. The poo should all move at variable speeds and change direction randomly.
Lesson 14: Video
Review of homework from lesson 13
DrawDisc() to create filled in circles
Circle collision
"Mädchen auf der Fensterbank,
putzt die Scheibe blitzeblank.
Alle Leute blieben stehn,
ihr Scheuerbürstel war zu sehn!"
Lesson 15: Video
Structures (
struct )
Returning multiple values
MidPoint() to draw a circle between the face and goal
Global functions
Forward declaration
( Appetizer: "Binky Pointer Fun Video" )
Lesson 16: Video -
Material
Pointers
The stack
Scope of functions
Address of operator
// &
Dereference operator
// *
Mouse control
Lesson 17: Video
Creating console applications
Update the IDE to include "start without debugging"
The
char data type
Initialize an array with numbers, character literals and string literals
Pointer arithmetic
Escape characters
Introduction to Const correctness
Storage capacity of data types
getchar() and
putchar() to read and write numbers to the screen
// <stdio.h>
PutString() to output a string of characters
Homework: Simple - Create a function with the signature
void GetString( char* buf, int maxLen)
Normal - Input a string from the keyboard and reverse it
Hard - Prompt the user to input a number of dice and output the sum of the rolls.
Create
int StrToInt( const char*) and
void IntToStr( int num, char* buf, buflen) to handle the conversion.
Lesson 18: Video
Review of homework from lesson 17
Text input and output with
printf() and
scanf() // <stdio.h>
Format output to a specific decimal place
Lesson 19: Video -
Material
Writing to files with
fprintf() and
fwrite() // <stdio.h>
Reading files with
fscanf() and
fread() // <stdio.h>
Reading and writing text files and raw binary data
The
sizeof() operator
Destructors
// saving the score when the game closes
Moving the file pointer with
fseek() // <stdio.h>
Working with Pooface EX+alpha to implement a save & load function and keep track of the top 10 highscores
Lesson 20: Video -
Material
Create the .h and .cpp files associated with loading and drawing 24-bit bitmaps
Ensure headers are only included once with #pragma once
The
short data type
Namespace collision
Use assertions (
assert() ) to aid debugging
// <assert.h>
Macros
// D3DCOLOR_XRGB()
Create an alternate version of
PutPixel() to accept D3DCOLOR values
Insert padding bytes into the images to display them properly
Change the background color from black to white in D3DGraphics.cpp
Combine dereferencing and member access with ->
// sprite->height is the same as (*sprite).height
Drawing images with and without a color key for transparency
Animating sprites
Format the filename to include numbers with
sprintf() // <stdio.h>
Create several instances of a sprite that start in random locations and on separate frames
"It's WalkinDude, not WalkingDude" -Hermione
Lesson 21: Video -
Material
Rendering fixed width fonts
Adjust the padding bytes to account for when no padding is needed
DrawChar() and
DrawString() to output text from the bitmap
Benchmarking with
timer.GetTimeMilli(),
timer.StartWatch() and
timer.StopWatch() // <timer.h>
Lesson 22: Video
Stack (static) allocation vs Heap (dynamic) allocation
Allocate memory with
malloc() and free it with
free() // <stdlib.h>
Homework: Convert the font functions to use dynamic memory allocation