iceman30107   05-29-2016, 04:24 PM
#1
มีความสงสัยมาอีกแล้วครับ คือในฉากต่อสู้ที่ผมทำผมอยากให้มีมอนเตอร์ที่ไม่เหมือนกันทีนี้ผมงงว่าจะดึงเอา Id ของมอนเตอร์มาอ้างอิงในการสร้างยังไงอะครับ

สมมติ ผมกำหนด Id ใน
obj_enemy_1 //Create Event// e_id = 1
obj_enemy_2 //Create Event// e_id = 2
obj_enemy_3 //Create Event// e_id = 3

แล้วใน obj_control ของฉากต่อสู้ ผมก็ให้ Random Id
e_rand = choose(1,2,3)

ตอนสั่งสร้าง obj แบบนี้มันสร้างได้แค่ obj_enemy_1 ตัวเดียว
enemy1 = instance_create(x , y ,obj_enemy_1)

ตรงที่งงคือผมจะเอา Id ที่ Random ได้ไปอ้างเพื่อสร้าง obj_enemy อื่นๆยังไงเพื่อให้สร้างมอนเตอร์ได้หลายๆ แบบอะครับ ในเมื่อตอนที่ instance_create มันสร้าง obj
arkman   05-30-2016, 09:29 AM
#2
รอผู้ที่เขียนโปรแกรมได้มาตอบครับ อันนี้เกินปัญญาผมจริงๆ

Show ContentSpoiler:
[Image: Signature-Ralph.png]
sitplay   05-30-2016, 01:23 PM
#3
ไม่รู้ใช้คำตอบที่ต้องการหรือเปล่า
สมมุติในฉากสู้กำหนดให้ศัตรู ออกมาสูงสุด 3 ตัว

var obj = noone
randomize();
var emax = irandom(2); //0 1 2
//สร้าง ตัวแปล เก็บ ศัตรู
for(var i=0;i<emax;i++){
enemy[i]=noone;
}

//ทำการ random ศัตรู
for(var n=0;n < emax ; n++){
randomize();
e_ran = choose(1,2,3);
if e_ran == 1 obj=obj_enemy_1
if e_ran == 2 obj=obj_enemy_2
if e_ran == 3 obj=obj_enemy_3
enemy[n] = instance_create(x,y,obj);
}

หรือ

for(var n=0;n < emax; n++){
randomize();
e_ran =choose(obj_enemy_1,obj_enemy_2,obj_enemy_3)
enemy[n]= instance_create(x,y+(n*32),e_ran);
}


เวลาจะอ้างถึง ก็ ใช้อันดับ อ้างถึงศัตรูได้เลย เช่น
เพราะเราใส่ enemy ไว้ใน array ที่เรียงจาก 0 1 2
iceman30107   06-01-2016, 05:21 PM
#4
คิดว่าน่าจะใช่แบบนี้ เดี๋ยวขอลองไปทำดูครับ ขอบคุณมากครับ
  
Users browsing this thread: 1 Guest(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.