Vì vậy, sau vài giờ tìm kiếm trên internet, tôi vẫn chưa tìm thấy câu trả lời thú vị về cách xử lý các nền tảng di chuyển trong trò chơi nền tảng 2d. Vì vậy, tôi quyết định tạo ra một nguyên mẫu đơn giản trong đó bạn tương tác với 2 nền tảng khác nhau, một nền tảng di chuyển theo chiều dọc và một nền tảng theo chiều ngang. Tôi rất thích một số trợ giúp để mổ xẻ và xem những gì không hoạt động, và cách khắc phục chúng. Tôi đã gửi tệp .fla + .as bên dưới, kèm theo một liên kết đến .swf có thể phát.
Mục tiêu là làm cho Hero tương tác với các nền tảng như thể chúng là những vật thể rắn mà anh ta có thể đứng, đẩy cùng với, nhảy lên / xuống, v.v.
Các vấn đề với nguyên mẫu của tôi là:
Khi bạn đứng trên nền tảng di chuyển theo chiều ngang, không di chuyển (không chạm vào bất kỳ phím nào), Hero di chuyển cùng với nền tảng, nhưng với một chút chậm trễ khiến anh hùng trượt trở lại một chút.
Khi bạn đứng trên nền tảng di chuyển theo chiều ngang và nhảy, bạn di chuyển cùng với tầng trên của nền tảng (một số trò chơi thích có nó như thế này, nhưng nó không cảm thấy tự nhiên và không muốn ở đây). Điều này có thể do Hero giữ lại vận tốc trên trục X từ nền tảng.
Khi bạn nhảy lên phía dưới cùng trên nền tảng di chuyển theo chiều dọc, trong khi nền tảng đang di chuyển xuống dưới, bạn chìm trong đó trong một giây ngắn ngủi. Anh hùng xuyên qua như thể vụ va chạm không tồn tại trong giây lát.
Khi bạn nhảy trên nền tảng di chuyển theo chiều dọc, veloctiy trên trục Y được giữ lại, vì vậy khi bạn rời khỏi nền tảng, bạn rơi xuống với tốc độ cao hơn. Với tốc độ của vận tốc được giữ lại, + trọng lực được thêm vào (điều này chủ yếu là do tôi không thể tìm ra cách đặt lại vận tốc trên trục Y về 0 khi bạn hạ cánh trên nền tảng, mà không có người chơi đóng băng giữa không trung).
Tôi là một lập trình viên mới làm quen nên tôi chắc chắn có nhiều cách TỐT HƠN để làm điều này và tôi rất thích nghe tất cả. Mọi ý tưởng về cách cải thiện mã hoặc các phương pháp khác mà bạn có thể triển khai các nền tảng di chuyển thành trò chơi Tilebasing đều được hoan nghênh. Cuối cùng, tôi đang cố gắng tìm một cách vững chắc để xử lý các nền tảng di chuyển trong các nền tảng 2d.
SWF có thể phát: http://dl.dropbox.com/u/28271061/Pl platformerhowtoFLA.html (Di chuyển bằng phím mũi tên, Nhảy bằng phím X, Chạy bằng phím Z)
Sourcecode AS-file: http://dl.dropbox.com/u/28271061/Pl platformerhowto.as
SourcefileFLA: http://dl.dropbox.com/u/28271061/Pl PlatformerhowtoFLA.fla
Nếu bạn chỉ muốn đọc mã qua Pastie trực tuyến: http://pastie.org/2266764