ที่...

18
บทที่ 4 อัลกอริทึมและผังงาน เกมไต่เชือกผจญภัย ประกอบด้วยคลาสทั ้งหมด 8 คลาสแสดงดังในตารางต่อไปนี ตารางที3 รายชื่อคลาสในเกมไต่เชือกผจญภัย ทีคลาส ความหมาย 1 2 3 4 5 6 7 8 Barrier Items Button FallOutPoint FinishPoint Character Lives Time อุปสรรค ไอเทม ปุ ่ม จุดตกจากเชือก จุดผ่านด่าน ตัวละคร ชีวิต เวลา แต่ละคลาสมีรายละเอียดดังต่อไปนี คลาส Barrier เมธอดของคลาส Barrier เมธอดนี ้จะถูกทางานเมื่อผู้เล่นได้เริ่มเล่นเกม โดยมีเมธอดเพียงเมธอดเดียว ชื่อ Update ทาหน้าที่ เคลื่อนที่วัตถุ 1 นาที

Transcript of ที่...

Page 1: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

บทท 4 อลกอรทมและผงงาน

เกมไตเชอกผจญภย ประกอบดวยคลาสทงหมด 8 คลาสแสดงดงในตารางตอไปน

ตารางท 3 รายชอคลาสในเกมไตเชอกผจญภย

ท คลาส

ความหมาย

1 2 3 4 5 6 7 8

Barrier Items Button FallOutPoint FinishPoint Character Lives Time

อปสรรค ไอเทม ปม จดตกจากเชอก จดผานดาน ตวละคร ชวต เวลา

แตละคลาสมรายละเอยดดงตอไปน

คลาส Barrier

เมธอดของคลาส Barrier

เมธอดนจะถกท างานเมอผเลนไดเรมเลนเกม โดยมเมธอดเพยงเมธอดเดยว ชอ

Update ท าหนาท เคลอนทวตถ 1 นาท

Page 2: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

24

คลาส Items เมธอดของคลาส Items

เมธอดนจะถกท างานเมอผเลนไดเรมเลนเกม โดยมเมธอดเพยงเมธอดเดยว ชอ

Update ท าหนาท เคลอนทวตถ 1 นาท

คลาส Button

มทงหมด 4 ปม คอ

1. ปมบงคบซาย

2. ปมบงคบขวา

3. ปมหยดเกมชวคราว

4. ปมยกเลกหยดเกมชวคราว

โดยแตละปมมรายละเอยดดงตอไปน

1. ปมบงคบซาย

มเมธอดเพยงเมธอดเดยว ชอ Update ท าหนาท เปลยนสถานะการเอยงซายของตว

ละครของคลาส Character ใหเปน true

โดยเมธอด Update มอลกอรทมดงตอไปน

อลกอรทม ตรวจสอบวากดปมบงคบซาย - ถาใช ใหตวแปร cleft ของคลาส Character เปน true

Page 3: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

25

ภาพท 27 แสดงผงงานเมธอด Update ของปมบงคบซาย

2. ปมบงคบขวา

มเมธอดเพยงเมธอดเดยว ชอ Update ท าหนาท เปลยนสถานะการเอยงขวาของตว

ละครของคลาส Character ใหเปน true

โดยเมธอด Update มอลกอรทมดงตอไปน

อลกอรทม ตรวจสอบวากดปมบงคบขวา - ถาใช ใหตวแปร cright ของคลาส Character เปน true

Update

CharacterControl1.cleftt=true

guiTexture.HitTest (touch.position)

End

N

Y

Page 4: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

26

ภาพท 28 แสดงผงงานเมธอด Update ของปมบงคบขวา

3. ปมหยดเกมชวคราว

ประกอบดวยแอตทรบวตเพยงแอตทรบวตเดยว คอ show ส าหรบเกบขอมล

สถานะปมหยดเกมชวคราวและมเมธอดเพยงเมธอดเดยว คอ Update ท าหนาท หยดเกมชวคราว

และเปลยนสถานะการแสดงปมยกเลกหยดเกมชวคราว มอลกอรทมดงตอไปน

อลกอรทม 1. ตรวจสอบกดปมหยดเกมชวคราว - ถาใช ให 1) หยดเกมชวคราว 2) ใหสถานะของปมยกเลกหยดเกมชวคราวมคาเปน 1

3) ซอนปมหยดเกมชวคราว

Update

CharacterControl1.cright=true

guiTexture.HitTest (touch.position)

End

N

Y

Page 5: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

27

2. ตรวจสอบสถานะปมหยดเกมชวคราวมคาเปน 1 หรอไม

- ถาใช ให

1) แสดงปมหยดเกมชวคราว

2) เปลยนสถานะปมหยดเกมชวคราวมคาเปน 0

ภาพท 29 แสดงผงงานเมธอด Update ของปมหยดเกมชวคราว

Update

guiTexture.HitTest (touch.position)

End

N

Y

ButtonResume.show=1

gameObject.guiTexture.enabled=false

gameObject.guiTexture.enabled=true

show=1 N

show=0

