Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android游戏开发-动态边界定义_Java_Android_Libgdx - Fatal编程技术网

Java Android游戏开发-动态边界定义

Java Android游戏开发-动态边界定义,java,android,libgdx,Java,Android,Libgdx,我目前正在使用libgdx库为android开发一个游戏。 假设我们有一只蜥蜴,现在用户通过在屏幕上滑动手指来创建路径,蜥蜴可以在上面行走。 问题是,如何限制蜥蜴只在手指接触屏幕的地方行走(在边界之间的路径上) 在这个例子中,我们可以看到一个块,块的边界是一个矩形,蜥蜴可以在上面行走 如何仅使用一个圆来创建一些类似的边界 以下是我到目前为止得到的信息: 我创建了一个相互重叠的双层位图。当用户触摸屏幕时,他会删除第一个位图,并在第一个位图下面显示第二个位图(仅删除用户触摸的部分) 下面是擦除第一个

我目前正在使用libgdx库为android开发一个游戏。 假设我们有一只蜥蜴,现在用户通过在屏幕上滑动手指来创建路径,蜥蜴可以在上面行走。 问题是,如何限制蜥蜴只在手指接触屏幕的地方行走(在边界之间的路径上)

在这个例子中,我们可以看到一个块,块的边界是一个矩形,蜥蜴可以在上面行走

如何仅使用一个圆来创建一些类似的边界

以下是我到目前为止得到的信息: 我创建了一个相互重叠的双层位图。当用户触摸屏幕时,他会删除第一个位图,并在第一个位图下面显示第二个位图(仅删除用户触摸的部分)

下面是擦除第一个位图的函数

  public void onDraw(Canvas canvas){
        super.onDraw(canvas);
        canvas.drawColor(Color.TRANSPARENT);
        canvas.drawBitmap(bgr, 0, 0, null);

        c2.drawCircle(X, Y, 40, pTouch);
        Paint new_paint = new Paint(/*Paint.ANTI_ALIAS_FLAG*/);
        new_paint.setXfermode(new PorterDuffXfermode(Mode.SRC_ATOP));
       //new_paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
        canvas.drawBitmap(overlay, 0, 0, new_paint);
    }
通知# 使用圆形删除位图

如果我能添加到移除位图的圆圈中,那就太好了。位图是bound的一个属性,蜥蜴可以在上面行走。 有什么想法吗?

我很早就分享了我的游戏。你可以在课堂上找到你需要的代码


p、 你还可以找到不同的LibGDX用法有趣的例子

你应该根据蜥蜴的位置更新边界的坐标

bounds.x=position.x; 
bounds.y=position.y;
这样你的边界就跟在蜥蜴后面了

另外,不要对边界使用recatangle,而是尝试使用

 sprite.getBoundingRectangle()
该方法给出图像的精确矩形边界,因此无需保持边界。
如果您使用AtlasSprite或Sprite作为您的图像。

格式化您的代码,以便我们可以阅读它,但是您能告诉我代码中更具体的部分,在那里您实际上实现了动态边界。@user1936506在游戏屏幕中的触地、触地和触地拖拉事件中,我们捕捉触地,并对控制器说。在更新()方法中的WorldController.java的下一次渲染中,我们使用来自GameScreen的信息移动世界元素。对于拖动逻辑检查,谢谢,但我不需要矩形边界,我需要的是不是直线的边界,它们是动态的,由用户创建。如果有类似的“块”,这将是理想的我只能使用圆形创建的类型。
 sprite.getBoundingRectangle()