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

Libgdx执行元Scened2d Draw方法不会绘制任何内容

Libgdx是一个开源的跨平台游戏开发框架,它提供了丰富的工具和库,用于开发2D和3D游戏。Scened2d是Libgdx中的一个场景图库,用于创建和管理2D场景。

在Libgdx中,绘制内容是通过在渲染循环中调用draw()方法来实现的。如果在调用元Scened2d的draw()方法时没有绘制任何内容,可能有以下几个可能的原因:

  1. 没有正确设置舞台(Stage):在使用Scened2d时,需要创建一个舞台,并将演员(Actor)添加到舞台中。确保已经正确设置了舞台,并将需要绘制的演员添加到舞台中。
  2. 演员没有正确设置位置和尺寸:每个演员都有一个位置和尺寸,用于确定其在舞台上的显示位置和大小。确保已经正确设置了演员的位置和尺寸,以便能够在绘制时正确显示。
  3. 演员没有正确设置外观(纹理、颜色等):演员可以使用纹理、颜色等外观属性来定义其显示样式。确保已经正确设置了演员的外观属性,以便能够在绘制时正确显示。
  4. 演员没有添加到舞台中:在绘制时,只有添加到舞台中的演员才会被绘制出来。确保已经将需要绘制的演员添加到舞台中。

如果以上步骤都正确执行,但仍然无法绘制内容,可能需要检查以下几个方面:

  • 确保Libgdx的版本和依赖库的版本是兼容的,可以尝试更新到最新版本。
  • 检查是否有其他代码或设置干扰了绘制过程,例如其他绘制方法的调用或渲染设置的错误。
  • 检查是否有错误的渲染顺序或混合模式设置,可能导致绘制内容不可见。

总结起来,要解决Libgdx执行元Scened2d的draw()方法不绘制任何内容的问题,需要确保正确设置舞台、演员的位置和尺寸、外观属性,并将演员添加到舞台中。如果问题仍然存在,可以考虑更新版本、检查其他代码干扰或渲染设置错误。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

这可能是2020大小厂问的最经典的Android面试题了——事件分发机制、View渲染过程

这里的mView对于Actiity来说就是PhoneWindow.DecorView,ViewRootImpl中的代码会创建一个Canvas对象,然后调用View的draw()方法执行具体的绘制工。...View默认不绘制任何内容,真正的绘制都在自己的子类中实现 View的绘制是借助onDraw()方法传入的Canvas类来进行的 区分View 动画和ViewGroup动画,前者是View自身的动画可以通过...()以提供不同的顺序 4. invalidate() 原理: invalidate方法请求重绘View树(也就是draw方法),如果View大小没有发生变化就不会调用layout过程,并且只绘制那些“需要重绘的...触发setEnabled方法。请求重新draw,但不会重新绘制任何View包括该调用者本身。 触发requestFocus方法。请求View树的draw过程,只绘制“需要重绘”的View。...requestLayout()方法会调用measure过程和layout过程,不会调用draw过程,也不会重新绘制任何View包括该调用者本身。

98620

Python图像处理库PIL的ImageDraw模块介绍详解

注意:图像内容将会被修改。...5、 Line 定义:draw.line(xy,options) 含义:在变量xy列表所表示的坐标之间画线。 坐标列表可以是任何包含2组[(x,y),…]或者数字[x,y,…]的序列对象。...7、 Point 定义:draw.point(xy,options) 含义:在给定的坐标点上画一些点。 坐标列表是包含2组[(x,y),…]或者数字[x,y,…]的任何序列对象。...坐标列表是包含2组[(x,y),…]或者数字[x,y,…]的任何序列对象。它最少包括3个坐标值。 变量options的fill给定多边形内部的颜色。...9、 Rectangle 定义:draw.rectangle(box,options) 含义:绘制一个长边形。 变量box是包含2组[(x,y),…]或者数字[x,y,…]的任何序列对象。

2.7K20

Android组件View绘制流程原理分析

draw绘制 完成measure和Layout后,ViewRootImpl中的代码会创建一个Canvas对象,然后调用View的draw()方法执行具体的绘制工。...这里写图片描述 draw原理总结 可以看见,绘制过程就是把View对象绘制到屏幕上,整个draw过程需要注意如下细节: 如果该View是一个ViewGroup,则需要递归绘制其所包含的所有子View。...View默认不会绘制任何内容,真正的绘制都需要自己在子类中实现。 View的绘制是借助onDraw方法传入的Canvas类来进行的。...view提供的API控制视图的方法 invalidate和postInvalidate方法源码分析 请求重新绘制视图,调用draw invalidate在主线程调用 postInvalidate是在非主线程调用...View的requestLayout方法 requestLayout()方法会调用measure过程和layout过程,不会调用draw过程,也不会重新绘制任何View包括该调用者本身。

