首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LibGDX -Actor在彼此的顶部,避免两个绘制调用

LibGDX是一个开源的跨平台游戏开发框架,它提供了丰富的功能和工具,方便开发者进行游戏开发。其中,Actor是LibGDX中的一个重要概念,它代表了游戏场景中的可交互元素。

在LibGDX中,可以通过设置Actor的位置和大小来控制其在游戏场景中的显示位置和大小。当多个Actor重叠时,绘制调用的顺序决定了它们在屏幕上的显示顺序。默认情况下,后绘制的Actor会覆盖先绘制的Actor,即后绘制的Actor会在顶部显示。

为了避免两个Actor的绘制调用重叠,可以通过以下方法之一来实现:

  1. 设置绘制顺序:可以通过设置Actor的z轴坐标来控制绘制顺序。z轴坐标越大,绘制优先级越高,即在顶部显示。可以使用Actor的setZIndex(int index)方法来设置z轴坐标。
  2. 使用Group:可以将相关的Actor放置在一个Group中,然后通过设置Group的绘制顺序来控制其中的Actor的显示顺序。可以使用Group的addActor(Actor actor)方法将Actor添加到Group中,使用Group的setZIndex(int index)方法来设置Group的绘制顺序。
  3. 使用Stage:在LibGDX中,游戏场景通常由一个Stage管理。Stage会自动管理Actor的绘制顺序,后添加的Actor会在顶部显示。因此,可以通过控制Actor添加到Stage的顺序来控制它们的显示顺序。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

第六章:常用控件日常科普标签(Lable)图片(Image)按钮(Button)

日常科普 1.控件是用于开发构建用户界面(UI)控件,帮助完成开发中视窗,文本框,按钮,下拉菜单,等界面元素 2.在LibGdx中,提供的控件有 按钮,勾选框,下拉框,图片,输入框,列表,滑动面板,滑条...,分割面板 3.LibGdx中,控件需要样式(Style)才能完成控件的初始化,比如:(LabelStyle,ButtonStyle)等 标签(Lable) val label = Label (CharSequence...labelStyle = Label.LabelStyle(bitmapFont, bitmapFont.color) label = Label("蕾哥哥", labelStyle) 图片(Image) 1.定义:在一个小范围内...,显示和拉伸一个纹理,本身是一个actor,可以拉伸,旋转,和设置起点,可用于承装纹理图片 2.使用:Image(Texture tex) Image(TextureRegion region) val...4.Drawable:在一直的一个给定的矩形内,绘制本身。它提供了边框的大小和最小尺寸,通过它自带的方法可以确定大小和位置。(其实就是为了Image提供一个矩形区域) 运行图: ?

84920

libgdx 环境搭建

3) 在自己的项目myLibgdx,添加完开发包jar和源码包jar后,其效果如下: ?...逻辑流程的功能描述: 方法名 功能描述 create() 应用创建时,被调用且只调用一次 resize(int width, int height) 游戏屏幕每次重置大小且不在暂停状态时调用此方法,在create...游戏逻辑更新常在此方法中,即循环刷新绘制游戏的逻辑画面 pause() 在android中当Home键按下或重新进入程序时调用,这是一个保存游戏状态的好时刻,resume()不一定会被调用 resume...() 这个方法仅在android中调用,当应用从pause状态重新获取焦点时resume dispose() 当应用销毁destroyed时,调用此方法,在pause()之后 libgdx 应用开发的逻辑流程图...所以实际的情况是,我们在游戏中的大部分绘图工作都是放在这个页面进行的 参考推荐: libgdx 概述 The Life-Cycle(libgdx wiki) libgdx游戏引擎教程 ApplicationListener

