หน้า: [1] 2
 
ผู้เขียน หัวข้อ: เดือนช่วงดวงเด่นฟ้า ดาดาว  (อ่าน 14638 ครั้ง)
0 สมาชิก และ 1 ขาจร กำลังดูหัวข้อนี้
<a href="http://img2.f0nt.com/flash/ad2e218b18e0d1f5c1e750107ec681f6.swf" target="_blank">http://img2.f0nt.com/flash/ad2e218b18e0d1f5c1e750107ec681f6.swf</a>

ขอบังอาจเจ้าของสวนขายมะพร้าวห้าวเอามัน... คริคริ

อธิบายคอนเซ็บต์นะครับ เรื่อง code ถ้ามีเรียกร้องค่อยตามมาแปะ นะนะ...

ตอแรกก็สร้าง mc ที่เป็นดาวขึ้นมา

สั่ง duplicate ด้วย loop for ตามจำนวนดาวที่ต้องการ

ทุกครั้งที่ duplicate ก็กำหนดทิศการเคลื่อนที ่โดยให้มัน random ค่าขึ้นมาแล้วบวกซ้ำๆค่า x และ y ของ mc ดาวแต่ละดวง(ใช้ onEnterFrame ในการสั่งงานซ้ำๆก็ได้)

มีเงื่อนไขตรวจสอบการชนขอบโดยอ้างจาก เมื่อดาวมีตำแหน่งในแกนนอนมากกว่าหรือเท่ากับความกว้างของ stage หรือ ดาวมีตำแหน่งในแกนนอนน้อยกว่าหรือเท่ากับ 0 เป็นการตรวจการชนขอบซ้ายขวา และเมื่อดาวมีตำแหน่งในแกนตั้งน้อยกว่าหรือเท่ากับ 0 หรือดาวมีตำแหน่งในแนวแกนตั้งมากกว่าหรือเท่ากับความสูงของ stage ก็ให้ค่าที่ random มาของแต่ละแกนติดลบเสีย ชนขอบไหนก่อนก็กลับค่าแกนนั้นก่อน

ลองดูครับ หนุกดีนะ ทำได้แล้วยิ้มคนเดียวทั้งวัน ฮื้มมม ปลื้ม

ปล.ที่เห็นดาวหมุนได้เพราะผมก็ random ค่าขึ้นมาแล้วบวกองศาเพิ่มไปเรื่อยๆเอาเหมือนกัน
« แก้ไขครั้งสุดท้าย: 01 ส.ค. 2007, 02:19 น. โดย thaPIXIE » บันทึกการเข้า
สวยจัง  กรี๊ดดดดด
บันทึกการเข้า
จรูญจรัสรัศมีพราว พร่างพร้อย กรี๊ดดดดด+
(เพิ่งอ่านจบตะกี้เลย)
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
 กรี๊ดดดดด กรี๊ดดดดด กรี๊ดดดดด กรี๊ดดดดด กรี๊ดดดดด กรี๊ดดดดด กรี๊ดดดดด อร๊ายยยยย ชอบบบบบบบบบบบบบบบบบบบบ
บันทึกการเข้า

ที่สุดถ้ามันจะไม่คุ้ม
แต่มันก็ดีที่อย่างน้อยได้จดจำ
ว่าครั้งนึงเคยก้าวไป...
มีใครขอให้แปะโค้ดไปรึยัง 


งั้นผมขอ
บันทึกการเข้า

ล้ำลึกคนึงหาในดวงจิต ใจเคยคิดตัดสวาทมิอาจสิ้น
ดั่งก้านบัวหักกลางชลาสินธุ์ ผิว่าสิ้นไร้เยื่อยังเหลือใย
ขออนุญาติเอา code มาแป๊ะ นะครับ พอดีกำลังหัด flash แล้วเลยเอาไปลองเขียนตามดู
mc ที่เป็นรูปดาวผมใช้มันอยู่กลาง mc ของดาวนะครับ เลยใช้ width/2 และ height/2 ทั้งหมดถ้าใครรูปดาวไม่ได้อยู่กลาง mc ต้องคำนวณใหม่เองนะ

function animation() {
   this._rotation += this.rotation // หมุนทุกครั้ง ตามองศาที่ set ไว้
   if (this._x < (this._width/2) || this._x > Stage.width-(this._width/2) ) {
      this.x *= -1; // กำหนดค่า x ใหม่ทุกครั้งที่มีการชนขอบซ้ายและขวา
   }
   if ( this._y < (this._height/2) || this._y > Stage.height-(this._height/2) ) {
      this.y *= -1; // กำหนดค่า y ใหม่ทุกครั้งที่มีการชนขอบบนและล่าง
   }
   this._x += this.x; // เลื่อนดาวตามสมควร
   this._y += this.y;   
}

// function กำหนดค่าเริ่มต้นให้ star
function initStar(mc:MovieClip) {
   mc.x = randRange(-15, 15); // กำหนดค่าที่จะเลื่อน ยังไม่ได้เลื่อนจริง ๆ นะ
   mc.y = randRange(-15, 15);
   mc.rotation = randRange(5,10); // กำหนดค่าที่จะหมุน
   mc._alpha = randRange(20,100); // กำหนด alpha
   mc._xscale = mc._yscale = randRange(20,100); // กำหนดขนาด
   mc._x = randRange(0+(mc._width/2), Stage.width-(mc._width/2)); // กำหนดค่าเริ่มต้นที่จะวางใน stage
   mc._y = randRange(0+(mc._height/2), Stage.height-(mc._height/2));
   mc.onEnterFrame = animation; // กำหนดว่าให้ onEnterFrame ไปทำ function animation
}