1.1K40

HenCoder Android 自定义 View 1-5: 绘制顺序

)的绘制不会这几项全都包含,但必然逃不出这几项,并且一定会严格遵守这个顺序。...5.1 写在 super.draw() 的下面 由于 draw() 是总调度方法,所以如果把绘制代码写在 super.draw() 的下面,那么这段代码会在其他所有绘制完成之后再执行,也就是说,它的绘制内容会盖住其他的所有绘制内容...但这属于抬杠…… 5.2 写在 super.draw() 的上面 同理,由于 draw() 是总调度方法,所以如果把绘制代码写在 super.draw() 的上面,那么这段代码会在其他所有绘制之前被执行...注意 关于绘制方法,有两点需要注意一下: 出于效率的考虑,ViewGroup 默认会绕过 draw() 方法,换而直接执行 dispatchDraw(),以此来简化绘制流程。...所以如果你自定义了某个 ViewGroup 的子类(比如 LinearLayout)并且需要在它的除 dispatchDraw() 以外的任何一个绘制方法绘制内容,你可能会需要调用 View.setWillNotDraw

76930

Android高频面试专题 - 提升篇(二)View绘制流程

2、View的绘制流程 View的绘制,有三个步骤:测量(measure),布局(layout),绘制draw), 从DecorView自上而下遍历整个View树,注意是所有View执行完一个步骤后,...六个步骤:①、绘制视图的背景;②、保存画布的图层(Layer);③、绘制View的内容;④、绘制View子视图,如果没有就不用;⑤、还原图层(Layer);⑥、绘制滚动条。...: 1.如果flag不为forceLayout或者与上次测量规格(MeasureSpec)相比未改变,那么将不会进行重新测量(执行onMeasure方法),直接使用上次的测量值; 2.如果满足非强制测量的条件...10、onDraw() 和dispatchDraw()的区别 绘制View本身的内容,通过调用View.onDraw(canvas)函数实现 绘制自己的孩子通过dispatchDraw(canvas)实现...值得注意的是ViewGroup容器组件的绘制,当它没有背景时直接调用的是dispatchDraw()方法, 而绕过了draw()方法,当它有背景的时候就调用draw()方法,而draw()方法里包含了dispatchDraw

8.8K31

Android中View绘制流程详细介绍

View绘制基本流程 这里先给出Android系统View的绘制流程:依次执行View类里面的如下三个方法: measure(int ,int) :测量View的大小 layout(int ,int...,int ,int) :设置子View的位置 draw(Canvas) :绘制View内容到Canvas画布上 ?...()绘图过程 ViewRootImpl的performTraversals方法中,调用了mView的draw方法 mView.draw()开始绘制draw()方法实现的功能如下: 1、绘制该View的背景...说明:只是对View树重新布局layout过程包括measure()和layout()过程,不会调用draw()过程,但不会重新绘制 任何视图包括该调用者本身。...4、setEnabled()方法:请求重新draw(),但不会重新绘制任何视图包括该调用者本身。 总结 以上就是本文关于Android中View绘制流程详细介绍的全部内容,希望对大家有所帮助。

63720

粗谈绘制任务和绘制流程

