首页
学习
活动
专区
工具
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提供一个矩形区域) 运行图: ?

83920

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) 设置对话框是否可以移动

    43920

    libgdx 图形绘制

    而绘图大小和位置由几何描述和OpenGLviewport设置共同决定。当然大部分游戏都会让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.2K20

    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 间通信和网络通信共性比许多实现方式都要大。...实际上,由于异常到达顶部,因此会展开所有调用栈,任务状态完全丢失!我们丢失了一条消息,尽管这是本地通信,不涉及网络。

    76420

    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

    57710

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

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

    49410

    UE4执行流程和CPU优化

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

    2K40

    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

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

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

    3.8K30

    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

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

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

    1.1K40

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

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

    10.2K50

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

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

    1K20
    领券