Thaiaat : คลังอัลบั้มรูปภาพ - Handmade - Anime - การ์ตูน
Thursday, September 09, 2010  
กล่องตะโกน
vashiya
11/02/2010 11:05
ต่อไป...เดี๋ยวจะลองวาด "แว่วเสียงน้องแกะ" ดูบ้าง เหอ...เหอ...เหอ...


Annie
09/02/2010 13:24
ท่านvashiya ติดตามดราม่าแกะเหมือนกันหรอนี่


vashiya
03/12/2009 22:10
อืม.....แก่ไปอีกปีแล้วแฮะเรา = ="


Frix
03/12/2009 01:43
- เห็นตรงกะวันคล้ายวันเกิดทั่นวาที่วิวมิกซ์ แวะมาอวยพรที่เวปด้วยละกัน ขอให้สุขภาพแข็งแรง จิตใจแจ่มใส มีแต่สิ่งพึงปรารถนาเข้ามานะท่าน


Frix
21/09/2009 23:53
เนตบ้านใช้ได้ละน่อ แต่อืดชะมัดยาด ทั่นวาว่างๆก็ปั่นสี่ช่องมาเพิ่มเรื่อยๆได้เลยนะ มีเวลา 2 เดือนก่อนวันงานแต่ชะล่าใจไม่ได้ เวลามันไว เหอะๆ


Frix
19/08/2009 09:19
ได้เลยทั่นวา เพราะตอนนี้ที่มีส่งแน่ๆก็แค่ผมกะนิมเบิ้ลเอง แถมมุขตันสุดๆ ดันดูClannad ซึ้งจนมุขไม่ออกเลย 555


rin
18/08/2009 22:12
แต่ในใจผมจริงๆแล้วตอนนี้คิดว่า Renpy น่าจะยังได้เปรียบมากกว่าในเรื่องของการกระจายในหลายแพลตฟอร์มครับ เพราะทำทีเดียวใช้ได้ทั้ง window ,mac,linux ในขณะที่ Novelty นั้นยังรองรับแค่ window เท่านั้น


vashiya
18/08/2009 11:40
โอ้....เยี่ยมมากรินคุง ผมยังทดสอบไปไม่ถึงตรงนั้นเลยอ่ะ ผมดูแค่องค์ประกอบภายนอกรปร่างโปรแกรม แล้วก็ Syntax ของภาษา แต่ภาษา xml คงต้องเรียกว่า Schema สินะ 5555


rin
17/08/2009 22:17
ยกเว้นว่าเราจะทำฟอนท์ใส่เองเท่านั้นแหละครับ


rin
17/08/2009 22:16
ทรัพยากรเครื่องมหาโหดแล้วแต่เรื่องการแสดงภาพยังไม่ค่อยเสถียรเท่าไหร่และยังไม่ค่อยรองรับภาษาไทยด้วยนี่คือปัญหาใหญ่ครับ


rin
17/08/2009 22:15
Novelty ตัวล่าสุดยังเป็นรุ่น 0.8.2 อยู่นะครับ(ยังนับเป็นรุ่นทดลองอยู่) ซึ่งบางครั้งมันก็ดันออกอาการแผลงๆอย่างไม่แสดงภาพบ้างหรือกินรีซอร์สเครื่องมหาศาลทีเดียวแต่เวอร์ชั่นใหม่นี่รู้สึกจะแก้เรื่องการใช้ท


vashiya
17/08/2009 10:16
Frix คุง งานเคียวอนิเดี๋ยวผมอาจจะส่งไปให้สักหน้าสองหน้านะ (ถ้าไม่ทันก็หน้าเดียว)


vashiya
17/08/2009 09:45
อืม......เอาไงดีล่ะเนี่ยท่าที่ลองจับๆดูแล้วถือว่าดีกว่า Ren'py เลยล่ะ มีใครสนใจซับไทยไหมล่ะเดี๋ยวจะลองแปลมาลงด้วย ใครสนใจยกมือขึ้นนนนนนน


Frix
17/08/2009 08:48
- รอรินกับทั่นวาทำพรีวิว โปรแกรมให้ดูน่อ / ปั่นงานเคียวอนิต่อ