// function random ค่า เอามาจากใน help สะดวกดี กำหนด min max ได้เลย
function randRange(min:Number, max:Number):Number {
    var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
    return randomNum;
}

// วนลูปสร้างดาว 50 อัน พร้อมทั้งกำหนดค่าเริ่มต้นให้มันด้วย
for(i=1;i<50;i++) {
   this.attachMovie("star", "mc"+i, this.getNextHighestDepth()); // mc ที่อยู่ใน library ผมชื่อ star นะครับ
   initStar(this["mc"+i]);
}

บันทึกการเข้า
<a href="http://img2.f0nt.com/flash/ad2e218b18e0d1f5c1e750107ec681f6.swf" target="_blank">http://img2.f0nt.com/flash/ad2e218b18e0d1f5c1e750107ec681f6.swf</a>


ดาวดวงมุมซ้านบน อยู่นิ่งไม่ขยับไปไหนเลยครับ อย่างนี้เรียก bug ได้มั้ยครับ  (อิอิ)
บันทึกการเข้า

Today you , Tomorrow me.
เรียกว่า starbug ครับ
บันทึกการเข้า

        AH_LuGDeK, AH_LuGDeK_R
 กรี๊ดดดดด พี่เป็นร้านกาแฟใช่มั้ยคะ
บันทึกการเข้า

there are no regrets in life, just lessons . .
มันเกิดจากว่าพี่เค้าเขียนแรนดอมความเร็ว

แต่ดาวดวงนั้นมัดหยุดเพราะมัรนแรนดอมความเร็วได้ใกล้เคียง หรือเท่ากับ 0
บันทึกการเข้า

หวาวว... wutty OOP นี่นา... เกย์แอบ เจ๋งแฮะ เจ๋ง
บันทึกการเข้า
เป็นลูกครึ่ง oo กับ function ครับ  ลันล้า ลันล้า

ชอบ function ใน flash มาก ๆ ๆ ครับ มันเป็น pointer หมดเลย เลยเขียนแบบ
mc.onEnterFrame = animation; แบบนี้ได้ แถมไม่ใช้ delete mc.onEnterFrame ได้อีกต่างหาก  เจ๋ง เจ๋ง

แต่มันไม่ค่อยถูกหลัก oo เท่าไหร่นะ แต่ชอบบบบบบบ  ฮี่ๆ ฮี่ๆ
บันทึกการเข้า
สวยชะมัด !!

มีวิธีทำให้มันโต้ตอบกับ mouse ได้ไหมครับ แบบว่าเอา mouse ชนแรงๆ ดาวก็กระเด็นไปแรงๆ แบบนี้อ๊ะ
บันทึกการเข้า

50 levels avaliable, 22 secrets levels avaliable :P
ไม่ค่อยเข้าใจว่าชนแรง ๆ แบบไหนน่ะ

เอาเป็นลากแรง ๆ แล้วกัน

เพิ่ม 2 function
function startMove() {
   this.startPointX = this._x;
   this.startPointY = this._y;
   this.startDrag();
   delete this.onEnterFrame;
}

function stopMove() {
   this.x = (this._x - this.startPointX)/3; // เปลี่ยนค่า /3 เป็นอื่น ๆ ก็ได้ ถ้าไม่ / มันจะวิ่งไวมาก ๆ
   this.y = (this._y - this.startPointY)/3;
   this.stopDrag();
   this.onEnterFrame = animation;
}

แล้วก็แก้ function initStar เป็นตามนี้

function initStar(mc:MovieClip) {
   mc.x = randRange(-15, 15); // กำหนดค่าที่จะเลื่อน ยังไม่ได้เลื่อนจริง ๆ นะ
   mc.y = randRange(-15, 15);
   mc.rotation = randRange(5,10); // กำหนดค่าที่จะหมุน
   mc._alpha = randRange(20,100); // กำหนด alpha
   mc._xscale = mc._yscale = randRange(100,100); // กำหนดขนาด
   mc._x = randRange(0+(mc._width/2), Stage.width-(mc._width/2)); // กำหนดค่าเริ่มต้นที่จะวางใน stage
   mc._y = randRange(0+(mc._height/2), Stage.height-(mc._height/2));
   mc.onEnterFrame = animation; // กำหนดว่าให้ onEnterFrame ไปทำ function animation
   mc.onPress = startMove;
   mc.onRelease = mc.onReleaseOutside = stopMove;
}
// เพิ่ม 2 บรรทัดล่าง ให้กดที่ดาว และ ปล่อยดาว ทำอะไร


ลืมไปนิดนึง
mc._xscale = mc._yscale = randRange(100,100); // กำหนดขนาด
แก้เป็น 20, 100 นะ เมื่อกี้ แก้แ้ล้วลืมแก้กลับ

แบบนี้มันจะไม่ดีอยู่นิดนึงคือถ้าปาแรง ๆ มันจะวิ่งไม่หยุดเลยกดอีกทีลำบากมา  ฮือๆ~
ควรไปแก้้ใน function animation ให้มันวิ่งช้าลงเรื่อย ๆ ด้วย แต่ขี้เกียจทำล่ะ  (อิอิ) (อิอิ)
« แก้ไขครั้งสุดท้าย: 01 ส.ค. 2007, 15:56 น. โดย WuTtY » บันทึกการเข้า
 กรี๊ดดดดด รวดเร็ว ทันใจ
บันทึกการเข้า

Today you , Tomorrow me.
หน้า: [1] 2
 
 
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines | Thai language by ThaiSMF Valid XHTML 1.0! Valid CSS!