เนื้อหาในส่วนนี้จะเป็นวีดีโอสอนการเขียนเกมภาพระบายสีโดยใช้โปรแกรม Adobe Flash และ Action Script 3 จัดทำในลักษณะของวีดีโอ จะได้เรียนรู้วีธีการสร้างและวิธีการเขียน ไม่เก่งการเขียนโปรแกรมก็เรียนรู้ได้ ไม่เคยเขียน Action Script ก็ทำตามได้ สรุป ใครๆ ก็สามารถทำได้ถ้าได้ดูและทำตาม
วีดีโอสอนการเขียนเกมภาพวาดระบายสี
** ในวีดีโอ มีส่วนที่ต้องเพิ่มเติมแก้ไข เนื่องจากไม่ได้บอกไว้ ตรงเส้นกรอบ-การตั้งชื่อ ให้กำหนดตามภาพ
ด้านล่างนี้คือโค้ดคำสั่ง Action Script 3.0 ที่ใช้ในโปรแกรมที่นำเสนอข้างต้น
โดยการเขียนไว้ภายใต้เลเยอร์ action
var np:Number = 17;
var nc:Number = 10;
var color:Number = 0xffffff;
var cArray:Array = new Array(0xff0000,0x00ff00,0x0000ff,0xffff00,0x00ffff,
0xff00ff,0x66ff66,0x666666,0x000000,0xffffff);
var colorchange:ColorTransform = new ColorTransform();
GameStart();
function GameStart() {
btnNew.addEventListener(MouseEvent.CLICK, mcNew);
for (var ip:uint = 1; ip <= np; ip++) {
colorchange.color = 0xffffff;
//trace(this["p"+ip].name);
this["p"+ip].transform.colorTransform = colorchange;
this["p"+ip].addEventListener(MouseEvent.CLICK, mcPaint);
}
for (var ic:uint = 1; ic <= nc; ic++) {
this["c"+ic].addEventListener(MouseEvent.CLICK,mcColor);
colorchange.color = cArray[ic - 1];
this["c"+ic].transform.colorTransform = colorchange;
}
colorchange.color = color;
sc.transform.colorTransform = colorchange;
}
function mcNew(e:MouseEvent): void {
for (var ip:uint = 1; ip <= np; ip++) {
colorchange.color = 0xffffff;
this["p"+ip].transform.colorTransform = colorchange;
}
}
function mcColor(e:MouseEvent): void {
var objName:String = e.target.name;
color = cArray[uint(objName.substr(1,(objName.length)-1))-1];
colorchange.color = color;
sc.transform.colorTransform = colorchange;
}
function mcPaint(e:MouseEvent):void {
colorchange.color = color;
this[e.target.name].transform.colorTransform = colorchange;
}
เขียนเกมไม่ยากใช่ไหม
47 ความคิดเห็น:
คือว่าลองทำแล้วมัน error ค่ะ แฮๆ
TypeError: Error #1010: A term is undefined and has no properties.
at _fla::MainTimeline/GameStart()
at _fla::MainTimeline/frame1()
ขึ้นมาแบบนี้อะค่ะ คือเพิ่งเคยทำขอคำแนะนำหน่อยนะค่ะ ขอบคุณค่ะ ^ ^
เกิดจากเราไม่ได้ตั้งชื่อตรง instant name บางตัว ไล่ดูดีๆครับ
แฮๆ จริงๆด้วย ขอบพระคุณมากนะค่ะ ทำได้แล้วคร้าาา
http://mobiforge.com/designing/story/understanding-user-interface-android-part-1-layouts
เฮียเกษมครับ คือผมจะรบกวนให้พี่ช่วยดูอะไรนิดหน่อยน่ะครับ
คือผมลองทำตามที่เฮียสอนในคลิ๊ปแล้ว แต่ผมไม่ทราบว่าผมผิดตรงส่วนไหนหรือเปล่า
ทำไมการแสดงผลมันถึงไม่ขึ้นตามที่ตั้งไว้น่ะครับ
http://img814.imageshack.us/img814/4162/51406025.jpg
ไม่รู็ว่าผิดโครดตรงไหนเเต่มันทำไม่ได้อ่ะก็ทำตามทุกย่างเเล้วนะ
ดู Error ที่ Flash ว่ามีข้อความอย่างไร ถึงจะตอบถูกว่าผิดที่ไหน
ถ้าให้เดาตอนนี้ ก็บอกได้ว่า กำหนด instance name ของออปเจกต์ไม่ถูกหรือไม่ได้กำหนด
ทำไมรันออกมาแล้ว ขอบเส้นของรูปที่วาดไม่ขึ้นอ่ะครับ แต่สีใช้ได้ครับ ^^
เมื่อเราวาดรูปเส้นกับสีภายใน เมื่อเรานำมาสร้าง symbol ใน วีดีโอ จะเลือกเฉพาะสีด้านใน เท่านั้นในการนำมาสร้างเป็น symbol แล้วเส้นส่วนหนึ่งจะถูกสีทับ ดังนั้น เราต้องกำหนด ขนาดของเส้นให้มากกว่า 1 point จากตัวอย่างในวีดีโอ กำหนดไว้ 3 point เพราะจะโดนสีภายในทับไปส่วนหนึ่ง
วิธีแก้ เพิ่มขนาดของเส้นในการวาดภาพให้มากขึ้น
ขอ Adobe Flash Cs4 หน่อยครับ
ขอบคุณครับ
ให้ไม่ได้หรอก จะเป็นการละเมิดลิขสิทธิ์
พี่ครับพอดีทำงานรูปเดียวแล้วทำได้สำเร็จ แต่พอผมจะทำงานหลายๆรูปในชิ้นเดียวกับ error ครับผมแบบว่า ผมจะทำ A-Z ทำตัว A ได้ตามปกติ แต่พอทำตัว B แล้วลองตรวจสอบดูกับ error ครับผม ผมใน Scene ของใครของมันครับ ตอนยังไม่ได้ใส่ โค้สก็ลิ้งค์ไก้ปกติ แต่พอใส่ โค้สให้ตัว B กับ error หมดเลย หรือผมต้องเปลี่ยน จากตัว p1 เป็นตัวอื่นหรือเปล่าครับ ขอบคุณมากเลยครับ
ให้ลองสร้าง Symbol ซ้อน Symbol
เพื่อเก็บรูปแต่ละรูปไว้ใน Symbol
เช่นรูปที่ 1 สร้าง symbol แล้วใส่ symbol รูปไว้ในนั้น แล้วตั้งชื่อ p1...pn
ส่วนรูปที่ 2 ก็สร้าง symbol เช่นกัน แล้วสร้าง symbol รูปใส่ไว้ แล้วตั้งชื่อเป็น p1....pn เหมืนเดิมได้
แต่เวลาเขียนโปรแกรมต้องต้องมีการอ้าง symbol หลักก่อน p1
ในวีดีโอ อื่นของผม จะมีวิธีการอ้าง sysbol ซ้อนกัน symbol.p1 .... ศึกษาแล้วนำมาประยุกต์ใช้ดู
หรือใช้วิธีแบบที่คุณคิดไว้ก็ได้ คือสร้าง p1...pn ไว้สำหรับรูปที่ 1 , a1...an รูปที่ 2 ก็ได้
บางทีคำสั่งไม่ผิด แต่ผิดที่การตั้งชื่อ symbol ไม่ตรงกับคำสั่งก็ได้
พี่ครับผมขอโค้ส การอ้าง symbolหลัก หน่อยครับ
ผมทำ วิธีแบบที่คุณคิดไว้ก็ได้ คือสร้าง p1...pn ไว้สำหรับรูปที่ 1 , a1...an รูปที่ 2 ก็ได้
แต่ติดตรงที่ อ้าง symbol ไม่เป็นครับ ถ้าตามที่ผมเข้าใจ จะเป็นแบบนี้
btn1.addEventListener(MouseEvent.CLICK,openbtn1);
function openbtn1(e:MouseEvent):void
{
gotoAndStop(1,"Scene 2");
}
คือกดปุ่มแล้วไปเล่นที่ ซีนอื่น แต่มันก็ error
ขอบคุณครับ ลองทำตามที่พี่สอนแล้วแต่ไม่รู้เรื่องการเขียนโค้สอ้างนี้หล่ะครับ
หรือขอวีดีโอ การอ้าง sysbol ซ้อนกัน symbol คือผมหาไม่เจอครับ
พี่ครับผมขอโค้ส การอ้าง symbolหลัก หน่อยครับ
ผมทำ วิธีแบบที่คุณคิดไว้ก็ได้ คือสร้าง p1...pn ไว้สำหรับรูปที่ 1 , a1...an รูปที่ 2 ก็ได้
แต่ติดตรงที่ อ้าง symbol ไม่เป็นครับ ถ้าตามที่ผมเข้าใจ จะเป็นแบบนี้
btn1.addEventListener(MouseEvent.CLICK,openbtn1);
function openbtn1(e:MouseEvent):void
{
gotoAndStop(1,"Scene 2");
}
คือกดปุ่มแล้วไปเล่นที่ ซีนอื่น แต่มันก็ error
ขอบคุณครับ ลองทำตามที่พี่สอนแล้วแต่ไม่รู้เรื่องการเขียนโค้สอ้างนี้หล่ะครับ
แล้วถ้าจะเปลี่ยนจากลูกศร เป็นถังสี เมื่อไปชี้ที่รูปภาพพอจะทำได้หรือเปล่าครับ และทำยังไงครับ
ขอบคุณครับ ผมเอาไปทำส่งครูได้พอดี
มีตัวเกมให้โหลดมั้ยครับ ?
มีตัวเกมให้โหลดมั้ยครับ ?
มีตัวเกมให้โหลดมั้ยครับ ?
มีตัวเกมให้โหลดมั้ยครับ ?
มีตัวเกมให้โหลดมั้ยครับ ?
จุดประสงค์ของวีดีโอการสอน คือต้องการให้ทำเอง
เวลาทำ ให้ดูดีๆ แล้วทำตาม ปัญหาที่เจอส่วนใหญ่คือข้ามขั้นตอน แล้วไม่ได้กำหนดบางอย่างเลยทำให้เกิด error
ขอบคุณค่ะ,, :)
แล้วถ้าเริ่มเขียนด้วย Action Script 2.0 ไปแล้ว จะเอา
โค้ดคำสั่งนี้ไปใช้ได้มั้ยค่ะ ถ้าไม่ได้ ต้องทำยังไง
เกมส์นี้ต้องเขียนด้วยAS3 เท่านั้นครับ
พี่ค่ะ รบกวนถามหน่อย พอดีหนูใช้flash8 ทำแล้วจะใช้โค้ชนี้ได้ไหม ถ้าไม่ได้ต้องทำยังไงค่ะ ขอบคุณมากเลยค่ะ
ขอโทษครับ ผมชื่อเพชร เรียนอยู่ปี4 กำลังทำโปรเจค
ผมต้องการที่จะสร้างเกมFlash เกี่ยวกับการประกอบอุปกรณ์ คือการลากชิ้นส่วนให้เข้าที่เพื่อให้เสร็จสมบูรณ์
แล้วให้คะแนนว่าได้กี่ชิ้น อยากให้พี่แนะนำหนังสือหรืออะไรก็ได้ครับ ขอบคุณครับ
**Error** Scene=Scene 1, layer=action, frame=1:Line 6: The class or interface 'ColorTransform' could not be loaded.
var colorchange:ColorTransform = new ColorTransform();
**Error** Scene=Scene 1, layer=action, frame=1:Line 10: The class or interface 'uint' could not be loaded.
for (var ip:uint = 1; ip <= np; ip++) {
**Error** Scene=Scene 1, layer=action, frame=1:Line 16: The class or interface 'uint' could not be loaded.
for (var ic:uint = 1; ic <= nc; ic++) {
**Error** Scene=Scene 1, layer=action, frame=1:Line 24: The class or interface 'MouseEvent' could not be loaded.
function mcNew(e:MouseEvent): void {
**Error** Scene=Scene 1, layer=action, frame=1:Line 25: The class or interface 'uint' could not be loaded.
for (var ip:uint = 1; ip <= np; ip++) {
**Error** Scene=Scene 1, layer=action, frame=1:Line 30: The class or interface 'MouseEvent' could not be loaded.
function mcColor(e:MouseEvent): void {
**Error** Scene=Scene 1, layer=action, frame=1:Line 36: The class or interface 'MouseEvent' could not be loaded.
function mcPaint(e:MouseEvent):void {
**Error** Scene=Scene 1, layer=color, frame=1:Line 6: The class or interface 'ColorTransform' could not be loaded.
var colorchange:ColorTransform = new ColorTransform();
**Error** Scene=Scene 1, layer=color, frame=1:Line 10: The class or interface 'uint' could not be loaded.
for (var ip:uint = 1; ip <= np; ip++) {
**Error** Scene=Scene 1, layer=color, frame=1:Line 17: The class or interface 'uint' could not be loaded.
for (var ic:uint = 1; ic <= nc; ic++) {
**Error** Scene=Scene 1, layer=color, frame=1:Line 25: The class or interface 'MouseEvent' could not be loaded.
function mcNew(e:MouseEvent): void {
**Error** Scene=Scene 1, layer=color, frame=1:Line 26: The class or interface 'uint' could not be loaded.
for (var ip:uint = 1; ip <= np; ip++) {
**Error** Scene=Scene 1, layer=color, frame=1:Line 31: The class or interface 'MouseEvent' could not be loaded.
function mcColor(e:MouseEvent): void {
**Error** Scene=Scene 1, layer=color, frame=1:Line 37: The class or interface 'MouseEvent' could not be loaded.
function mcPaint(e:MouseEvent):void {
Total ActionScript Errors: 14 Reported Errors: 14
มันเปนงี้ง่าหนูไปทำไรผิดป่าวคะ
Error เยอะ ให้ ทำใหม่ทำให้ช้าๆตาม vdo
ใช้ AS3 อย่าขี้เกียจ ห้ามข้ามขั้นตอน ห้ามก็อปปี้มั่ว
เพชรปี4 ศึกษาเรื่อง drag & drop ให้เข้าใจก่อน ค้นหาใน YouTube มีฝรั่งทำตัวย่างไว้เยอะเลย
Error เยอะ ให้ ทำใหม่ทำให้ช้าๆตาม vdo
ใช้ AS3 อย่าขี้เกียจ ห้ามข้ามขั้นตอน ห้ามก็อปปี้มั่ว
เพชรปี4 ศึกษาเรื่อง drag & drop ให้เข้าใจก่อน ค้นหาใน YouTube มีฝรั่งทำตัวย่างไว้เยอะเลย
ถ้าต้องการมี 12 สี ต้องเปลี่ยน var nc:Number = 12;
ใช่ไหมครับ แล้วในส่วนของ
for (var ic:uint = 1; ic <= nc; ic++) {
this["c"+ic].addEventListener(MouseEvent.CLICK,mcColor);
colorchange.color = cArray[ic - 1];
this["c"+ic].transform.colorTransform = colorchange;
ต้องเปลี่ยนตรงไหนบ้างครับ คือผมทำแล้วมันขึ้นสีตามที่กำหนด แต่ตอนที่เอาเมาส์ไปคลิกสีมันขึ้นสี ที่ 9 และสีที่ 10 สีที่ 11และ 12 มันไม่ขึ้นตามครับ
พี่ค่ะ รบกวนถามหน่อยค่ะ คือตรงที่
colorchange.color = 0xffffff; ที่บอกว่า รูปจะเป็นสีขาว
แต่พอทำแล้วมันขาวทั้งรูป แล้วไม่มีเส้นเลย
รบกวนช่วยบอกหน่อยค่าา ว่ามันผิดพลาดตรงไหน
ขอบคุณค่าาา
โค้ดตามตัวอย่าง
ที่มีคนนำไปประยุกต์และทำเกม ไว้สวยงาม
ดูได้ที่
http://panida-thesis.blogspot.com/2013/05/abc-test.html#comment-form
ขอบคุณมากครับ มีประโยชน์มากเลย
ถ้าจะเพิ่มเสียงในแต่ละสีต้องทำยังไงคะ
ขอบคุณคะ
อยากทราบว่าถ้าต้องการทำเป็นเกมที่มีหลายๆsceneที่เป็นคนละภาพกัน จะต้องกำหนดตัวแปรอย่างไรบ้างคะ เป็น p19 p20 ต่อไปได้เรื่อยๆเลยใช่ไหมคะ แล้วตรงจานสีต้องเปลี่ยนเป็น c11 c12 หรือว่าเอาจานสีอันเดิมมาใช้ได้เลยคะ ถ้ากำหนดตัวแปรใหม่แล้วเรื่องเขียนสคริปต์ในแต่ละ sceneต้องแก้อย่างไรบ้างคะ ขอบคุณค่าาา :)
วิธีทำปุ่มลิงค์จากไฟล์งานอันหนึ่งไปอีกอันหนึ่ง ที่เป็นไฟล์งานแฟลชเหมือนกันทำยังไงค่ะ
ทำได้แล้วค่ะ ขอบคุณมากๆเลยค่ะ คลิปสอนนี้มีประโยชน์มากค่ะ นั่งทำตั้งนาน รู้สึกดีใจมากค่ะ ที่ทำได้ ขอบคุณมากค่ะ
ยากครับ
แต่ขอ ก๊อบละกันนะครับ
ขอบคุณมากครับ
พี่ค่ะ ถ้าหากเราจะสร้างเกมผสมสีนี่ เราต้องทำยังไงคะ ประมาณว่า สีแดง ผสม น้ำเงินให้เป็น สีม่วงอะคะ
คือผมทำมาแล้ว มันเทสีไม่ได้อะครับ แล้วก็ไม่มีerrorขึ้นนะครับ TT #ร้องไห้หนักมาก
คือว่าทำตามแล้ว มันขึ้นแบบนี่นะค่ะ
TypeError: Error #1010: A term is undefined and has no properties.
at Untitled_fla::MainTimeline/GameStart()
at Untitled_fla::MainTimeline/frame1()
และตรงแถบ ช่องสีก้อไม่ขึ้นสีด้วยค่ะ
พอกดเริ่มใหม่ก็ขึ้นแบบนี้นะค่ะ
TypeError: Error #1010: A term is undefined and has no properties.
at Untitled_fla::MainTimeline/mcNew()
แสดงความคิดเห็น