vashiya
16/08/2009 23:19
โอ้......ในที่สุดก็มีtoolสร้างอย่างงี้ออกมาซะที ดีจังจะได้ไม่เหนื่อย เหอ...เหอ...เหอ... เดี๋ยวต้องขอดูหน่อยแล้วว่ามันเป็นยังไง


rin
16/08/2009 21:17
เพิ่งไปเจอ engine แจ่มๆตัวนึงมากครับชื่อ Novelty การทำงานคล้ายดรีมวีฟเวอร์มากๆ แค่จับภาพจับฉากมาวางใส่ก็เรียบร้อยแล้ว ดูได้ที่นี่เลยครับ www.visualnovelty.com


vashiya
30/07/2009 22:36
อืม....ยูเนียนมอลล์ อยู่ห่างจากบ้านผมพอสมควร แต่คิดว่าคงไปได้แหล่ะนะ วันอาทิตย์ด้วย


Frix
29/07/2009 13:55
- ทั่นวาสนใจม่ะ นิมยังไม่ตั้งกระทู้เลย สงสัยเวลากระชั้นไปแหะ


vashiya
28/07/2009 22:36
KyoAni - Only Event - อาทิตย์ที่ 6 กันยายน 2552 ลานกิจกรรม ชั้น F2 หน้า Lunchbox Cafe' @ Union Mall ค่า Circle 150 บาท ค่าเข้างาน ฟรี! เวลางาน 11.00 - 15.00 น.


Frix
28/07/2009 11:06
- ตอนนี้วางแผนลุยงาน KyoAni Event อยู่ งานมีต้นเดือนกันยา เวลากระชั้นสุดๆ สนใจร่วมแจมได้นะ ทุกท่าน เดี๋ยวหมานิมจะตั้งกระทู้ดัก ที่วิวมิกซืกะมัง


ข้อความทั้งหมด

ระบบสมาชิก
ชื่อเรียก

รหัสผ่าน



สมัครสมาชิก ?
คลิกที่นี่ เพื่อลงทะเบียน.

ลืมรหัสผ่าน ?
ขอใหม่ ที่นี่.
ผู้กำลังใช้งาน
บุคคลทั่วไป: 2
ไม่มีสมาชิกขณะนี้

สมาชิกทั้งหมด: 43
ยังไม่ยืนยัน: 0
สมาชิกล่าสุด: anyka
จำนวนผู้เยี่ยมชม