所以,在手机上变出一只狗狗,或者变出任何一个东西都需要三个步骤: 测量(measure) 布局(layout) 绘画(draw绘制任务的来源 把视线拉回到成年人的世界。...方法 在addView方法中,创建了ViewRootImpl,执行了setView方法,在这里调用了requestLayout方法开始了View的绘制工作。...继续看draw(Canvas canvas)方法,注释还是比较清晰的,一共分为了六步: 1、绘制背景 2、保存图层信息 3、绘制内容(onDraw) 4、绘制children 5、绘制边缘 6、绘制装饰...而我们常用的onDraw就是用于绘制内容。...会依次执行performMeasure、performLayout、performDraw,但在performDraw方法中由于没有dirty区域,一般情况下是不会执行onDraw。

71020

Processing之矢量SVG用法一览

其他图像格式都是基于像素处理的,SVG 则是属于对图像的形状描述,所以它本质上是文本文件,体积较小,且不管放大多少倍都不会失真。 SVG 文件里面究竟是什么?...用最简单粗暴的话来说,文件内容记录的不是像素信息,而是图形的数据信息,比如 一个圆circle(圆心、半径) 一条线line(两个端点坐标) 一条折线polyline(折线点的坐标) 一个矩形rect...PShape 的 disableStyle() 方法用来关闭此信息,stroke() 和 fill() 等函数更改 SVG 颜色。使用 enableStyle() 方法重新打开文件的原始样式。...这些矢量图形文件可以缩放到任何大小并以非常高的分辨率输出。...需要注意的是,这样操作并不会打开任何显示窗口;当我们尝试创建远大于屏幕尺寸的大量 SVG 图像时,这种方式会很有用。

2.2K60

小窗播放视频的原理和实现(上)

当界面需要刷新时,窗口调用draw方法,向Surface请求canvas,执行绘画操作后再次提交给Surface完成屏幕显示。...和dispatchDraw方法中,参数canvas是建立在宿主窗口的Surface上的画布,因此在这块画布上绘制任何UI都是出现在宿主窗口的Surface上的。...Android N对SurfaceView进行了更改,它对SurfaceView自身和它的内容改变做了同步处理,播放视频时不会出现之前难看的黑色条。...四、TextureView 如下源码所示,TextureView继承于View,并重载了View的draw()方法,它与其它的View一样在View hierarchy中管理与绘制。...以致它在执行旋转时,画面不会跟随旋转;同时设置透明度或者执行透明值动画时,显示有问题。

10.6K180

Android视图绘制流程完全解析,带你一步步深入了解View(二)

ViewRoot中的代码会继续执行并创建出一个Canvas对象,然后调用View的draw()方法执行具体的绘制工作。...draw()方法内部的绘制过程总共可以分为六步,其中第二步和第五步在一般情况下很少用到,因此这里我们只分析简化后的绘制过程。...当然你也可以在代码中通过setBackgroundColor()、setBackgroundResource()等方法进行赋值。 接下来的第三步是在第34行执行的,这一步的作用是对视图的内容进行绘制。...其实也可以理解,因为每个视图的内容部分肯定都是各不相同的,这部分的功能交给子类来去实现也是理所当然的。 第三步完成之后紧接着会执行第四步,这一步的作用是对当前视图的所有子视图进行绘制。...绘制滚动条的代码逻辑也比较复杂,这里就不再贴出来了,因为我们的重点是第三步过程。 通过以上流程分析,相信大家已经知道,View是不会帮我们绘制内容部分的,因此需要每个视图根据想要展示的内容来自行绘制

1.4K80

游戏渲染优化

绑定到 GPU,加到批次中,冲刷,绘制,循环往复,直到遍历完整个显示列表。 这个过程是每帧都会执行的,值得一提的是这个遍历是深度优先的。...所有共享同一个 atlas 的不同部分小图的精灵不会导致批次被冲刷,因为他们背后的那张图片是同一张,共享一个 atlas 的精灵只会被绑定到一批中,然后一起绘制。 当然,这是有 GPU 限制的。...如果超过了这个大小限制,多数浏览器不会显示任何任何东西。 关于 draw call的一点说明 每次 draw call 所花费的时间,目前没有找到有效的探查的方法。...这个方法可以接受一个数组,这个数组的每一项应该是指向 Phaser.Cache 内的图片的,一旦调用了这个函数,这些图片就不会被分批,他们会在一个批次中被冲刷。...最后 以上便是我的分享内容了,其实了解了渲染的机制原理,再去做优化便是有理有据了。大家可以在自己的项目初期就考虑到绘制的性能,按照绘制顺序来组织显示对象。谢谢。

1.1K30

虾扯蛋:Android View动画 Animation不完全解析

app中某个界面形成的ViewTree通过遍历每个View对象执行draw方法(进而执行onDraw方法)来完成整个屏幕要绘制内容的计算,并且绘制内容会被缓存,之后在没有内容变化的情况下就向显示设备输出之前被缓存了的数据...invalidate方法就是用来通知整个ViewTree,当前View的内容过期,应该重新计算要绘制内容。...”的过程——然后每次回调时由我们来完成要绘制内容的计算。...调用栈 applyTransformation方法一次执行过程所涉及的调用栈信息如下,详细都不会陌生。对应SDK版本为4.4.4。...2.8 draw中根据其返回值决定是否继续调用invalidate触发下一次动画绘制。如果为true就继续执行invalidate方法触发下一次动画绘制,否则动画结束。

1.6K90

自定义View(九)-View的工作原理- View的layout()和draw()

绘制当前视图的内容绘制当前视图的子视图的内容绘制当前视图在滑动时的边框渐变效果。 绘制当前视图的滚动条。 在一般情况下2和5我们在自定义View时是不会去修改的。...因此,这段代码首先需要计算出当前视图的左、右、上以及下内边距的大小,以便得到边框所要绘制的区域。 3.绘制视图View的内容onDraw 第三步是调用onDraw()方法绘制内容。...发现是一个空的方法,也就是说所有View继承View的控件都要重写这个方法来实现对自己内容绘制。也很好理解,TextView绘制文本,ImageView绘制图片,控件他是什么属性就绘制什么样的内容。...View绘制6步分析.png 我们在来总结几个关于View绘制相关的知识点: 父类View绘制主要是绘制背景,边框渐变效果,进度条,View具体的内容绘制调用了onDraw方法,通过该方法把View内容绘制逻辑留给子类去实现....不管任何情况,每一个View视图都会绘制 scrollBars滚动条,且绘制滚动条的逻辑是在父类View中实现,子类无需自己实现滚动条的绘制

2.8K20

CoreAnimation 渲染流程CoreAnimation 渲染流程

Commit Transaction 此时app会通过CPU处理显示内容的前置计算,比如布局计算、图片解码等任务,接下来会进行详细的讲解。...Layout 构建视图,计算视图布局 Display 绘制视图层(下面提到的图层) ?...,就不会在通过GPU来完成bitmap的渲染,这里就涉及到一个概念:离屏渲染 Prepare 图片解码和转换 Commit 将处理好的图层打包发送给Decode Decode 打包好的图层被传输到...注意完成解码之后需要等待下一个 RunLoop 才会执行将具体操作绘制(OpenGL/Metal的操作)转发给下个流程Draw Calls。 以上三个步骤都是在CPU中完成的。...Draw Calls 解码完成后,Core Animation 会调用下层渲染框架(比如 OpenGL 或者 Metal)的方法进行顶点着色器、图元装配、光栅化、片着色器、混合等渲染工作,进而调用到

1.8K10

【设计模式自习室】享模式 Flyweight Pattern:减少对象数量

主要内容有: 该模式的介绍,包括: 引子、意图(大白话解释) 类图、时序图(理论规范) 该模式的代码示例:熟悉该模式的代码长什么样子 该模式的优缺点:模式不是万金油,不可以滥用模式 该模式的应用案例:...抽象享类Flyweight:绘制图像的抽象方法 public abstract class Shape { public abstract void draw(); } 具体享类ConcreteFlyweight...:例子中则是一种绘制某种图像(圆形)的具体实现类,里面的颜色则是一个可以共享的内部对象。...shape6.draw(); System.out.println("一共绘制了"+FlyweightFactory.getSum()+"中颜色的圆形"); }...享模式由于使用了外部状态,外部状态相对独立,不会影响到内部状态,所以享模式使得享对象能够在不同的环境被共享。

