[Thảo Luận] Topic thảo luận GameMaker Engine

145791014

Comments

  • VistrifaVistrifa Posts: 87Registered
    Khi nãy mình nói rồi "tâm ở đâu ko quan trọng vì đầy là function place_free check collision với obj solid."
    function check instance tại điểm đó thì có va chạm ko, nhớ là instance nhé ko phải point.
  • Focker_cFocker_c Posts: 1,577Registered
    Ồ ! Thì ra là vậy ^^
    Một điều ngộ nhận bấy lâu ^^

    Cảm ơn @Vistrifa nhiều ^^ !

    __________

    Ôi ! Lại phát sinh lỗi mà ko sao đc : (vẫn như cái gmk mình up ở trên)

    Nhảy lên ngang với wall và rẽ ngang qua thì player bị kẹt lại.
    Mình muốn nó rớt xuống.

    Mà thực ra là check ở vị trí y+1 thì mới cho vspeed=0 cơ mà ?
    Đây rõ ràng là va chạm ở giữa mà ?

    1901374_1438707799697826_190408818_n.jpg
  • VistrifaVistrifa Posts: 87Registered
    Xem lại chỗ này nhé chưa check mà giám đi đến rồi thử exam của mình ấy!
    // move left-right :
    if (keyboard_check(vk_left)) {x -= 4}
    else
    if (keyboard_check(vk_right)) {x += 4}
    

    còn kia thì check như thế này
    while instance_place(x,y,ob_wall)
    
  • Focker_cFocker_c Posts: 1,577Registered
    Không ! Hiểu nhầm rồi á ! ^^
    Của @Vistrifa thì là ko cho tới nếu check thấy phía ngang có vật cản.
    Nhưng ý của mình là vẫn cho qua. Nhưng nếu chưa nhảy hẳn nên thì sẽ bị rơi xuống.
    Với cách làm switch solid thì mình có thể làm đc như thế ^^
    Và như thế giống với các game platform pro hiện nay ^^
  • VistrifaVistrifa Posts: 87Registered
    Mình cũng chưa hiểu cách thức di chuyển bạn nói thế nào? thì của mình cũng ko nhảy hẳn lên cũng rơi xuống vậy ?!
  • Focker_cFocker_c Posts: 1,577Registered
    Nếu nhảy từ dưới lên thì đúng là ko nhảy hẳn lên thì rơi xuống
    Nhưng nếu đang trên không mà di chuyển ngang qua, cắm luôn vào wall thì lại bị rắt, kẹt trong tình trạng là chưa nhảy hẳn lên ^^
    mình muốn nó rơi xuống trong trường hợp này. Mà cách làm cũ của mình lại làm ok :)

    Mong @Vistrifa giúp cho chót ^^ !
  • VistrifaVistrifa Posts: 87Registered
    Thay
    if (keyboard_check(vk_left)) {x -= 4}
    else
    if (keyboard_check(vk_right)) {x += 4}
    
    =
    if (keyboard_check(vk_left)) {
        if !(instance_place(x-4,y,ob_wall)) {
            x -= 4;
        };
    } else
    if (keyboard_check(vk_right)) {
        if !(instance_place(x+4,y,ob_wall)) {
            x += 4;
        };
    };
    
  • Focker_cFocker_c Posts: 1,577Registered
    Hiểu mà ^^ . Nhưng như @Vistrifa thì ko cho player tới từ phía ngang, như vầy thì sẽ ko có chuyện kẹt xảy ra.
    Nhưng các game như MapleStory vẫn cho phép như vầy mà.
    Cơ bản thì như hình này nè :
    1508100_1438844916350781_995203279_n.jpg

    Còn vụ check để ko cho tới thì mình hiểu rồi. ^^
  • Dang_KhoaDang_Khoa Posts: 3,861Administrators
    Mình nghĩ là nên kiểm tra theo 4 cạnh của char, ví dụ cạnh dưới cùng nó vượt qua được thì xem như nhảy lên rồi, còn không vượt được là chưa :3
  • VistrifaVistrifa Posts: 87Registered
    À move thế à!
    Đang onl = dt, cái router mới bị hỏng để chừng nào sửa dc mình thử xem.
  • Focker_cFocker_c Posts: 1,577Registered
    Đúng rồi ^^ ! Cảm ơn @Vistrifa
    Nhưng mà lại setup kiểu khác à ? Để mình đọc hiểu văn bản đã ^^
  • bate7a1bate7a1 Posts: 317Registered
    a giúp e làm cái obj giúp cái ảnh này xoay vòng vòng tại chổ ak`
    58751289.smb2enemiessheet.png
  • CryingWOLFCryingWOLF Posts: 1,766Registered
    bate7a1 wrote:
    a giúp e làm cái obj giúp cái ảnh này xoay vòng vòng tại chổ ak`
    58751289.smb2enemiessheet.png

    Có 1 cái hình làm sao làm được. Ít nhất 2 cái. Càng nhiều càng tốt

    Hoặc vẽ ra. Mệt
  • Focker_cFocker_c Posts: 1,577Registered
    @bate7a1 , Đúng như @netro nói bạn ạ ^^ , nếu bạn vẽ được sprite "xoay vòng vòng" thì là ổn nhất.
    Nhưng ngoài ra, theo mình, thì còn một cách đơn giản hơn (chắc hẳn là hiệu quả sẽ ko bằng) , đó là việc flip đi flip lại cái sprite này ^^.
    bạn làm như sau :

    Event Create :
    [php]alarm[10]=6 // có thể lấy alarm khác vẫn ok ^^[/php]

    Event Alarm 10 :
    [php]image_xscale *= -1 // Flip sprite theo chiều ngang
    alarm[10]=6 // lặp lại alarm này sau mỗi 6 fr[/php]

    Hết ! ^^
    Bạn có thể thay đổi 6 frames bằng một thời gian nào đó phù hợp hơn.
    Chúc bạn thành công
Sign In or Register to comment.