[Thảo Luận] Về hướng di chuyển!

cluvccluvc Posts: 14Registered
edited July 2019 in Game Maker: Studio
Mình có làm thử một game Platfform căn bản, set phím qua lại bằng left +right ,
Bây giờ mình muốn lấy giá trị hướng nhìn của nhân vật ( để sử dụng cho obj_ đạn) ( trên mạng chỉ hướng dẫn lấy hướng theo vị trí con trỏ chuột, còn mình k sử dụng con trỏ chuột mà chỉ dùng phím thôi)
Hiện giờ vấn đề của mình là :
Khi player tạo ra obj_dan thì obj_dan bay theo hướng nhìn của nhân vật, nhưng trong lúc nó đang bay mà mình quay đầu nhân vật sang hướng ngược lại thì viên đạn đang bay cũng quay đầu bạy theo hướng ngược lại -_- oh my chúa ( có lẽ vì hướng của player đổi nên hướng viên đạn đổi theo)
Các pro có thể giúp mình set hướng bay của viên đạn khi nó sinh ra, và sau đó thì cố định hướng bay không, mình không thể cố định hướng bay của nó được 
cảm ơn, chào thân ái và quyết thắng 

Comments

  • Dang_KhoaDang_Khoa Posts: 3,861Administrators
    cluvc wrote:
    Mình có làm thử một game Platfform căn bản, set phím qua lại bằng left +right ,
    Bây giờ mình muốn lấy giá trị hướng nhìn của nhân vật ( để sử dụng cho obj_ đạn) ( trên mạng chỉ hướng dẫn lấy hướng theo vị trí con trỏ chuột, còn mình k sử dụng con trỏ chuột mà chỉ dùng phím thôi)
    Hiện giờ vấn đề của mình là :
    Khi player tạo ra obj_dan thì obj_dan bay theo hướng nhìn của nhân vật, nhưng trong lúc nó đang bay mà mình quay đầu nhân vật sang hướng ngược lại thì viên đạn đang bay cũng quay đầu bạy theo hướng ngược lại -_- oh my chúa ( có lẽ vì hướng của player đổi nên hướng viên đạn đổi theo)
    Các pro có thể giúp mình set hướng bay của viên đạn khi nó sinh ra, và sau đó thì cố định hướng bay không, mình không thể cố định hướng bay của nó được 
    cảm ơn, chào thân ái và quyết thắng  :)

    Khi vừa được bắn ra thì bạn cho viên đạn lưu lại hướng, rồi cứ cho nó bay theo hướng đó là được, hoặc dùng Unity thì bạn không cần phải lưu hướng nữa
    :P :P :P
  • Quang TrầnQuang Trần Posts: 258Registered
    edited July 2019
    cluvc wrote:
    Mình có làm thử một game Platfform căn bản, set phím qua lại bằng left +right ,
    Bây giờ mình muốn lấy giá trị hướng nhìn của nhân vật ( để sử dụng cho obj_ đạn) ( trên mạng chỉ hướng dẫn lấy hướng theo vị trí con trỏ chuột, còn mình k sử dụng con trỏ chuột mà chỉ dùng phím thôi)
    Hiện giờ vấn đề của mình là :
    Khi player tạo ra obj_dan thì obj_dan bay theo hướng nhìn của nhân vật, nhưng trong lúc nó đang bay mà mình quay đầu nhân vật sang hướng ngược lại thì viên đạn đang bay cũng quay đầu bạy theo hướng ngược lại -_- oh my chúa ( có lẽ vì hướng của player đổi nên hướng viên đạn đổi theo)
    Các pro có thể giúp mình set hướng bay của viên đạn khi nó sinh ra, và sau đó thì cố định hướng bay không, mình không thể cố định hướng bay của nó được 
    cảm ơn, chào thân ái và quyết thắng 

    Trong Event Create tạo biến huong = 0; khi nhấn phím trái thì set nó = 0, phải thì set = 180.

    if (check_key) { 
       dan = instance_create(x,y,obj_dan);
       dan.direction = huong;
       dan.speed = 12; 
    }
  • Focker_cFocker_c Posts: 1,577Registered
    edited July 2019
    Trong Event Create tạo biến huong = 0; khi nhấn phím trái thì set nó = 0, phải thì set = 180.

    if (check_key) { 
       dan = instance_create(x,y,obj_dan);
       dan.direction = huong;
       dan.speed = 12; 
    }

    It's good.
    Hướng nhìn của object cũng có thể quy về biến nhé. Đó là cách game vận hành. Các thứ đều quy về các biến
  • cluvccluvc Posts: 14Registered
    mình đã làm được rồi , mình set ntn
    dan=instance_create(x,y,obj_dan) //obj_dan la tên của obj đạn
    dan.direction=(image_xscale == -1)*180
    :v Vấn đề tiếp theo nhé:
    + Va chạm với 1 obj thì khá đơn giản, nhưng mình muốn viên đạn của mình kiểu đại bác cơ, ví dụ nó nổ khi chạm 1 Enemy đàu tiên , nhưng phạm vi nổ lan tới tất cả các obj đứng trong phạm vi gần đó.
    Như vậy mình phải lấy tất cả tên của các obj chạm vào phạm vi nổ ( hoặc chạm vào viên đạn , //vì mình không set viên đạn tự động destroy khi chạm vào 1 obj bất kì, nó sẽ có thể chạm vài obj đến khi nó biến mất vì phát nổ)
    dùng code [ Instance_place(x,y,obj)] có được không! khi mình dùng code này thì viên đạn nó báo ID k đúng như ID của obj hiển thị trên room
  • Focker_cFocker_c Posts: 1,577Registered
    Theo bổn đạo thì nên làm như sau sẽ đơn giản hóa đi nhiều.

    - Tạo 1 object mới là effect_vu_no
    - Object này hình tròn và để "invisible", tức là vô hình nhưng vẫn hoạt động trong game.
    - Ờ object enemy, để event va chạm với effect_vu_no tương tự như bị bắn bởi object viên đạn.
    - Ở event đạn va chạm với enemy, ta thêm 1 dòng nữa, chính là create ra object effect_vu_no

    ;) Tùy biến để vận hành nữa nhé.
Sign In or Register to comment.