60230

几个简单的小例子手把手带你入门webgl

每次调用着色程序都会先执行顶点着色器,再执行着色器。...「片着色器运行的次数由图形有多少个片决定的」。 「逐片挑选」 通过模板测试和深度测试来确定片是否要显示,测试过程中会丢弃掉部分无用的片内容,然后生成可绘制的二维图像绘制并显示。...标记所有镜像中出现的片,最后只绘制有标记的内容。...「gl.STATIC_DRAW」 指定数据存储区的使用方法:缓存区的内容可能会经常使用,但是不会更改 「gl.DYNAMIC_DRAW」 表示 缓存区的内容经常使用,也会经常更改。...「gl.STREAM_DRAW」 表示缓冲区的内容可能不会经常使用 从缓冲中读取数据 「GLSL」着色程序的唯一输入是一个属性值「a_position」。

1.3K20

View 动画 Animation 运行原理解析

内容不会去分析动画的呈现原理是什么,诸如 Matrix 这类的原理是什么,因为我也还没搞懂。...draw.png 这个方法里主要做了上述六件事,大体上就是如果当前 View 需要绘制,就会去调用自己的 onDraw(),然后如果有子 View,就会调用dispatchDraw() 将绘制事件通知给子...,再通过 performTraversals() 遍历 View 树绘制时,该 View 的 draw 收到通知被调用时,会再次去调用 applyLegacyAnimation() 方法执行动画相关操作...从 DecorView 开始遍历,绘制流程在遍历时会调用到 View 的 draw() 方法,当该方法被调用时,如果 View 有绑定动画,那么会去调用applyLegacyAnimation(),这个方法是专门用来处理动画相关逻辑的...,实际位置并不会随动画的执行而移动,那么这点的原理是什么?

1.4K50
领券