1.1K20
  • 第十二章:游戏对话框WindowStyleWindow控件

    WindowStyle LibGdx提供给我们一个专门处理游戏弹框的控件 - Window控件 API定义:一个构造window控件模板样式,用确定window控件的表现形式, 特点:1.AlertDialog...第一个参数:传入一个书写标题的BitMapFont - 2.第二个参数:传入一个颜色Color - 3.传入一个Drawable类型的参数。...Window控件 API定义:继承于Group,一个可拖拽的对话框,顶部可以设置弹出框的标题 功能用法:主需要传入两个参数 Window (String title, WindowStyle style...) 常用方法: 1.draw (SpriteBatch batch, float parentAlpha) 绘制窗口的方法,第一个参数是画笔,第二个参数是透明度 0.0 - 1.0 之间 2.public...void setModal (boolean isModal) : 设置对话框是否总是显示在最前端 3.public void setMovable (boolean isMovable) 设置对话框是否可以移动

    44220

    libgdx 图形绘制

    而绘图的大小和位置由几何描述和OpenGL的viewport的设置共同决定。当然大部分的游戏都会让viewport的大小和屏幕一致,这就意味使用像素更容易让纹理绘制在合适的大小和位置。...绘制一个矩形的几何图形是非常常见的,同样让同一个纹理在不同位置以不同大小位置也是非常常见的,比如漫天的弹幕。但是每次都传递每个形状到GPU进行绘制的效率是较低的。...desktop是root根目录 因此,用Gdx.files.internal("image1.jpg")获取的图片,需要保存在assets文件夹下 读取图片后,调用batch.draw(texture,...("image03.png")); 然后,在render() 中渲染绘制图片 batch.draw(texture, 10, 10); // 绘制region 最后,在dispose中销毁资源 texture.dispose...(); batch.dispose(); 参考推荐: android游戏开发框架libgdx 图形绘制

    1.6K30

    【UML 建模】UML入门 之 交互图 -- 时序图 协作图详解

    处于顶部 : 如果对象的位置在时序图顶部, 说明在交互开始的时候对象就已经存在了;  -- 不在顶部 : 如果对象的位置不在顶部, 那么对象在交互过程中创建的; (2) 生命线(Lifeline)...: 时序图中的消息强调顺序, 协作图中的消息强调交换消息的对象间的关系; 消息类型 : --   : 两个对象间绘制消息; --   : 两个对象之间的过程调用; --   : 两个对象之间的异步消息...; --   : 过程调用中返回的消息; --   : 绘制反身消息; 3....对象的创建和撤销 对象位置 :  -- 顶部 : 时序图中对象的默认位置是在时序图顶部, 这表明对象在交互开始之间就已经存在; -- 中间 : 如果对象在时序图中间部分, 说明对象时在交互过程中创建的;...链的表示 : 链的符号 和 对象图中 链所用的符号是一样的, 用来连接两个类角色的实线; --   : 创建对象之间的通信路径; --   : 显示对象可以调用自己的属性; --   : 在两个对象之间

    4.9K20

    JavaScript 编程精解 中文第三版 十六、项目:平台游戏

    这两个属性同时决定了硬币的实际位置(存储在pos属性中)。...因为我们沿着圆移动,因此y坐标会以平滑的波浪形式来回移动,正弦函数在实现波浪形移动中非常实用。 为了避免出现所有硬币同时上下移动,每个硬币的初始阶段都是随机的。由Math.sin产生的波长是2π。...我尽量将程序的体积控制在较小的范围之内,避免读者因为代码过于庞大而走神。 其次,游戏中的大量元素是紧密耦合在一起的,如果其中一个元素行为改变,其他的元素很有可能也会发生变化。...当玩家收集完最后一枚硬币时,我们添加两个模糊的白色阴影来创建白色的光环效果,其中一个在左上角,一个在右上角。 我们无法假定关卡总是符合视口尺寸,它是我们在其中绘制游戏的元素。...当浏览器标签页或窗口隐藏时,requestAnimationFrame调用会自动暂停,并在标签页或窗口再次显示时重新开始绘制动画。在本例中,lastTime和time之差是隐藏页面的整个时间。

    1.8K10

    Actor模型和CSP模型的区别

    首先这两者都是并发模型的解决方案,我们看看Actor和Channel这两个方案的不同: Actor模型   在Actor模型中,主角是Actor,类似一种worker,Actor彼此之间直接发送消息,不需要经过什么中介...Actor模型描述了一组为了避免并发编程的常见问题的公理:   1.所有Actor状态是Actor本地的,外部无法访问。   2.Actor必须只有通过消息传递进行通信。     ...Channel模型   Channel模型中,worker之间不直接彼此联系,而是通过不同channel进行消息发布和侦听。...主要的区别在于:在CSP消息交换是同步的(即两个流程的执行"接触点"的,在此他们交换消息),而Actor模型是完全解耦的,可以在任意的时间将消息发送给任何未经证实的接受者。...由于Actor享有更大的相互独立,因为他可以根据自己的状态选择处理哪个传入消息。自主性更大些。   在Go语言中为了不堵塞流程,程序员必须检查不同的传入消息,以便预见确保正确的顺序。

    1.7K10

    Akka 指南 之「为什么现代系统需要新的编程模型?」

    为什么现代系统需要新的编程模型? 几十年前,卡尔·休伊特(Carl Hewitt)提出了 Actor 模型,将其作为在高性能网络中处理并行任务的一种方法——当时还没有这种环境。...调用方希望顺序是完整的,并且在查询树中某个数据块时,他们需要能够依赖于这个约束。 当我们分析 OOP 运行时行为时,有时会绘制一个消息序列图,显示方法调用的交互。例如: ?...如上图所示,在这一部分中,两个线程进入同一个方法。不幸的是,对象的封装模型不能保证该部分中发生的事情。两个调用的指令可以以任意方式交错,这样就消除了在两个线程之间没有某种协调的情况下保持不变的希望。...总结: 不再有真正的共享内存,CPU 核心像网络上的计算机一样,将数据块(缓存线)显式地传递给彼此。CPU 间通信和网络通信的共性比许多实现方式都要大。...实际上,由于异常到达顶部,因此会展开所有调用栈,任务状态完全丢失!我们丢失了一条消息,尽管这是本地通信,不涉及网络。

    77220

    Python创作《穿越大峡谷》游戏

    穿越大峡谷 实现卷轴背景 在游戏中,月月鸟向前飞行的效果,是通过不断左移的背景图来实现的。为了能够让月月鸟不断向前飞行,需要通过卷轴来实现无限延长的背景。 卷轴效果 1. 创建两个背景角色 2....交替拼接背景角色 创建两个背景角色 角色名 = Actor(‘造型名称’) 创建好角色后,需要设置角色的初始位置坐标。 角色坐标,就是角色中心点的位置。...角色名.draw() 创建好角色后,需要使用draw()函数绘制角色。 背景角色向左移动 程序运行时,每秒钟会调用60次update()函数。...250 #绘制背景角色 def draw(): bg1.draw() bg2.draw() #在update()函数中,减小角色的x坐标,实现不断左移的效果 def update():....x = 1600 b2.y = 75 b3 = Actor('尖刺') b3.x = 2100 b3.y = 400 #将3个障碍物角色存放在列表中,简化绘制和移动的代码 blocks = [b1

    59010

    一文带你领略并发编程的内功心法

    并发模型和分布式系统很相似 并发模型其实和分布式系统模型非常相似,在并发模型中是线程彼此进行通信,而在分布式系统模型中是 进程 彼此进行通信。然而本质上,进程和线程也非常相似。...认识两个状态 并发模型的一个重要的方面是,线程是否应该共享状态,是具有共享状态还是独立状态。共享状态也就意味着在不同线程之间共享某些状态 状态其实就是数据,比如一个或者多个对象。...线程需要避免 竞态条件,死锁 和许多其他共享状态造成的并发问题。 多线程在访问共享数据时,会丢失并发性,因为操作系统要保证只有一个线程能够访问数据,这会导致共享数据的争用和抢占。...Actor 模型 在 Actor 模型中,每一个 Actor 其实就是一个 Worker, 每一个 Actor 都能够处理任务。...消息的传递就相当于是函数的调用。传递给函数的参数都会被拷贝,因此在函数之外的任何实体都无法操纵函数内的数据。这使得函数执行类似于原子操作。每个函数调用都可以独立于任何其他函数调用执行。

    49810

    UE4的执行流程和CPU优化

    平时在写代码时候,我们也可能更多的只是关注Actor,Component,Level,World以及游戏逻辑怎么写,但很少去研究他们都是怎样运行的,但是如果不了解这些Actor,Component,Level...为了解决这个问题,我整个梳理了一下UE4的大流程,画了一张图,关键点都用颜色标记了出来,让各个环节能够一目了然,这样就可以围绕着这个执行流程,来介绍一些常见的问题和性能优化手段,避免大家写出糟糕的代码。...我们可以看到,引擎启动的时候,会先初始化各个模块,然后就进入了Tick,在Tick中会先执行游戏逻辑,调用World的Tick,然后Tick所有注册需要Tick的Actor和Component,这里会根据注册的阶段分别在不同时期...所以如果能修改引擎代码的话,可以考虑在绘制开始阶段,先在场景的RT上UI对应的位置写上深度(需要额外处理半透明)或者建一些对应轮廓面片放在镜头近平面上挡住场景对应区域,这样就可以跳过这些像素的绘制。...我们知道绘制这里游戏线程做的事情很少,基本上会阻塞在最后FrameSync,当你有一些很重的工作,但是又和渲染无关,比如网络游戏的解包或其他比较重的逻辑,就可以考虑在绘制这一阶段期间开启一个单独的线程,

    2.1K40

    Python创意游戏《勇闯BUBU星》

    创建角色:Actor() 格式 角色名 = Actor(图片名) py player = Actor('小王子') 使用Actor()首字母A要大写,创建出的角色要存储在一个变量中,比如player。...player.draw() pgzrun.go() 总结 Pygame中使用Actor()创建角色,括号中的参数为图片名,数据类型是字符串; 将角色存储在一个变量中,之后可以使用这个变量操作角色...窗口绘制:draw() 程序会自动调用draw()函数, 只需要定义函数,不需要写调用函数的代码。...update()更新状态 update是“更新”的意思,游戏运行时,会不断地重复调用update()函数,写在函数中的代码会不断地重复执行。...更新状态:update() 程序会以60次/秒的速度不停地调用update()函数,函数中的代码会不断地重复执行,直到游戏结束。

    1.4K20

    Android游戏引擎_2d游戏引擎

    大家好,又见面了,我是你们的朋友全栈君。 Android 游戏引擎汇总 1.AndEngine 简介:AndEngine 基于libGDX框架开发,使用OpenGL ES进行图形绘制。...LGame 简介:是一款国人开发的Java游戏引擎,有Android及PC(J2SE)两个开发版本,目前最高版本同为0.2.6(31/07/10)。...========================以下是两种3d游戏引擎=============== Libgdx和jpct可以制作不太高效的3D游戏 1.Libgdx 简介:Libgdx是一款基于...建议i:AndEngine是比较流行的引擎,底层的openGl封装的比较好,我的一些在北京的同学的公司多在用这个开发。还有一些在使用cocos2d-android,有点是成熟的引擎,例子多,教程多。...并且近几年移动互联网发展速度太快,那么使用跨平台的引擎,在以后的移植和团队合作方面会有很大的优势。

    2.3K10

    JavaScript 编程精解 中文第三版 十七、在画布上绘图

    两个控制点相对两个端点的距离越远,曲线就会越向这个方向凸出。 由于我们没有明确的方法,来找出我们希望绘制图形所对应的控制点,所以这种曲线还是很难操控。...arc与其他绘制路径的方法一样,会自动连接到上一个路径上。你可以调用moveTo或者开启一个新的路径来避免这种情况。...诚然,我们可以绘制另一组精灵,但我们也可以使用另一种方式在画布上绘图。 我们可以调用scale方法来缩放之后绘制的任何元素。...为了避免这个问题,我们还需要调整传递给drawImage的坐标,将绘制图形的x坐标改为 –50 而不是 0。另一个解决方案是在缩放时调整坐标轴,这样代码就不需要知道整个画布的缩放的改变。...这两个方法维护变换状态堆栈。save方法将当前状态压到堆栈中,restore方法将堆栈顶部的状态弹出,并将该状态作为当前context对象的状态。

    3.8K30

    利用Actor实现管道过滤器模式

    第二部分则结合两个案例来讲解如何在AKKA中实现响应式编程。第三部分则是这个主题的扩展,在介绍Reactive Manifesto的同时,介绍进行响应式编程更为主流的ReactiveX框架。...本文是第二部分的第一个案例。 《剖析响应式编程的本质》从Actor模型与响应式编程中找到彼此相配的特征;然而空口无凭,没有一点真凭实据,凭什么他们能立下海誓山盟、比翼双飞呢?...在AKKA中,Actor之间可以通过ActorRef引用对象建立关联,这种抽象层面的弱依赖使得Actor彼此之间能够很好地解耦。...为了避免隐形依赖,我们可以将管道传递的数据定义为一个通用的消息类型,所有注册管道的过滤器处理的都是相同的流。...Udi Dahan在CQRS架构中曾经提出“自治组件”的概念,那么在Actor模型中,我们也应该尽可能做到让每个Actor对象自治。

    1.1K40

    UML时序图(Sequence Diagram)学习笔记

    时序图的元素 我们在画时序图时会涉及7种元素:角色(Actor)、对象(Object)、生命线(LifeLine)、控制焦点(Activation)、消息(Message)、自关联消息、组合片段。...其中前6种是比较常用和重要的元素,剩余的一种组合片段元素不是很常用,但是比较复杂。我们先介绍前6种元素,在单独介绍组合片段元素。 角色(Actor) 系统角色,可以是人或者其他系统,子系统。...对象(Object) 对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种: 1 对象名和类名。...返回消息(Return Message) 返回消息表示从过程调用返回。以小于号+虚线表示。 自关联消息 表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。...在微信支付例子中省略列商家打开微信、输入收款金额等交互消息,这些不是我们需要体现的,我们主要体现的是用户的扫码支付流程。 所谓识别交互语境就是要知道自己绘制时序图的前提和背景。

    11.9K50

    Akka 指南 之「第 1 部分: Actor 的体系结构」

    我们称之为顶级 Actor,尽管实际上它只是在用户定义的层次结构的顶部。你的ActorSystem中通常只有一个(或极少数)顶级 Actor。...每当一个 Actor 被停止时,它的所有子 Actor 也会被递归地停止。这种行为大大简化了资源清理,并有助于避免诸如由打开的套接字和文件引起的资源泄漏。...preStart()在 Actor 启动之后但在处理其第一条消息之前调用。 postStop()在 Actor 停止之前调用,在此时之后将不再处理任何消息。...这个顺序是严格的,在调用父 Actor 的postStop()钩子之前,会先调用所有子 Actor 的postStop()钩子。...实际上,在重新启动时,调用的是preRestart()和postRestart()方法,但如果不重写这两个方法,则默认分别委托给postStop()和preStart()。

    1K20

    为虚幻引擎开发者准备的Unity指南

    :序列化字段 在类主体的顶部,脚本为组件定义了两个字符串变量,以便在其启动和被命中时进行记录。...这将作为变量在 Inspector 中显示时的默认值。 6.4 事件方法 下面是 Unity 在响应特定事件时将调用的函数: 一旦组件的游戏对象在场景中被激活,就会调用 Start()。...这类似于在 Unreal 中将 CanActorEverTick 设置为false,有助于避免每帧不必要的调用。 6.5 UObject 的等价物在哪里?...销毁和禁用对象 两个引擎都有垃圾回收功能,可以清理未使用的引用。在 Unreal 中,一些对象类型还具有显式的 Destroy 函数,用于标记要删除的对象。...在两种引擎中,频繁调用在世界中查找对象的函数都可能会产生很高的性能成本,因此不应在每帧都被调用的代码中使用。

    37710
    领券