Ai 2009 homework 2
Download
1 / 21

AI 2009 Homework#2 - PowerPoint PPT Presentation


  • 52 Views
  • Uploaded on

พื้นหญ้า. พื้นทราย. +10. +7. +14. +14. +4. +4. +10. +10. +7. +7. +14. +4. +14. +4. +10. +7. AI 2009 Homework#2. งานกลุ่ม แก้ไข map ใหม่ ให้สวยงาม เพิ่มพื้นทราย(มีรูปให้แล้ว) แก้ไขโปรแกรม เส้นทางการเดิน ที่ใช้ A* ดังนี้ กำหนดส่ง วันที่ 20 มกราคม 2553

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'AI 2009 Homework#2' - aolani


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Ai 2009 homework 2

พื้นหญ้า

พื้นทราย

+10

+7

+14

+14

+4

+4

+10

+10

+7

+7

+14

+4

+14

+4

+10

+7

AI 2009 Homework#2

  • งานกลุ่ม

  • แก้ไข map ใหม่ ให้สวยงาม เพิ่มพื้นทราย(มีรูปให้แล้ว)

  • แก้ไขโปรแกรม เส้นทางการเดิน ที่ใช้ A* ดังนี้

  • กำหนดส่ง วันที่ 20 มกราคม 2553

  • รูปเล่มรายงาน อธิบาย

    • หลักการทำงานของ A*

    • ส่วนของโปรแกรมที่ได้ปรับปรุงแก้ไข


Ai 2009 homework 2
การเรียกโปรแกรม

1.ลง C#

2.ลง XNA

3. unrar TileMap7

4. double click Tilemap.sln


Ai 2009 homework 2
เกี่ยวกับไฟล์

  • Game1 โปรแกรมหลัก

  • Mymap ส่วนจัดการ map และ A*

  • Myview ส่วนจัดการ view (แสดงผลส่วนย่อยๆ ของ map)

  • Mypath ส่วนเก็บข้อมูลเส้นทาง path ที่ตัวละครเดิน

  • Myobject ส่วนจัดการตัวละคร ตำแหน่งของตัวละคร

  • Mysprite ส่วนจัดการวาดรูปตัวละคร การเคลื่อนไหว

  • Myutils ฟังก์ชั่นย่อยๆ ต่างๆ


Mymap cs
MyMap.cs

ตัวละครเดินได้หรือไม่ ขึ้นอยู่กับค่า mapenum

// ค่าสถานะของ map

public enum mapenum

{

map_none = 0,

map_walk = 1,

map_obstracle = 2

};

ภาพในฉากแผนที่ ขึ้นกับค่า mapenumimage

public enum mapenumimage

{

empty=0, block, pira, chest, doorclose, dooropen, //5

grass, grassshadow, rocks, sandgrass1, sandgrass2, //10

sandgrass3, sandgrass4, sandgrass, sandgrass6, sandgrass7, //15

sandgrass8, sandgrass9, sand, wall1, waterwall, //20

watergrass, water, waterref2, waterref3, waterref //25

};


Mymap cs 2
MyMap.cs.2

แต่ล่ะตำแหน่งของ map จะเก็บค่าดังนี้

public struct mapelement

{

public mapenum maptype; // ประเภทของ map

public mapenumimage mapimage; // รูปของ map

public float g; // ตัวแปร A*

public float h; // ตัวแปร A*

public float f; // ตัวแปร A*

public int parentX; // ตัวแปร A*

public int parentY; // ตัวแปร A*

public bool isopenlist; // ตัวแปร A*

public bool iscloselist; // ตัวแปร A*

public int count; // ตัวแปร A*

}

public mapelement[,] mapdata;  array 2D ของ map

public Texture2D[] mappic;  array ของ รูป

public mypath pathdata;  path ที่สร้างโดย A*


Ai 2009 homework 2

Clearmap() ล้างข้อมูล

Createmap() สร้างข้อมูลแผนที่

drawmap(Vector2 startpos) วาดแผนที่

clearAstarParams() ล้างข้อมูล A*

// A* fn g : g fn มีค่าเพิ่มขึ้นจากการเคลื่อนที่

public float fn_g(int px, int py, int fromX, int fromY)

// A* fn h : heuristic fn มีค่าลดลงเมื่อเข้าใกล้ target

public float fn_h(int px, int py, int targetX, int target

AstarAB(Vector2 a)คำนวณ A จาก ตำแหน่ง a ไปยัง targetX, targetY คือค่าเป็น path


C xna 2d map scrolling and others related useful functions

C# XNA : 2D Map Scrollingand others related useful functions

RTS + RPG

Dr.Yodthong Rodkaew


2d map in xna
2D Map in XNA

  • Map as 2D array

  • 1 block of map is struct

64,64

800,600

If map area is larger than screen area ?


2d map in xna1
2D Map in XNA

If map area is larger than screen area ?

64,64

SCREEN AREA

800,600

MAP AREA


2d map scrolling
2D Map Scrolling

MAP AREA

Map[0,0]

Screen(0,0)

Map[w,h]

SCREEN AREA

Viewport

Screen(800,600)


2d map scrolling1

Screen(0,0)

2D Map Scrolling

Map[20,20]

Screen(800,600)


2d map scrolling2

Screen(0,0)

2D Map Scrolling

Map[10,20]

Screen(800,600)


2d map scrolling3

Screen(0,0)

2D Map Scrolling

Map[10,20]

Screen(800,600)


2d map to block

Screen(0,0)

2D Map to Block

Map[10,20]

Mouse Pointer =

Map[x,y] ??

Mouse pointer at

(400,250)

Screen(800,600)


Ai 2009 homework 2
การใช้ view

  • View สำหรับควบคุม การเลื่อนหน้าจอ


Ai 2009 homework 2

Map RTS, select & move

view

map

View.position

Mouse.position

View.width

View.height

[Need]

-View center at mapblock(x,y)

-View moving: up/down/left/right

-map mouse to view position, to real mapblock

-is_position_in_view(x,y)

Map.width

Map.height


Ai 2009 homework 2

view

ต้องการหา viewxyทราบ mapxy view width height

View (viewx,viewy)

View.position

map

(mapx,mapy)

Center of view

View.width

View.height

View.center_at_mapblock(int mapx, int mapy)

viewx = ________________?

viewy = ________________?


Ai 2009 homework 2

view

ต้องการหา mapxyทราบ mousexy view width height

Screen(0,0)

View (viewx,viewy)

View.position

map

(mapx,mapy)

View.width

View.height

Mouse

Screen

(800,600)

View.mouse_to_viewblock(int mousex, int mousey)

mapx = ________________?

mapy = ________________?


Ai 2009 homework 2

view

ต้องการหา mapxyอยู่ใน view หรือไม่ทราบ mapxy,viewxy, view width height

map

(mapx,mapy)

View (viewx,viewy)

View.position

map

(mapx,mapy)

View.width

View.height

View.is_position_in_view(int mapx, int mapy)

In_view = ________________________?


Ai 2009 homework 2

view

map

View.position

Move right

View.width

View.height

Move down

Task.I: arrow key  move view

If ( ______ ) { _______________ }

Task.II: mouse near border  move view

If ( ______ ) { _______________ }

Map.width

Map.height


Ai 2009 homework 2

view

View.position

Step3&4

step1

step2

View.width

View.height

Click & Move

Step1: find what hero is clicked [source+hero]

Step2: find what area is clicked [target]

Step3: get path from A*

Step4: make hero move follow a path