2D SIDE SCROLLING WITH XNA - LECTURE 15: 2D SPRITE GRAPHICS

38 0 0
2D SIDE SCROLLING WITH XNA - LECTURE 15: 2D SPRITE GRAPHICS

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Báo cáo khoa học, luận văn tiến sĩ, luận văn thạc sĩ, nghiên cứu - Công nghệ thông tin gamedesigninitiative at cornell university the 2D Sprite Graphics Lecture 15 gamedesigninitiative at cornell university the Graphics Lectures — Drawing Images — SpriteBatch interface — Coordinates and Transforms — Drawing Perspective — Camera — Projections — Drawing Primitives — Color and Textures — Polygons 2D Sprite Graphics bare minimum to draw graphics side-scroller vs. top down necessary for lighting shadows 2 gamedesigninitiative at cornell university the Take Away for Today — Coordinate Spaces and drawing — What is screen space? Object space? — How do we use the two to draw objects? — Do we need any other spaces as well? — Drawing Transforms — What is a drawing transform? — Describe the classic types of transforms. — List how to use transforms in a game. 2D Sprite Graphics3 gamedesigninitiative at cornell university the The SpriteBatch Interface — In this class we restrict you to 2D graphics — 3D graphics are much more complicated — Covered in much more detail in other classes — Art 1701: Artist tools for 3D Models — CS 4620: Programming with 3D models — In XNA, use the interface SpriteBatch — Sprite: Pre-rendered 2D (or even 3D) image — All you do is composite the sprites together 2D Sprite Graphics4 gamedesigninitiative at cornell university the — Use coordinate systems — Each pixel has a coordinate — Draw something at a pixel by — Specifying what to draw — Specifying where to draw — Do we draw each pixel? — Use a drawing API — Given an image; does work — This is what XNA provides 2D Sprite Graphics Drawing in 2 Dimensions y x (2,4) (-1,-1) 5 gamedesigninitiative at cornell university the Sprite Coordinate Systems — Screen coordinates: where to paint the image — Think screen pixels as a coordinate system — Very important for object transformations — Example: scale, rotate, translate — In 2D, origin is typically top left of screen — Object coordinate: location of pixels in object — Think of sprite as an image file (it often is) — Coordinates are location of pixels in this file — Unchanged when object moves about screen 2D Sprite Graphics6 gamedesigninitiative at cornell university the Sprite Coordinate Systems +y (0,0) +x Object: (0,0) Screen: (300,200) 2D Sprite Graphics7 gamedesigninitiative at cornell university the Drawing Sprites — Basic instructions: — Set origin for the image in object coordinates — Give the SpriteBatch a point to draw at — Screen places origin of image at that point — What about the other pixels? — Depends on transformations (rotated? scaled?) — But these (almost) never affect the origin — Sometimes we can reset the object origin 2D Sprite Graphics8 gamedesigninitiative at cornell university the Sprite Coordinate Systems +y (0,0) +x Object: (0,0) Screen: (300,200) 2D Sprite Graphics9 gamedesigninitiative at cornell university the Sprite Coordinate Systems 2D Sprite Graphics10 gamedesigninitiative at cornell university the Sprite Coordinate Systems +y (0,0) +x Object: (0,50) Screen: (300,200) 2D Sprite Graphics11 gamedesigninitiative at cornell university the Drawing with SpriteBatch Draw(GameTime time) { … spriteBatch.Begin(); spriteBatch.Draw(image0,origin0,color0); spriteBatch.Draw(image1,origin1,color1); … spriteBatch.End(); … } 2D Sprite Graphics screen coordinates 12 gamedesigninitiative at cornell university the 2D Transforms — A function T : R2→R2 — “Moves” one set of points to another set of points — Transforms one “coordinate system” to another — The new coordinate system is the distortion — Idea: Draw on paper and then “distort” it — Examples: Stretching, rotating, reflecting — Determines placement of “other” pixels — Also allows us to get multiple images for free 2D Sprite Graphics13 gamedesigninitiative at cornell university the The “Drawing Transform” — T : object coords → screen coords — Assume pixel (a,b) in art file is blue — Then screen pixel T(a,b) is blue — We call T the object map — By default, object space = screen space — Color of image at (a,b) = color of screen at (a,b) — By drawing an image, you are transforming it — S an image; transformed image is T(S) 2D Sprite Graphics14 gamedesigninitiative at cornell university the Example: Translation — Simplest transformation: T(v) = v + u — Shifts object in direction u — Distance shifted is magnitude of u — Used to place objects on screen — By default, object origin is screen origin — T(v) = v + u places object origin at u 2D Sprite Graphics S T(S) 15 gamedesigninitiative at cornell university the Composing Transformations — Example: T : R2→R2, S : R2→R2 — Assume pixel (a,b) in art file is blue — Transform T makes pixel T(a,b) blue — Transform ST makes pixel S(T(a,b)) blue — Strategy: use transforms as building blocks — Think about what you want to do visually — Break it into a sequence of transforms — Compose the transforms together 2D Sprite Graphics16 gamedesigninitiative at cornell university the Application: Scrolling 2D Sprite Graphics Screen World World origin Screen origin 17 gamedesigninitiative at cornell university the Application: Scrolling 2D Sprite Graphics Screen World World origin Screen origin Object origin 18 gamedesigninitiative at cornell university the Scrolling: Two Translations — Place object in the World at point p = (x,y) — Basic drawing transform is T(v) = v+p — Suppose Screen origin is at q = (x’,y’) — Then object is on the Screen at point p-q — S(v) = v-q transforms World coords to Screen — ST(v) transforms the Object to the Screen — This separation makes scrolling easy — To move the object, change T but leave S same — To scroll the screen, change S but leave T same 2D Sprite Graphics19 gamedesigninitiative at cornell university the Scrolling: Practical Concerns — Many objects will exists outside screen — Can draw if want; graphics ca...