81908 คน
อัลบั้มยอดฮิต
HandMade(60)
Funny(55)
Youtube(32)
Song(26)
Avatar & mascot(20)
yaranaika(17)
Comic(16)
Handmade(Fan Art)(14)
Hatsune Miku(13)
paper model(11)
rozen maiden(9)
K(7)
higurashi no naku koro ni (6)
ahe face(6)
megane(5)
Suzumiya Haruhi no Yuuutsu(5)
Yaoi(4)
Mc donald(4)
THAI FANDUB(3)
KFC(3)
Loli(3)
Rockman(2)
DJMAX(2)
Mix Artist(2)
CrossDress(2)
Lucky☆Channel(1)
Lucky☆Star(1)
Event(1)
GIF(1)
Renpy Programming คำสั่งเบื้องต้นในการเขียน ตอนที่ 7 (ตอนจบ) (operator (นิพจน์และเครื่องหมาย), if, while, animetion)

      กลับมาแล้วคร้าบ......เป็นไงกันมั่งครับ ช่วงนี้แสนสุขสบายเนื่องจากออกจากงานเก่ามารับงานนอกเองแล้ว ก็ถึงกระนั้นก็พยายามหางานใหม่อยู่เหมือนกันตอนนี้ เห็นว่าว่างๆอย่างงี้ก็เห่อะงานก็มีมาเรื่อยๆเหมือนกันแต่สบายใจกว่ามากเลยเพราะมีอิสระกว่างานบริษัทตั้งเยอะ เสียอย่างเดียวสวัสดิการไม่มีนี่แหล่ะยังไงก็ต้องหางานใหม่ให้ได้ ส่วนจะเป็นงานอะไรแบบไหนก็คงต้องมาดูกันอีกทีแล้วล่ะ เอาล่ะหลังจากบ่นเสร็จแล้วเรามาดูเกี่ยวกับเนื้อหาของบทนี้กันดีกว่า สำหรับส่วนนี้นั้นจะเป็นส่วนสุดท้ายของเรื่องคริปเบื้องต้นแล้วนะครับ ซึ่งเมื่อคุณอ่านมาจนเถึงจุดนี้แล้วก็หมายความว่าคุณสามารถที่จะสร้างเกมส์อย่างง่ายเล่นเองได้แล้วครับ (ซึ่งเนื้อหาหลังจากนี้ไปจะเป็นการประยุกต์ในระดับยากแล้วล่ะครับ ยากในระดับที่ผมเองยังงงๆเลยอ่ะ - -”) เนื้อหาในบทนี้ก็ได้แก่

      - operator (นิพจน์และเครื่องหมาย)
      - if
      - while
      - animetion


      operator (นิพจน์และเครื่องหมาย) อืม.....จริงๆแล้วผมต้องขึ้นหัวข้อนี้ก่อนในบทแรกๆแลยล่ะแต่เนื่องจากว่าลืมอ่ะนะ ช่างเห่อะเรามาดูกันเลยครับว่าเนื้อหาในหัวข้อนี้มันเป็นยังไง operator นั้นพูดตรงๆก็คือเครื่อหมายน่ะแหล่ะครับไม่ว่าจะเป็นบวกลบคูณหาร แต่จะมีบางตัวที่จะมีลักษณะการใช้งานแตกต่างออกไปจากปกติหน่อยเท่านั้นเองครับ โดยเครื่องหมายต่างๆกมีดังนี้ครับ

   () --------> วงเล็บ
   + --------> บวก
   - --------> ลบ
   * --------> คูณ
   / --------> หาร
   ** --------> ยกกำลัง
   = --------> เท่ากับ(ใช้ในการกำหนดค่า)
   % --------> MOD เป็นการหารแต่จะเอาเศษไม่เอาคำตอบ
   += , -= , = , /= --------> เป็นการ +,-,*, / โดยกระทำการจากค่าเดิมที่มีอยู่แล้วกับค่าใหม่ เช่น $ B =2 , $ C = 3
      $ B += C --------> $ B จะมีค่าเท่ากับ 5 พูดง่ายๆก็คือคำสั่งนี้เป็นรูปย่อของ $ B = B + C ก็ว่าได้ครับ
   or --------> เป็นนิพจน์ที่ใช้ในประโยคเงื่อนไขครับ จะให้ค่าเป็น true เมื่อมีค่าใดค่าหนึ่งเป็น true
   and --------> เป็นนิพจน์ที่ใช้ในประโยคเงื่อนไขครับ จะให้ค่าเป็น true เมื่อมีทุกค่าเป็น true
   == --------> เท่ากับ(ใช้ในการเปรียบเทียบค่า) เป็นนิพจน์ที่ใช้ในประโยคเงื่อนไขครับ
   <> --------> ไม่เท่ากับ(ใช้ในการเปรียบเทียบค่า) เป็นนิพจน์ที่ใช้ในประโยคเงื่อนไขครับ
   < , > , <= , >= --------> น้อยกว่า , มากกว่า , น้อยกว่าเท่ากับ , มากกว่าเท่ากับตามลำดับ เป็นนิพจน์ที่ใช้ในประโยคเงื่อนไขครับ

