ผมทำ Random เลขมา Trace ได้
แต่พอเอาไปประยุกต์สั่งให้ MC แรนด้อม gotoAndPlay เหมือนว่ามันจำค่าเลขที่แรนด้อมมาครั้งแรกอย่างเดียวน่ะครับ ไม่รู้ว่าต้องใช้วิธีอะไร
ปล. อ้อ ถามอีกทีเลยล่ะกันครับ คำสั่งสำหรับการ กดรัวๆ ให้เกจพลังเต็มนี่สั่งยังไงเหรอครับ
เอ๋ ผมมองไม่ออกครับ ว่านำไปประยุกต์ใช้กับ mc อย่างไร :09:
สมมติว่า random เป็นเลข 1 ให้เล่น mc 1 อะไรแบบนี้รึป่าวครับ :09: :09:
mynum = random (2)
if (mynum = 0) go....
if (mynum = 1) go...
mynum = random(2)
trace(mynum);
if (mynum==0){
aa.gotoAndPlay("over")
}
if (mynum==1){
aa.gotoAndPlay("out")
}
แบบนี้รึป่าวครับ เมื่อ aa เป็น mc
เปรียบเทียบใช้ == ครับป๋า
http://img2.f0nt.com/flash/5e24f7a813ff179511ed83ad4a22099d.swf
ได้แล้วครับขอบคุณมากครับ
เพียงแต่ว่าต้องเพิ่ม onEnterframe หน่อย
onEnterFrame = function (){
num = random(2);
b.onPress = function(){
if (num == 0)
m.gotoAndPlay('one');
if (num == 1)
m.gotoAndPlay('two');
};
}
ทีนี้จะทำท่าใหญ่โดยการเพิ่มเกจพลังให้กดรัวๆจนถึงขีดแล้ว gotoAndPlay ยังไงดีครับ
ท่าจะยาก :08:
ใช้กดรัว เลยเหรอครับ อืมมม :39:
ถ้าให้กด 1 ที แล้วเกจพลังเพิ่มไปเลยล่ะครับ
(แบบไม่ต้องสนใจว่า รัว หรือไม่รัว)
แล้ว ค่อยมาหาวิธีลดเกจพลัง แทน
(เช่น 5 frame ลดพลังเกจลง 1 หรืออะไรก็ว่าไป)
ซึ่ง อาจจะสร้าง mc มาตัวนึงแล้ว เขียน action script เพื่ออ้างอิงถึง ตัวแปรที่ _root ตัวที่เป็นเกจตัวไหนก็ว่าไป
ซึ่ง ถ้าเราไม่กดรัวๆ พลังเกจก็จะลดลงจนถึง 0 เอง
:26:แต่ผมเขียน โค้ดไม่ค่อยเป็นนะครับ
ไม่รู้ว่า จะได้หรือเปล่า ลองดูละกันครับผม
flash เนี๊ย มีฟังชันก์ที่จะทริกทุกๆเวลา มั๊ยครับ น่าจะมี
ถ้ามี ก็ประมาณว่า
//ผมเขียนแฟรชไม่เป็นT^T
MAXPOWER = 100;
POWER = 0;
Trig(0.5){ //ทำงานทุกๆ 0.5 วินาที
POWER -= ;
if(POWER>= MAXPOWER){
gotoAndPlay();
}
}
OnButonA(){ //ทำงานทุกๆครังที่กดปุ่ม
POWER += ;
}
ประมาณนี้ได้รึป่าวครับ :09:
ก็ใช้ enterframe
if(hitTest(123)&&mouseDown&&ตัวแปร<100){
ตัวแปร ++
}
if(!hitTest(123) || mouseUp)
{ if(ตัวแปร>50){แหง่วๆ}
if(ตัวแปร>80){งุงิ}
{
ทำนองนี้มั้งครับ
หรือจะใช้ setInterval ก็เท่ดีนะครับ
โค้ดที่เขียนไปข้างบนมันมั่วๆนะครับ
ตอนนี้อยู่นอกบ้าน ยิ่งโง่ๆ actionscript อยู่ด้วย :42:
***
อ้าวเวร นี่ยัยนลินมาล็อคอินทิ้งไว้ :08:
ในแฟลชใช้ SetInterval (http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary646.html) ครับ
คงใช้เหมือนๆ กะ Trig เลยครับ
(แต่ให้เขียนอธิบายตรงนี้ตูก็เขียนไม่เป็น)
//น้องนเต่าตัดหน้า
^
เต่าเหรอ
ข้างบนนั่นพี่แอนครับ
คนก่อนหน้าผมเอง
พอดีใช้คอมที่ทำงานพ่อ น้องมาล็อคอินทิ้งไว้... :08:
แล้วผมเป็นใคร :09:
วิธีกำหนดfunction callback1() {
trace("สวัสดีชาวโลก");
}
วิธีเรียกsetInterval( callback1, 1000 );
หรือ
วิธีกำหนดfunction callback2(arg) {
trace(arg);
}
วิธีเรียกsetInterval( callback2, 1000, "สวัสดีชาวโลก" );
กรี๊ด... พี่แอนหล่อ... :25:
หล่อแมวอะไร ลอกเขามาให้คนเขียนได้เอาไปทำต่อเฟ้ย :07:
ตกลงป๋าเลย์ เขียนเสร็จยังครับ รอเล่นๆๆ :25:
ได้มีเลือดสาดแน่ๆ งานนี้ :30:
ขอบคุณสำหรับ อินเทอรเวล ครับ
thank you very much, sir
พึ่งเห็นว่าป๋าจะให้คลิกรัวๆ
ถ้าไม่อยาก SetInterval ให้ปวดหัวผมว่า
ใช้ enterframe ลดเกจดีกว่านะครับ
เกจลดลงที่ละ 1
เกจ --
แล้วคลิกทีนึง เกจ +5
คลิกๆๆๆ ก็จะเพิ่มขึ้นเรื่อยๆ
ยิงรัวก็ยิ่งต่อต้านการลดลงของค่าเกจปกติ
ไม่ต้องนับเวลาว่าคลิกติดต่อกันภายในกี่วิหรอกมั้งครับ
onEnterframe.mc = function (){
if(gage < 101){ gage ++ }
}
onRelease.mc = function(){
gage+ = 5
}
ยังไมค่อยเข้าใจระบบของป๋าครับ
จะกดปุ่มคีย์บอร์ดรึเปล่า
หรือจะคลิกเมาส์...
ใกล้แล้ว แต่ผิดต้องวาง Loop น่ะครับ
http://img2.f0nt.com/flash/99dc56ad58bed3579ad47a1f379ef667.swf
function Downbar (){
bar.onEnterFrame = function(){
if (bar._width <=1)
bar._width = 1;
else if (bar._width >1)
bar._width -= 1;
}
}
onEnterFrame = function (){
num = random(2);
setInterval (Downbar , 2000);
b.onPress = function(){
if (num == 0)
m.gotoAndPlay('one');
if (num == 1)
m.gotoAndPlay('two');
if (bar._width <200)
bar._width +=3;
if (bar._width >= 200)
bar._width =200;
};
}
อ๊ะ upload ลงเว็บแล้วเพิ่มแฮะ
ผมเทศในคอมตัวเองมัน + ไม่ทันการลบแฮะ 5555
ลองเล่นเอง ทรมานแสดดดด
ปล.ยังไม่ได้เขียนท่าใหญ่นะ กดกันพลางๆ
:38: :38: :38: :38:
ลดความเร็ว setInterval ลงหน่อย คร๊าบบบบบบป๋าา
:05:
โค้ดชุดนี้ผิดที่ความเร็วในการลดครับไม่ใช่ เวลาของ interval
ถ้าปรับให้เป็น setInterval เป็น 5000
จะเป็นงี้ครับ บวก ๆ ๆ ๆ ๆ (ยังไม่มีการลด) พอถึงเวลา ที่ 5000 มันก็จะลดด้วยความเร็วเหมือนเดิม
รู้แต่กดไม่ทันครับ :05:
มือหงิกเสร็จป๋าค่อยบอกว่าไำม่มีท่าใหญ่... :08:
กดจนเหนื่อย (แฮ่กๆ...) มันขึ้นมานิดเดียวเองค่ะ
แล้วมันก็ลดหายไปฮือๆ (ใช้ทั้งมือซ้ายมือขวาแล้ว)
ปล. ทำอะไรไม่เป็นแต่มาลองเล่นดูค่ะ...ขำดี..แต่สงสารน้อง...เค้าจัง :22:
กดไปครึ่งหลอด ตะคริวกินนิ้ว :44:
ขึ้นเยอะแล้ว...เหนื่อยมากๆ
แต่ป๋า..เมาส์มันจะพังมั๊ยคะเนี๊ยะ :22:
สรุปตอนนี้ไม่ใช้ setInterval แล้วครับ
:25:
(ตูใช้ Tab + Space bar โกงเอาเหมือนเดิม)
:25:
อ้างคำพูดจาก: iannnnn เมื่อ 05 ธ.ค. 2006, 15:01 น.
:25:
(ตูใช้ Tab + Space bar โกงเอาเหมือนเดิม)
เพิ่งรู้ สุดยอด :25:
ป๋าลองเพิ่ม bar._width ต่อครั้งให้มากขึ้นสิครับ
ทดลองนะครับ อันนี้ +10
http://img2.f0nt.com/flash/752e4293f5751f82f58fd298226f75ef.swf
แก้แล้วครับ แต่มีอีกแล้ว
ท่าใหญ่ไม่ออกครับ 555
ค้างที่เฟรมแรกของ MC
http://img2.f0nt.com/flash/1ee1b98adf6d09a5c415493aeb4e040d.swf
function Downbar() {
bar.onEnterFrame = function() {
if (bar._width<=1) {
bar._width = 1;
} else if (bar._width>1 and bar._width<200) {
bar._width -= 1;
} else if (bar._width>=199) {
gate.gotoAndPlay('pl');
bar._width = 200;
}
};
}
onEnterFrame = function () {
num = random(2);
Downbar();
b.onPress = function() {
if (num == 0) {
m.gotoAndPlay('one');
}
if (num == 1) {
m.gotoAndPlay('two');
}
if (bar._width<200) {
bar._width += 5;
}
if (bar._width>=200) {
bar._width = 200;
}
};
if (bar._width>=160) {
posX = 340;
} else if (bar._width>90 and bar._width<120) {
posX = 275;
}
b._x = posX;
};
บรรทัดที่ 8 ครับ
ใน gate มันมี stop() ข้างบนอยู่หรือเปล่า ครับ ??
:25:ผมรอดูท่าใหญ่อยู่นะครับ
เฟรมแรกเป็นเฟรมเปล่า เลยต้องใส่ stop(); ไว้น่ะครับ ที่เห็นคือค้างที่เฟรมที่ 2 ไม่ใช่เฟรมแรกครับ โทษที
เพราะตรงนี้รึเปล่าครับ
gate.gotoAndPlay('pl');
bar._width = 200;
คือพอมันมากว่า 199 แล้ว มันยังคงวน loop เพื่อ gotoAndPlay('pl'); ต่อ มันเลยค้างอยู่อย่างนั้น
ท่าไม้ตายๆ
มีแค่ max เด้งๆ เองง่า
แก้บรรทัดนี้ครับ
bar._width = 200;
เป็น
bar._width = 1;
ก็ใช้ได้ครับ ลองแล้ว
http://img2.f0nt.com/flash/85e722c6d74592cd7da5361666f3c968.swf
โอ้ว มันจอร์จจริงๆเลยยอด
ถ้าเขียนแบบเทพๆ ก็ต้องแบบนี้
frameArray = new Array("one","two");
Downbar();
b.onPress = function() {
m.gotoAndPlay( frameArray[random(2)] );
}
สามารถแทนโค้ดพวกนี้ได้เลย
num = random(2);
Downbar();
b.onPress = function() {
if (num == 0) {
m.gotoAndPlay('one');
}
if (num == 1) {
m.gotoAndPlay('two');
}
จริงๆยังมีอีกหลายส่วนที่ต้องปรับปรุงใหม่
bar.onEnterFrame = function() {
if (bar._width>0) {
bar._width--;
}
if (bar._width>=199) {
gate.gotoAndPlay('pl');
bar._width = 1;
}
};
frameArray = new Array("one", "two");
b.onPress = function() {
if (bar._width<200) {
bar._width += 5;
}
m.gotoAndPlay(frameArray[random(2)]);
if (bar._width>=160) {
b._x = 340;
} else if (bar._width>90 and bar._width<120) {
b._x = 275;
}
};
ลองเอาโค้ดนี้ไปแทนดูครับ
เจ๋งเป้งเลยครับ
ขอบคุณมากครับ (เหลือสั้นจุ๊ดจิ๋มเลย)
ขอถามอีกสักนิด ถ้าเป็นตัวจับเวลา แบบว่า ปั้มจนเต็มใช้เวลาไปกี่ วิ เช่น 16.04 วินาที อะไรทำนองนี้ใช้คำสั่งอะไรเหรอครับ
getTimer
ครับ
a = getTimer() ก่อนจะเริ่มปั๊ม
b= getTimer() หลังปั๊มเต็มแล้ว
แล้วเอามาลบกัน จะได้หน่วยมาเป็นวินาที
แล้วเอามา หาร 60 แปลงเป็นนาที
เจี๊ยก... :25:
ลืม getTimer ไปจนกระทั่งพี่ฮาร์ทบอกนี่แหละ
:25: :25: :25:
(รู้สึกบอร์ดนี้พี่ฮาร์ทจะหล่อเป็นพิเศษ :27:)
อ้างคำพูดจาก: heart เมื่อ 05 ธ.ค. 2006, 22:32 น.
getTimer
ครับ
a = getTimer() ก่อนจะเริ่มปั๊ม
b= getTimer() หลังปั๊มเต็มแล้ว
แล้วเอามาลบกัน จะได้หน่วยมาเป็นวินาที
แล้วเอามา หาร 60 แปลงเป็นนาที
แก้ไขใหม่
ออกมาหน่อยเป็น มิลลิวินาที แล้วเอามาหาร 1000 ได้เป็นวินาที
นี่แหละน้า
เขาว่าคนหน้าตาไม่ดีมักจะเก่ง
:12:
ภูกระดึง ทำไมเก่งจังเลย กรี๊ด........
ทำไมผมถึงอ่อนหัดอย่างงี้ :30:
ทำไมตูหล่ออย่างงี้
เห็น เกจ ตามเกมพวกกีฬาจะขึ้นยากเมื่อเกจสูงขึ้นนี่ครับ จะมีความยากที่ตรงกันทุกช่วงของเกจ
bar._width--; อาจจะแก้เป็น bar._width -= bar._width * 0.25; (ยังไม่มีเวลาทำครับค่านี้แค่สมมุติมาเฉย ๆ แต่คิดว่าเกจพลังน่าจะขึ้นยากขึ้นเมื่อเกจสูงขึ้นครับ)
หรือว่าใครมีสมการยังไงล่ะครับ