the gamedesigninitiative at cornell university Lecture 15 2D Sprite Graphics Graphics Lectures —  Drawing Images bare minimum to draw graphics —  SpriteBatch interface —  Coordinates and Transforms side-scroller vs top down —  Drawing Perspective necessary for —  Camera lighting & shadows —  Projections the —  Drawing Primitives gamedesigninitiative —  Color and Textures —  Polygons at cornell university 2 2D Sprite Graphics Take Away for Today — Coordinate Spaces and drawing —  What is screen space? Object space? —  How do we use the two to draw objects? —  Do we need any other spaces as well? — Drawing Transforms —  What is a drawing transform? —  Describe the classic types of transforms —  List how to use transforms in a game the 3 2D Sprite Graphics gamedesigninitiative at cornell university The SpriteBatch Interface — In this class we restrict you to 2D graphics —  3D graphics are much more complicated —  Covered in much more detail in other classes — Art 1701: Artist tools for 3D Models — CS 4620: Programming with 3D models — In XNA, use the interface SpriteBatch —  Sprite: Pre-rendered 2D (or even 3D) image —  All you do is composite the sprites together the 4 2D Sprite Graphics gamedesigninitiative at cornell university Drawing in 2 Dimensions —  Use coordinate systems y (2,4) —  Each pixel has a coordinate —  Draw something at a pixel by x (-1,-1) —  Specifying what to draw —  Specifying where to draw —  Do we draw each pixel? —  Use a drawing API —  Given an image; does work —  This is what XNA provides the 5 2D Sprite Graphics gamedesigninitiative at cornell university Sprite Coordinate Systems —  Screen coordinates: where to paint the image —  Think screen pixels as a coordinate system —  Very important for object transformations —  Example: scale, rotate, translate —  In 2D, origin is typically top left of screen —  Object coordinate: location of pixels in object —  Think of sprite as an image file (it often is) —  Coordinates are location of pixels in this file —  Unchanged when object moves about screen the 6 2D Sprite Graphics gamedesigninitiative at cornell university Sprite Coordinate Systems (0,0) +x Object: (0,0) Screen: (300,200) +y 2D Sprite Graphics the 7 gamedesigninitiative at cornell university Drawing Sprites — Basic instructions: —  Set origin for the image in object coordinates —  Give the SpriteBatch a point to draw at —  Screen places origin of image at that point — What about the other pixels? —  Depends on transformations (rotated? scaled?) —  But these (almost) never affect the origin — Sometimes we can reset the object origin the 8 2D Sprite Graphics gamedesigninitiative at cornell university Sprite Coordinate Systems (0,0) +x Object: (0,0) Screen: (300,200) +y 2D Sprite Graphics the 9 gamedesigninitiative at cornell university Sprite Coordinate Systems the 10 2D Sprite Graphics gamedesigninitiative at cornell university

Ngày đăng: 11/03/2024, 20:37

Tài liệu cùng người dùng

Tài liệu liên quan