Python,Pygame,Livewires - 如何进行平滑碰撞?

时间:2015-06-06 13:03:01

标签: python pygame collision livewires

import java.util.Scanner;

public class MyClass {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Please enter your 4-character password:");
        String password = input.next();

        for (int i = 0; i < password.length(); i++) {
            if (password.charAt(i) == 'B' || password.charAt(i) == 'b')
                if (password.charAt(i + 1) == 'O'
                        || password.charAt(i + 1) == 'o')
                    if (password.charAt(i + 2) == 'L'
                            || password.charAt(i + 2) == 'l')
                        if (password.charAt(i + 3) == 'T'
                                || password.charAt(i + 3) == 't') {

                            System.out.println("The password is valid");
                        }
                        else {
                            System.out.println("The password is invalid!");

                        }
        }
}

这两行是初学者的编码魔术。但是,我似乎在我的游戏中遇到了一堵砖墙。经过测试后,我无法找到一种方法来进行更多的碰撞精确!我的意思是,当两个精灵实际碰到它们被认为是重叠时,它就是当它们周围的框重叠时。那么我怎么能以某种方式使它成为我的精灵周围的透明区域如果碰到其他精灵就不算作碰撞?

1 个答案:

答案 0 :(得分:1)

最合乎逻辑的做法是每个精灵制作两个矩形,外部一个带边框,内部一个作为对象本身。

以64 x 64为例。你可以使它像62 x 62内盒,2像素边距,不应该太难实现。如果您希望附近的区域不可触及,请仅检查内部区域是否有碰撞。