Time.timeScale = 0f

Y

Page 6: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

28

4. ปมยกเลกหยดเกมชวคราว

ประกอบดวยแอตทรบวต และเมธอดดงตารางตอไปน

มแอตทรบวตเพยงแอตทรบวตเดยว ชอ show ท าหนาทเปนสถานะปม

ยกเลกหยดเกมชวคราว

ตารางท 5 แสดงเมธอดของปมยกเลกหยดเกมชวคราว

เมธอด หนาท Start ซอนปมยกเลกหยดเกมชวคราวโดยการเปลยนคาเปน false Update ตรวจสอบการกดและสถานะปมยกเลกหยดเกมชวคราว

โดยเมธอด Update มอลกอรทมดงตอไปน เมธอด Update อลกอรทม 1. ตรวจสอบสถานะการกดปมยกเลกหยดเกมชวคราว - ถาใช ให 1) ยกเลกการหยดเกมชวคราว 2) เปลยนสถานะของปมหยดเกมชวคราวมคาเปน 1 3) ซอนปมยกเลกหยดเกมชวคราว 2. ตรวจสอบสถานะปมยกเลกหยดเกมชวคราวมคาเปน 1 หรอไม - ถาใช ให 1) แสดงปมยกเลกหยดเกมชวคราว 2) เปลยนสถานะปมยกเลกหยดเกมชวคราวมคาเปน 0

Page 7: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

29

ภาพท 30 แสดงผงงานเมธอด Update ของปมยกเลกหยดเกมชวคราว

Update

Time.timeScale = 1f

guiTexture.HitTest (touch.position)

End

N

Y

ButtonPause.show=1

gameObject.guiTexture.enabled=false

gameObject.guiTexture.enabled=true

Show=1

Y

show=0

N

Page 8: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

30

คลาส FallOutPoint เมธอดของคลาส FallOutPoint เมธอดนจะถกท างานเมอตวละครหลนจากเชอก โดยมเมธอดเพยงเมธอดเดยว ชอ

OnCollisionEnter ท าหนาท ลดคาจ านวนชวตและเปลยน Scene

โดยเมธอด OnCollisionEnter มอลกอรทมดงตอไปน อลกอรทม

1. ลดพลงชวตลง 1

2. โหลดหนาจอเรมเลนเกมใหม

ภาพท 31 แสดงผงงานของเมธอด OnCollisionEnter คลาส FallOutPoint

End

OnCollisionEnter

HealthControl.LIVES =LIVES - 1

Application.LoadLevel(SceneRetry)

Page 9: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

31

คลาส FinishPoint

เมธอดของคลาส FinnishPoint เมธอดนจะถกท างานเมอผเลนบงคบตวละครไตเชอกไปจนถงปลายทาง โดยม

เมธอดเพยงเมธอดเดยว ชอ OnCollisionEnter ท าหนาท เปลยน Scene ดานถดไป พรอมทง

ก าหนดใหความเรวในการไตเชอกเปนปกตและพลงชวตมคาเปน 3

โดยเมธอด OnCollisionEnter มอลกอรทมดงตอไปน ตวแปร LevelToLoad แทน ชอ Scene ของดานถดไป อลกอรทม 1. จ านวนชวต =3 2. ใหความเรวในการไตเชอก = 5 3. โหลด Scene ดานถดไป

ภาพท 32 แสดงผงงานของเมธอด OnCollisionEnter คลาส FinishPoint

End

OnTriggerEnter

HealthControls.LIVES=3

CharacterControl1.speed=5

Application.LoadLevel(levelToLoad)

Page 10: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

32

คลาส Character คลาส Character ประกอบดวยแอตทรบวต และเมธอดดงตารางตอไปน ตารางท 6 แสดงแอตทรบวตของคลาส Charactor แอตทรบวต ชนด ความหมาย speed int ความเรวในการเคลอนท cleft boolean สถานะการเอยงซาย cright boolean สถานะการเอยงขวา mySound AudioClip[] เสยง starss ParticleEmitter เอฟเฟค

ตารางท 7 แสดงเมธอดของคลาส Character

เมธอด หนาท Update เคลอนทตวละคร OntriggerEnter ตรวจสอบการชน

โดยเมธอด Update และ OntriggerEnter มอลกอรทมดงตอไปน

Page 11: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

33

เมธอด : Update อลกอรทม

1. ตวละครเคลอนทไปขางหนา 2. ตรวจสอบตวละครวามสถานะเปนการเอยงซายหรอไม - ถาใช ให 1) ตวละครเอยงซาย 2) เปลยนสถานะการเอยงซายเปน False - ถาไมใช ให

ตรวจสอบตวละครวามสถานะเปนการเอยงขวาหรอไม - ถาใช ให 1) ใหตวละครเอยงขวา 2) เปลยนสถานะการเอยงขวาเปน False

Page 12: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

34

ภาพท 33 แสดงผงงานของเมธอด Update ของคลาส Character

Update

transform.Translate (Vector3(0,0,-1.3) * Time.deltaTime*speed)

cleft=true

cright=true