สำหรับการเรียงลำดับการทำงานของเครื่องหมายนั้นเราสามารถเรียงลำดับได้ดังนี้
      () ----> ** ----> * ----> / ----> + ----> - ----> = ----> += ----> *= ----> /= ----> -= ----> %=
   หมายเหตุ ให้แน่ใจควรใช้วงเล็บดีกว่าจะได้ไม่มั่ว

      if คำสั่ง if เป็นคำสั่งทางทางเลือกครับ การทำงานเหมือนกับคำสั่ง menu เลยล่ะเพียงแต่คำสั่งmenuจะมีทางเลือกให้เราเลือก แต่คำสั่งifนี้มันจะกระทำเองโดยอัตโนมัติครับ มีหลักการใช้งานดังนี้

      "if" python_expression":"
         Codeบรรทัดที่xxx.......
         ..................................
      ["elif" python_expression":"
         Codeบรรทัดที่xxx.......
         ..................................]
      ["else"":"
         Codeบรรทัดที่xxx.......
         ..................................]


      หมายเหตุ
   -โดยที่ python_expression นั้นหมายถึงประโยคเงื่อนไขครับ
   -หากเราต้องการจะเปรียบเทียบว่ามีค่าเท่ากันหรือไม่ใน python_expression เช่น
      if points = 10: <--------- error แน่ๆครับไม่สามารถเขียนในรูปแบบนี้ได้
      if points == 10: <--------- เราจำเป็นที่จะต้องเขียนในรูปแบบนี้ครับถึงจะรันผ่าน
   -คำสั่ง elif ย่อมาจากคำว่า else if นะคร้าบบบบบบ
   -"elif" python_expression":"นั้นเราสามารถที่จะเรียกขึ้นมากี่ครั้งก็ได้
   -"elif" python_expression":" และ "else"":" จะมีหรือไม่ก็ได้
   -เครื่องหมาย ”:” ต้องอยู่ชิดติดกับ python_expressionหรือ else ด้วยครับไม่งั้น error ลูกเดียว

   ตัวอย่างการใช้งาน
      if points >= 10:
          e "ถ้าค่า points มีค่ามากกว่าหรือเท่ากับ 10 จะแสดงข้อความนี้"
      elif points >= 5:
         e "ถ้าค่า points มีค่ามากกว่าหรือเท่ากับ 5จะแสดงข้อความนี้"
      else:
         e "ถ้าค่า points มีค่าไม่ครงกับเงื่อนไขใดเลยจะแสดงข้อความนี้"


      while อีกหนึ่งคำสั่งพื้นฐานที่จำเป็นอีกคำสั่งหนึ่งครับโดยจะทำการตรวจสอบเงื่อนไขครับ ถ้ายังอยู่ในเงื่อนไขก็จะทำการวนทำในคำสั่งนั้นต่อไปเรื่อยๆจนกว่าจะออกนอกเงื่อนไขครับ มีหลักการใช้งานดังนี้

      "while" python_expression ":"
         Codeบรรทัดที่xxx.......
          ..................................]


      หมายเหตุ
         - python_expression นั้นหมายถึงประโยคเงื่อนไขครับ
         - เครื่องหมาย ”:” ต้องอยู่ชิดติดกับ python_expression ด้วยครับไม่งั้น error ลูกเดียว
         - Code คำสั่งที่อยู่ภายใน while นั้นเราจำเป็นที่จะต้องล่นรรทัดเข้ามาอีก 3 วรรคเพื่อบ่งบอกให้โปรแกรมรู้ว่าเป็นส่วนที่ต้องกระทำในคำสั่ง while

      ตัวอย่างการใช้งาน
      while (B < 3):
         "ค่าของBมีค่าเท่ากับ %(B)d ซึ่งยังน้อยกว่า 3 อยู่"
         $ B+=1
      "ค่าของBมีค่าเท่ากับ %(B)d ซึ่งบรรทัดนี้จะแสดงขึ้นมาค่า B มีค่ามากกว่า 3 ซึ่งก็คือออกจากลูปแล้ว"


      animetion ต่อมาก็จะเป็นฟังก์ชั่นเกี่ยวกับอนิเมชั่นครับจริงๆแล้วมีมากมายหลายตัวเลยล่ะครับเพียงแต่ว่าผมจะยกมาแค่ที่ใช้บ่อยๆเท่านั้นนะครับ โดยที่มีหลักการเรียกใช้งานพื้นๆดังนี้ครับ

      image “ชื่อตัวแปร” = ฟังก์ชั่น animation

      โดยมีฟังก์ชั่นต่างๆดังนี้
      Animation เริ่มต้นด้วยฟังก์ชั่นที่เข้าใจง่ายๆก่อนล่ะครับ ฟังก์ชั่นนี้เป็นฟังก์ชั่นที่ใช้สร้างอนิเมชั่นแบง่ายๆเหมือนกับการสร้างรูปภาพ . gifน่ะแหล่ะครับซึ่งจะวนกลับไปที่รูปแรกใหม่เมื่อแสดงหมดทุกรูปแล้ว โดยที่เรานำรูปมาเรียงต่อกันจากนั้นก็กำหนดระยะเวลาในการแสดงผลของภาพในแต่ละเพรมลงไปก็สามารถใช้งานได้แล้วครับ มีหลักการใช้งานดังนี้

      Animation (image1, time1 , image2, time2, image...,time.....)

   โดยพารามิตอร์แต่ละตัวมีหน้าที่ดังนี้
      image ------> รูปภาพที่เราต้องการ รูปภาพต้องอยู่ภายใน “ ” นะครับ
      time ------> เวลาที่ต้องการให้รูปนั้นแสดงอยู่ มีหน่วยเป็นวินาที

   ตัวอย่างการใช้งาน
      image animation = Animation ("frame_1.png", 0.25,"frame_2.png", 0.25,"frame_3.png", 0.25)

      anim.TransitionAnimation ฟังก์ชั่นนี้เหมือนกับฟังก์ชั่น Animation ทุกประการเพียงแต่ว่าจะมีเรื่องของTransition เข้ามาด้วยครับ (ผมคงจะไม่ขออธิบายเรื่อง Transition อีกรอบนะครับหากอยากรู้เรื่องนี้เพิ่มเติมกรุณาหาอ่านเพิ่มเติมได้ ที่นี่ ครับ) มีหลักการใช้งานดังนี้

      anim.TransitionAnimation (image1, time1, Transition1,........... )

   โดยพารามิตอร์แต่ละตัวมีหน้าที่ดังนี้
      image ------> รูปภาพที่เราต้องการ รูปภาพต้องอยู่ภายใน “ ” นะครับ
      time ------> เวลาที่ต้องการให้รูปนั้นแสดงอยู่ มีหน่วยเป็นวินาที
      Transition ------> รูปแบบในการตัดฉากหรือขึ้นฉากใหม่

   ตัวอย่างการใช้งาน
      image my_animation = anim.TransitionAnimation("frame1.png", 2.0, dissolve,"frame2.png", 2.0, dissolve)

      anim.Blink ฟังก์ชั่นนี้จะเป็นการบังคับให้รูปกระพริบครับ โดยที่เราสามารถกำหนดลักษณะการกระพริบได้ มีหลักการใช้งานดังนี้

      anim.Blink (image, on, off, rise, set, high, low, offset, anim_timebase)

   โดยพารามิตอร์แต่ละตัวมีหน้าที่ดังนี้
      image ------> รูปภาพที่เราต้องการ รูปภาพต้องอยู่ภายใน “ ” นะครับ
      on ------> ระยะเวลาที่ต้องการให้รูปแสดงอยู่ ถ้าไม่กำหนดค่าดีฟอลจะเป็น 0.5 วินาที
      off ------> ระยะเวลาที่ต้องการให้รูปหายไป ถ้าไม่กำหนดค่าดีฟอลจะเป็น 0.5 วินาที
      rise ------> ระยะเวลาที่ต้องการให้รูปเด่นชัดขึ้นมา ถ้าไม่กำหนดค่าดีฟอลจะเป็น 0.5 วินาที
      set ------> ระยะเวลาที่ต้องการให้รูปจางหายไป ถ้าไม่กำหนดค่าดีฟอลจะเป็น 0.5 วินาที
      high ------> ความเข้มสูงสุด ถ้าไม่กำหนดค่าดีฟอลจะเป็น 1.0
      low ------> ความเข้มต่ำสุด ถ้าไม่กำหนดค่าดีฟอลจะเป็น 1.0
      offset ------> กำหนดการกระพริบในตอนเริ่มต้นว่าจะเข้มสุดหรือไม่เข้มหรือเข้มกลางๆโดยเราจะกำหนดเป็นระยะเวลา
      anim_timebase= true/false ------> เป็น true เมื่อต้องการใช้ค่าเวลาดีฟอล(โดยปกติค่านี้เป็น true อยู่แล้ว) เป็น false เมื่อเราต้องการกำหนดค่าเอง

   ตัวอย่างการใช้งาน
      image ctc = anim.Blink("arrow.png"))
      นอกจากนี้เรายังสามารถใช้ร่วมกันกับฟังก์ชั่น Text เพื่อแสดงผลเป็นตัวอักษรกระพริบได้อีกด้วย
      image blinking text = anim.Blink(Text("Blink", color="#ff0", size=72))


      anim.SMAnimation เป็นคำสั่งที่ไว้สำหรับสร้างชุดของ animetion ขึ้นมา เช่น การกระพริบตาของตัวละคร , การขยับปากของตัวละคร รวมไปถึงการขยับของ background เป็นต้น โดยปกติจำเป็นที่จะต้องใช้ร่วมกับฟังก์ชั่น anim.State , anim.Edge ด้วย มีหลักการใช้งานดังนี้

      anim.SMAnimation (initial, *args)

   โดยพารามิตอร์แต่ละตัวมีหน้าที่ดังนี้
      initial ------> ชื่อของเฟรมที่เราต้องการจะเริ่มต้น ต้องอยู่ใน “ ”
      *args ------> ชุดของ animetion ซึ่งต้องประกอบด้วยฟังก์ชั่น anim.State และ anim.Edge ครับ โดยที่ฟังก์ชั่นแต่ละตัวมีหลักการทำงานดังนี้

      anim.State ------> เป็นฟังก์ชั่นที่ใช้กำหนดชื่อเฟรมของรูปภาพที่กำหนดในเฟรมนั้นๆ มีหลักการใช้งานเบื้องต้นดังนี้

      anim.State (name, image)

   โดยพารามิตอร์แต่ละตัวมีหน้าที่ดังนี้
      name ------> ชื่อของเฟรม ต้องอยู่ใน “ ”
      image ------> ภาพที่ต้องการให้โหลดเข้ามา

      anim.Edge ------> เป็นฟังก์ชั่นที่คอยจัดการเกี่ยวกับเฟรมของ animetion ครับ เช่น การเปลี่ยนเฟรมเป็นต้น มีหลักการใช้งานดังนี้

      anim.Edge (old, delay, new, trans)

   โดยพารามิตอร์แต่ละตัวมีหน้าที่ดังนี้
      old ------> ชื่อของเฟรม(จุดของเฟรม)ที่ต้องการย้ายไป
      delay ------> เวลาที่ใช้ในการเปลี่ยนเฟรม
      new ------> ชื่อของเฟรม(จุดของเฟรม)ที่เป็นจุดหมายของการย้าย
      trans ------> กำหนดคำสั่ง transition เพื่อใช้ในการแสดงของรูปภาพ จะกำหนดหรือไม่ก็ได้
   ตัวอย่างการใช้งาน
      image blinking = anim.SMAnimation("a",
         anim.State("a", "eileen_happy.png"),
         anim.Edge("a", 1.0, "b", dissolve),
         anim.State("b", "eileen_vhappy.png"),
         anim.Edge("b", 1.0, "a",dissolve)
      )


      หมายเหตุ ข้อแตกต่างระหว่างฟังก์ชั่น anim.SMAnimation และฟังก์ชั่น Animation แม้จะให้ผลออกมาเหมือนกันก็ตาม นั้นก็คือ ฟังก์ชั่น Animation เหมาะแก่การสร้างอนิเมชั่นแบบง่ายๆเพียงรูปไม่กี่เฟรมเท่านั้นเนื่องจากรูปแบบการเรียกใช้งานนั้นค่อนข้างกินทรัพยากร ต่างจากฟังก์ชั่น anim.SMAnimation ซึ่งถึงจะมีการเรียกใช้งานที่ซับซ้อนกว่าแต่ก็กินทรับยากรน้อยกว่าและยังสามารถที่จะกำหนดเวลาในการเปลี่ยนเฟรมได้อีกด้วย เช่น ภาพการกระพริบตาในฟังก์ชั่น Animation เราอาจจะต้องโหลดรูปเดียวกันซ้ำๆกันลงมาใส่ลงในฟังก์ชั่นนี้เพื่อให้ได้อนิเมชั่นที่สมบูรณ์แต่หากเราใช้งานฟังก์ชั่น anim.SMAnimation เราอาจจะโหลดรูปภาพเพียงไม่กี่ภาพลงมาในฟังก์ชั่นนี้ก็ได้เนื่องจากลดการซ้ำซ้อนของรูปที่เราจะโหลด ซึ่งจะทำให้ลดการกินทรัพยากรของเคริ่องไปอีกทางนึงด้วยครับ

      anim.Filmstrip อีกหนึ่งฟังกชั่นที่ส่งเสริมความมักง่าย (5555) จะกล่าวอย่างง่ายๆเลยนะครับ โดยปกติการสร้างภาพอนิเมชั่นนั้นจะต้องทำการเรียงรูปภาพหลายภาพมาต่อกันเป็นเฟรมๆตามระยะเวลาที่เรากำหนดแต่คำสั่งนี้จะเป็นการใช้รูปภาพเพียงรูปภาพเดียวจากนั้นก็จะทำการแบ่งพื้นที่ในการแสดงภาพออกมาเป็นภาพเล็กๆหลายๆภาพแล้วนำไปประกอบกันเป็นอนิชั่นขึ้นมาครับ(ก็เหมือนกับภาพคาแรคเตอร์ใน RO นั่นแหล่ะ)

       anim.Filmstrip (image, framesize, gridsize, delay, frames=None, loop=True)

   โดยพารามิตอร์แต่ละตัวมีหน้าที่ดังนี้
      image ------> รูปภาพที่ต้องการสร้าง
      framesize ------> ขนาดของรูปที่เราจะตัดออกมาแสดง (กว้าง,สูง)
      gridsize ------> กำหนดตารางที่จะซอยรูปใหญ่ออกเป็นรูปเล็กๆ เช่น ถ้าต้องการแบ่งภาพเล็กๆ 2 ภาพ ก็จะต้องสร้างตารางแบบ 2คอลัม1 แถว (colums, rows )
         หมายเหตุ การกำหนดgridsize ต้อง ให้สัมพันธ์กับ framesize ด้วยนะครับ ถ้าหากคำนวณแล้วพื้นที่มันเกินไปจากพื้นที่ที่เรามีไม่ว่ากว้างกว่าหรือยาวกว่าเนี่ยะ error ลูกเดียวเลยนะครับ
      delay ------> ระยะเวลาของเฟรมต่อ 1 เฟรม มีหน่วยเป็นวินาที
      frames=None ------> จำนวนเฟรมทั้งหมดในอนิเมชั่นนั้น ถ้าเป็น None ค่าดีฟอลจะเป็น colums คูณ rows เฟรม
      loop=True/false ------> กำหนดการวนลูป

   ตัวอย่างการใช้งาน
      image ctc = anim.Filmstrip("sakura.png", (20, 20), (2, 1), .30, xpos=760, ypos=560, xanchor=0, yanchor=0)

      SnowBlossom ต่อมาก็จะขอกล่าวถึงในฟังก์ชั่นสุดท้ายครับ ซึ่งฟังก์ชั่นนี้จะเป็นฟังก์ชั่นที่จะสร้าง animetion ในลักษณะที่เป็นเหมือนหิมะหรือกลีบดอกไม้โปรยลงมาครับ มีหลักการใช้งานดังนี้

      SnowBlossom (image, count=10, border=50, xspeed=(20, 50), yspeed=(100, 200), start=0, fast=true/false , horizontal=true/alse)

   โดยพารามิตอร์แต่ละตัวมีหน้าที่ดังนี้
      image ------> รูปที่ต้องการโปรยลมา
      count=10 ------> จำนวนรูปที่จะโปรยลงมาต่อหนึ่งเฟส(หนึ่งชุดการโปรย)โดยประมาณ(อาจจะน้อยกว่ากำหนดเล็กน้อย)
      border=50 ------> ระยะห่างของในแต่ชุดการโปรย เช่น border=50 หมายความว่า เมื่อโปรยไปแล้ว 1 ชุด(สัมพันธ์กับตัวแปรcount ) จะทิ้งช่วงไปอีก 50 พิกเซล ถึงจะโปรยชุดต่อไปใหม่ เป็นต้น
      xspeed=(20, 50) / 20 ------> ความเร็วในแนวแกน X มีหน่วยเป็นพิกเซลต่อวินาที สามารถกำหนดได้ 2 ลักษณะคื่อเป็นแบบตัวแปรเดียวและ 2 ตัวแปร แบบตัวแปรเดียวก็กำหนดเป็นแค่ความเร็วธรรมดา ส่วนแบบ 2 ตัวแปร จะเป็นการจัดสรรค์วิถีของความเร็วในแนวแกน X พูดง่ายๆก็คือวิถีการวิ่งจะถูกแบ่งออกเป็น 2 แนวเช่น (20, 50) วิถีนึงจะวิ่งด้วยความเร็ว 20 และอีกวิถีนึงจะวิ่งด้วยความเร็ว 50 เป็นต้น จะมีค่าเป็นบวกหรือลบก็ได้แต่ถ้ามีค่าเป็นลบวิถีจะวิ่งกลับข้างกันนะครับ
      yspeed=(100, 200) / 20 ------> ความเร็วในแนวแกน Y มีหน่วยเป็นพิกเซลต่อวินาที สามารถกำหนดได้ 2 ลักษณะคื่อเป็นแบบตัวแปรเดียวและ 2 ตัวแปร แบบตัวแปรเดียวก็กำหนดเป็นแค่ความเร็วธรรมดา ส่วนแบบ 2 ตัวแปร จะเป็นการจัดสรรค์วิถีของความเร็วในแนวแกน Y พูดง่ายๆก็คือวิถีการวิ่งจะถูกแบ่งออกเป็น 2 แนวเช่น (20, 50) วิถีนึงจะวิ่งด้วยความเร็ว 20 และอีกวิถีนึงจะวิ่งด้วยความเร็ว 50 เป็นต้น จะมีค่าเป็นบวกหรือลบก็ได้แต่ถ้ามีค่าเป็นลบวิถีจะวิ่งกลับข้างกันนะครับ
      start=0 ------> จำนวนเวลาที่จะเริ่มโปรยภาพมีหน่วยเป็นวินาที(เวอร์ชั่นเก่าๆไม่มีตัวนี้นะไปลองในเวอร์ชั่นใหม่สุดจะดีกว่า)
      fast = True /False ------> เป็นการกำหนดจุดเกิดของรูป เป็น True จะเกิดแบบ random ณ จุดใดก็ได้ที่ส่วนบนสุดหรือล่างสุดของจอภาพ เป็น False จุดเกิดจตายตัว
      horizontal= True/False ------> เป็น True จะเป็นการกำหนดให้จุดเกิดจะอยู่ที่ซ้ายสุดหรือขวาสุดของจอ เป็น false จะเกิดที่บนสุดหรือล่างสุดของจอ

   ตัวอย่างการใช้งาน
      image snowblossom = SnowBlossom(anim.Filmstrip("sakura.png", (20, 20), (2, 1), .15), fast=True)
      จะเห็นว่าเราสามารถประยุกต์ใช้ฟังก์ชั่นที่เกี่ยวกับอนิเมชั่น (ตามที่ขีดเส้นใต้) ร่วมกับฟังก์ชั่น SnowBlossom ได้อีกด้วย


      หลังจากที่นั่งแปลและทดลองมานานแสนนานในที่สุดก็อธิบายจนหมดสักที หวังว่าจากบทความที่ผมเขียนขึ้นมาจะมีประโยชน์สำหรับบางท่านไม่มากก็น้อยนะครับ สำหรับเรื่องข้อสงสัยต่างๆในบทความที่ผมสอนไปแล้วก็สามารถตั้กระทู้ถามได้นะครับ(สมัครก่อนนะเฟ้ย...) ส่วนเนื้อหาในบทต่อไปนั้นก็จะเป็นในระดับที่ประยุกต์มากขึ้นไปมากกว่านี้ครับซึ่งก็ค่อนข้างยากที่เดียวเลยครับ เอาเป็นว่าหลังจากนี้ไปแล้วเนื้อหาอาจจะต้องรอนานหน่อยนะครับถึงจะออกมาสักที


โดย vashiya เมื่อ February 16 2008 16:30:05
(754) อ่าน  พิมพ์
© 2007 - 2010 thaiaat.com



  Powered by   powered by php-fusion v6.00.109 ฉ 2003-2005
  Theme Elephant v1.00   Design by Nick56