1 / 30

Chapter 10 Arrays and Tile Mapping

Chapter 10 Arrays and Tile Mapping. Starting Out with Games & Graphics in C++ Tony Gaddis. 10.1 Array Basics. Concept:

nariko
Download Presentation

Chapter 10 Arrays and Tile Mapping

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 10Arrays and Tile Mapping Starting Out with Games & Graphics in C++ Tony Gaddis

  2. 10.1 Array Basics Concept: In the programs you have designed so far, you have used variables to store data in memory. The simplest way to store a value in memory is to store it in a variable. Variables work well in many situations, but they have limitations.

  3. 10.1 Array Basics • Variables can only hold one value at a time • Not well suited for storing and processing sets of data • Must be declared and individually processed • Arrays are specifically designed for storing and processing sets of data • Named storage location in memory, like variables • Can hold a group of values, unlike variables • All values must be of the same data type • Cannot store a mixture of data types • Number inside braces is called the size declarator • Specifies the number of values that the array can hold • An array’s size cannot be changed while the program is running • Named constants make array sizes easier to maintain

  4. 10.1 Array Basics Array Elements and Subscripts Figure 10-1 Array subscripts • The storage locations in arrays are known as elements • Located in consecutive memory locations • Each element in an array is assigned a unique number called a subscript • Used to identify specific elements in an array • First element is assigned the subscript 0 • Second element is assigned the subscript 1 • And so forth

  5. 10.1 Array Basics Assigning Values to Array Elements Figure 10-2 Values assigned to each element You access the individual elements in an array by using their subscripts

  6. 10.1 Array Basics No Array Bounds Checking in C++ • The C++ language does not perform array bounds checking • Array subscript values are not checked by the compiler

  7. 10.1 Array Basics Using a Loop to Step through an Array Step through an entire array, performing the same operation on each element

  8. 10.1 Array Basics Array Initialization Implicit Array Sizing • You can optionally initialize an array with values when you declare it • The series of values separated with commas and enclosed in curly braces is called an initialization list • Values are stored in the array elements in the order they appear in the list

  9. 10.1 Array Basics Passing an Array as an Argument to a Function • Passing an array as an argument typically requires two arguments • The array itself • An integer specifying the number of elements in the array

  10. 10.1 Array Basics Comparing Two Arrays Compare two arrays with a loop that steps through both arrays, comparing their corresponding elements

  11. 10.1 Array Basics Shuffling an Array • To shufflean array means to randomly rearrange its contents • For each element in the array • Randomly select another element • Swap the contents of this element with the randomly selected element

  12. 10.1 Array Basics Swapping Array Elements To successfully swap the contents of two variables, we need a third variable to serve as a temporary storage location

  13. 10.1 Array Basics Partially Filled Arrays • When you process a partially filled array: • Process only the elements that contain valid items • Use an integer variable that holds the number of items in the array • Increment the integer variable each time we add an item to the array

  14. 10.2 Sorting Arrays Concept: A sorting algorithm rearranges the contents of an array so they appear in a specific order. The selection sort is a specific example of a sorting algorithm.

  15. 10.2 Sorting Arrays Figure 10-13 Values in an array • Many programming tasks require that data in an array be sorted in some order • A sorting algorithm is a technique for stepping through an array and rearranging its contents in some order • Ascending order means from lowest to highest • Descending order means from highest to lowest • We will examine the selection sort algorithm • Smallest value is moved to element 0 • Next smallest value is moved to element 1 • Process continues until all of the elements are in proper order

  16. 10.2 Sorting Arrays Figure 10-14 Values in the array after the first swap Figure 10-15 Values in the array after the second swap Figure 10-16 Values in the array after the third swap Figure 10-17 Values in the array after the fourth swap Figure 10-18 Values in the array after the fifth swap

  17. 10.2 Sorting Arrays

  18. 10.3 Two-Dimensional Arrays Concept: A two-dimensional array is like several identical arrays put together. It is useful for storing multiple sets of data.

  19. 10.3 Two-Dimensional Arrays Figure 10-21 A two-dimensional array Two-dimensional arrays are useful for working with multiple sets of data Think of a two-dimensional array as having rows and columns of elements

  20. 10.3 Two-Dimensional Arrays Declaring a Two-Dimensional Array • When processing data, each element has two subscripts: • One for its row • Another for its column Figure 10-23 Subscripts for each element of the values array • To declare a two-dimensional array, two size declarators are required: • The first one is for the number for the rows • The second one is for the number of columns

  21. 10.3 Two-Dimensional Arrays Accessing the Elements in a Two-Dimensional Array Figure 10-24 Output of Program 10-12 Figure 10-25 Number stored in the values array in example output of Program 10-12 To access the elements in a two-dimensional array, you must use both subscripts

  22. 10.3 Two-Dimensional Arrays Initializing a Two-Dimensional Array Figure 10-26 Initialization of the numbers array When initializing a two-dimensional array, it helps visually to enclose each row’s values in a set of braces

  23. 10.3 Two-Dimensional Arrays Passing a Two-Dimensional Array to a Function When a two-dimensional array is passed to a function, the parameter must contain a size declarator for the number of columns

  24. 10.4 Tile Maps Concept: Tiles are small rectangular images that are commonly used to construct the background imagery in a game. A tile map is a two-dimensional array that specifies tiles and their locations on the screen.

  25. 10.4 Tile Maps Figure 10-26 A tile-based image • Tiles are small rectangular images that can be put together to form a larger image • Used in early video games, still used by many game programmers today • Memory efficient • Increase performance

  26. 10.4 Tile Maps Figure 10-30 Tiles • Images are constructed using only a few tiles • Most are duplicates

  27. 10.4 Tile Maps • A tile map is an array that maps the location of each tile on the screen • Each element holds the image number of the tile • Rows and columns of the tile map correspond to rows and columns on the screen.

  28. 10.4 Tile Maps A function is needed to display the tiles on the screen

  29. 10.4 Tile Maps Displaying Layered Sets of Tiles • You can display layered sets of tiles by using two tile maps • One for background • Another for obstacles

  30. Chapter 10Arrays and Tile Mapping QUESTIONS ?

More Related