transform.Rotate (Vector3(0,0,-1) *

Time.deltaTime*100)

cleft=false

transform.Rotate (Vector3(0,0,1) *

Time.deltaTime*100)

cright=false

End

N

N

Y

Y

Page 13: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

35

เมธอด : OntriggerEnter อลกอรทม 1. ท าลายวตถ 2. ตรวจสอบชอประเภท ถาเปน

- “B1” ให a. ตวละครถอยหลงนอย b. เลนเสยงของประเภท B1 c. เลนเอฟเฟค -“ B2” ให a. ตวละครถอยหลงปานกลาง b. เลนเสยงของประเภท B2 c. เลนเอฟเฟค -“ B3” ให a. ตวละครถอยไปหลงมาก b. เลนเสยงของประเภท B3 c. เลนเอฟเฟค -“B4” ให - ถาจ านวนชวตนอยกวา 3 ให จ านวนชวต+1 1) เลนเสยงของประเภท B4 2) เลนเอฟเฟค -“B5” ให a. ความเรวในการทรงตวเพมขน b. เลนเสยงของประเภท B5 c. เลนเอฟเฟค

Page 14: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

36

ภาพท 34 แสดงผงงานของเมธอด OntriggerEnter ของคลาส Character

OntriggerEnter

objetInfo.gameObject.tag = ?

Destroy(objetInfo.gameObject)

End

AudioSource.PlayClipAtPoint(mySound[0], transform.position)

transform.Translate (Vector3(0,0,50) * Time.deltaTime*10

)

Instantiate(starsss, transform.position, transform.rotation)

AudioSource.PlayClipAtPoint(mySound[1], transform.position)

transform.Translate (Vector3(0,0,100) * Time.deltaTime*10

)

Instantiate(starsss, transform.position, transform.rotation)

AudioSource.PlayClipAtPoint(mySound[2], transform.position)

transform.Translate (Vector3(0,0,150) * Time.deltaTime*10

)

Instantiate(starsss, transform.position, transform.rotation)

AudioSource.PlayClipAtPoint(mySound[4], transform.position)

CharacterControl1 .speed=15

Instantiate(starsss, transform.position, transform.rotation)

LIVES < 3

HealthControl.LIVES =LIVES+1

AudioSource.PlayClipAtPoint(mySound[3], transform.position)

Instantiate(starsss, transform.position, transform.rotation)

N

“B1”

“B2”

“B3”

“B4”

“B5”

Page 15: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

37

คลาส Lives คลาส Lives ประกอบดวยแอตทรบวต และเมธอดดงตอไปน ตารางท 8 แสดงแอตทรบวตของคลาส Lives แอตทรบวต ชนด ความหมาย health1 Texture2D ภาพจ านวนชวต 1 จ านวน health2 Texture2D ภาพจ านวนชวต 2 จ านวน health3 Texture2D ภาพจ านวนชวต 3 จ านวน LIVES Int จ านวนชวตของผเลน

เมธอดของคลาส Lives

มเมธอดเพยงเมธอดเดยว ชอ Update ท าหนาท แสดงจ านวนชวตของผเลน

โดยเมธอด Update มอลกอรทมดงตอไปน

เมธอด : Update อลกอรทม ตรวจสอบจ านวนชวต ถามคาเปน - 3 ใหแสดงรป 3 จ านวนชวต - 2 ใหแสดงรป 2 จ านวนชวต - 1 ใหแสดงรป 1 จ านวนชวต - 0 ใหโหลด Scene Game Over

Page 16: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

38

ภาพท 35 ผงงานของเมธอด Update ของคลาส Lives

End

Update

LIVES=?

health3

health2

health1

3

2

1

0

Application.LoadLevel

(SceneGameOver)

Page 17: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

39

คลาส Time คลาส Time ประกอบดวยแอตทรบวต และเมธอดดงตอไปน ตารางท 9 แสดงแอตทรบวตของคลาส Time

แอตทรบวต ชนด ความหมาย time float เวลาทม second int เวลาทเหลอ

ตารางท 10 แสดงเมธอดของคลาส Time

เมธอด หนาท Start ก าหนดเวลาเรมเลนเปน 30 วนาท Update นบเวลาถอยหลง

โดยเมธอด Update มอลกอรทมดงตอไปน

เมธอด : Update อลกอรทม 1. นบเวลาถอยหลง 2. ค านวณ - Second = เวลาทก าหนด % 60 3. ถาเวลานอยกวาหรอเทากบ 0 - จ านวนชวตลดลง 1 - ใหโหลดหนาจอเรมเลนเกมใหม - ถาไมใช ใหแสดง Second

Page 18: ที่ ความหมายroongrote.crru.ac.th/CP4906/ตัวอย่างคู่มือ... · ภาพที่ 29 แสดงผังงานเมธอด

40

ภาพท 36 แสดงผงงานของเมธอด Update ของคลาส Time

End

Update

time<=0

time=time - Time.deltaTime

second=time mod 60

second

Y

N

Application.LoadLevel(ScencRetry)

HealthControl.LIVES=LIVES - 1