"有污点的画布可能无法加载" WebGL纹理的跨域问题
我在过去的48小时内学到了很多关于跨域政策的知识,但显然还不够. 从/a>问题.我的HTML5游戏支持Facebook登录.我正在尝试下载人们朋友的个人资料图片.在游戏的HTML5版本中,我在Chrome中获得以下错误. 详细信息:" com.google.gwt.core.client.javascriptexception: (SecurityError)↵堆栈:错误:无法执行" TexImage2d" " WebGlrenderingContext":可能不会加载污染的画布. 据我了解,此错误之所以发生,是因为我试图从其他域中加载图像,但是可以使用访问contect-control-allow-holy-origin header进行处理,如在 this 问题. 我要从IS 下载的URL 150&高度= 150 查看Chrome中的"网络"选项卡,我可以看到这具有所需的访问控制 - 允许 - 原始标题,并以302重定向到新的URL响应.我猜该URL
0 2023-11-30
编程技术问答社区
根据视口和相机绘制纹理
我不设法绘制纹理,以便根据屏幕分辨率进行调整大小. 我正在使用ScreenViewPort(因为我希望我的字体光滑且没有失调). float w = Gdx.graphics.getWidth(); float h = Gdx.graphics.getHeight(); gameCam = new OrthographicCamera(2f * h/w, 2f); gamePort = new ScreenViewport(gameCam); 奇怪的是,无论摄像机的高度和宽度如何,结果都是相同的. 在调整大小的方法中,我尝试了很多事情: @Override public void resize(int width, int height) { gamePort.update(width, height, true); renderer.stage.getViewport().u
2 2023-11-19
编程技术问答社区
libGDX: 当分辨率较低时缩放纹理
我已经阅读了一些有关视口的文章,以通过不同的分辨率解决问题.但是在每个示例中,他们都使用质地较小的尺寸,而不是屏幕的分辨率.但是,当我的纹理大小为例如1920 x 1080而我的屏幕仅为800 x 400时,会发生什么? 是否有任何可以扩展质地的视口?我没有找到这个问题. 解决方案 看起来您是指缩放而不是压缩.压缩是一种降低文件大小的技术,例如.jpg在未压缩.bmp上进行的.因此,如果您的意思是缩放,那么这完全取决于您想要的内容.如果您有1920x1080的纹理,并且希望它完全适合800x400屏幕,则需要拉伸,因为1920x1080 = 16x9和800x400 = 2:1 = 16:8. 要拉伸您需要使用StretchViewport的图像.您将使用要显示的世界维度创建视口.因此,在这种情况下,1920x1080图像,或者也许是16x9,并将其与"世界单位"一起放在您的世界中.StretchViewport将确保视口将视图伸展到您使用的任何尺寸. 如果您希望它尽
0 2023-11-19
编程技术问答社区
LibGdx 理解视口并将其与Scene2D联系起来
每当我试图将视图设置为舞台时,我将其放入现场的演员就会融合而大.我想将游戏世界大小设置为50x100单元的矩形,然后根据该单元扩展所有内容(精灵,演员,标签,标签,字体).每个状态都不会形成一个提供渲染功能等的类状态. public abstract class State { public static final float GAME_SIZE_WIDTH = 50 ; public static final float GAME_SIZE_HEIGHT = 100 ; protected OrthographicCamera camera; protected GameStateManager gsm; protected Viewport viewport; public State(GameStateManager gsm) { this.gsm = gsm; camera = new
2 2023-11-19
编程技术问答社区
FitViewport不能正确缩放 Libgdx
我的问题是,我保留游戏世界的Fitviewport,以一种在X轴上看到黑色条的方式缩放,但是Y轴似乎不介意GDX.GRAPHICS.屏幕. 似乎正在发生的事情是,即使我将其传递给世界宽度和世界高度,它也以错误的方式适合自己,根本不介意y轴. playscreen构造函数: gameCamera = new OrthographicCamera(); gameCamera.setToOrtho(false); gameViewport = new FitViewport(MyGame.WORLD_WIDTH,MyGame.WORLD_HEIGHT,gameCamera); gameViewport.setScreenBounds(0,0,MyGame.WORLD_WIDTH,MyGame.WORLD_HEIGHT); mygame.java: public static final int WORLD_WIDTH = 600; public static final
2 2023-11-19
编程技术问答社区
LibGDX: 如何在FitViewport的黑条区域内绘图?
我得到具有虚拟宽度和虚拟高度.当屏幕获得另一个纵横比时,添加了我的虚拟分辨率黑条.我想在这些信箱中绘制一些东西. 我试图这样做,但是只有"我的虚拟分辨率"是"绘制的","外部"的对象是看不见的: : viewport = new FitViewport(VIRTUAL_WIDTH, VIRTUAL_HEIGHT, cam); viewport.apply(); batch.setProjectionMatrix(cam.combined); batch.begin(); batch.draw(texture, viewport.getRightGutterX(), 0); batch.end(); 如何在信箱内绘制? 解决方案 您需要第二个视口,可能具有与FitViewPort相同的虚拟尺寸的ExtendViewPort. //create: fitViewport = new FitViewport(VIRTUAL_WIDTH, VIRTUAL_HE
0 2023-11-19
编程技术问答社区
LIBGDX: 什么是 "视口"?
这篇文章与想要学习如何在libgdx和box2d之间正确渲染的较早文章有关.在继续之前,我必须很好地了解视口. 经过大量的代码/帖子读数后,我感到"视口"的含义是"观看LibGDX的游戏世界的相机镜头的矩形开口,在那里我可以将其移动到世界上以查看我想要的东西".但是,经过更多的阅读,我似乎远没有实际含义. 我已经阅读了libgdx Wiki,并在OpenGL文档中阅读了文档,这些文档似乎将视口解释为两种不同的内容. libgdx wiki: "视口是投影3D场景的屏幕上的矩形查看区域.它无非是将3维对象映射到2维平面." OpenGl: "视口指示场景被映射到的可用屏幕区域的形状." stackoverflow: " ...它在不同上下文中有几个定义...":'( 我尝试阅读数十篇论坛帖子和教程.但是,不幸的是,几乎每个人都跳入它似乎是一个原始的概念,每个人都理解并知道. 我知道这个完全基本的问题会给我带来很多热量.请不要火焰,我在问,因为
0 2023-11-19
编程技术问答社区
LibGdx-ViewPort的宽度和高度对某些设备不匹配
我正在为我的libgdx景观游戏使用一个视口. public static final int WORLD_WIDTH = 1280; public static final int WORLD_HEIGHT = 800; camera = new OrthographicCamera(); float aspectRatio = Constants.WORLD_WIDTH / Constants.WORLD_HEIGHT; ViewPort viewPort = new FillViewport(WORLD_WIDTH * aspectRatio,WORLD_HEIGHT, camera); 我在此宽度和高度方面都使用所有位置. 除了具有大于1300的屏幕分辨率的设备外,它在所有设备中都可以正常工作. 在分辨率大于1300的设备中,只能看到游戏的中间部分.我尝试使用拉伸的视口进行更大的分辨率设备,但它使所有游戏元素都伸展了. 如何使我的游戏在所有设备中都可以
4 2023-11-19
编程技术问答社区
相机如何在Libgdx中工作并与视口一起工作
如果您与libgdx一起工作,直到您来到摄像机和视口后,它才会不久.如果您第一次使用相机和视口工作,您会遇到一些有关它如何工作以及如何使用它的问题.所以: 如何在libgdx中使用相机?什么是视口宽度和高度? 什么是视口,我该如何使用它以及如何与相机一起使用? 解决方案 如何在libgdx中使用相机?什么是视口宽度和高度? 首先,重要的是,您必须知道摄像机与不使用像素的世界单元一起使用.世界单位不是常规单位.您自我可以定义一个世界单位.后来更多. 首先,我们创建OrthographicCamera a SpriteBatch和a Texture: private OrthographicCamera camera; private SpriteBatch batch; private Texture img; @Override public void create () { //We create a OrthographicCamera t
0 2023-11-19
编程技术问答社区
在LibGDX中对纹理进行视频渲染
我是libgdx的新手 我正在构建一个游戏,并且有一个动画背景,其中有大约10秒的动画(250帧aprox.),因为尝试为此(当然很大的背景)构建精灵表是毫无用处的文件是纹理的png序列,因此我可以在游戏中绘制动画背景? 解决方案 现在有一个视频播放的扩展名 gdx-video . 其他解决方案 如果您的想法是在背景上放置纹理并渲染图像并及时替换以提供动画框架,那么一个好的开始就是在这里查看:如何用OpenGL ES 2将纹理绘制到四Quad中? 其他解决方案 i是玩游戏的方式,libname是" indiespot-media-0.8.09.jar" 如何使用: 下载全ZIP proj根中的复制lib文件夹(ffmpeg将由lib使用路径开放./lib/ffmpeg/ffmpeg@os@ospostfix@) player = new MoviePlayer(videoFile); Texure playerTexture = new Textu
2 2023-11-18
编程技术问答社区
是否有办法将矢量图形纳入LibGDX开发?
我在 libgdx 中尚未找到任何东西. this post 表明是否有无痛的选择? 解决方案 目前(2013年中)在libgdx中似乎没有任何无痛的支持.首先,对于矢量图形,通常意味着 svg 实践. . "通用" SVG解决方案的一部分问题是使其与所有各种角落案例一起工作似乎是一个问题.但是,如果您只是想渲染自己的SVG对象,则可能有更简单的SVG子集处理和黑客入侵可能对您有用(即使它对每个人都不够通用). ). 此外,如果您愿意将bitmaps用作中介(您不需要直接将矢量图形渲染到屏幕上),则只需要找到一个基于Java的SVG Parser和Rasterizer(vs.使用libgdx或lwjgl后端). 请参阅使用libgdx 使用SVG文件.这里的建议是使用libgdx ShapeRenderer 用于简单的"可扩展"图形.它没有SVG,但对于您的用例可能是合理的. Google搜索播放了此 gpl'd java svg渲染器使用AWT后端
4 2023-11-17
编程技术问答社区
LibGDX 将Vector2与浮动值相乘
有没有一种方法可以将vector2乘以浮点值?我曾经在XNA中这样做以通过将归一化方向向量乘以速度浮动来计算运动.这几乎是我代码中的最后一步,使事情正常工作,但是对于接受浮点值的vector2似乎并不是一个乘法功能.我只能手动the tipply x和y,但我应该有一种我不知道的方法. 解决方案 来自: scl public Vector2 scl(float x, float y) Multiplies this vector by a scalar Returns: This vector for chaining 所以我想它称为"比例".如果要乘以整个向量,只需对x和y使用相同的值.
0 2023-11-17
编程技术问答社区
当以编程方式改变字体时,Libgdx皮肤不更新
首先,我将皮肤作为JSON文件加载.在文件中,我放了两个bitmapfont peffintions(" font"和" big-font"),并将它们几乎留为空白(我确实加载了一个虚拟" .fnt" .fnt"文件以防止解析器抱怨).然后,我使用以下代码生成了两个freetype字体: //start font generator FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/button-font.ttf")); FreeTypeFontGenerator.FreeTypeFontParameter parameters = new FreeTypeFontGenerator.FreeTypeFontParameter(); //default font (the sizes are arbitrary, since it did not work..
2 2023-11-11
编程技术问答社区
引用另一个类时,Libgdx屏幕出现NullPointerException
我点击了每个Google结果,我可以找到可能对我没有成功的帮助. 我已经构建了一个我想与完整UI实现的游戏.在我的游戏中,我为精灵提供了单独的课程,因此在制作屏幕的几个教程时,我尝试实现一些可以使用这些单独的类获取纹理,当前帧等的东西. . 我已经到了一个可以在两个屏幕之间切换的点班级: if (screen != null) screen.render(Gdx.graphics.getDeltaTime()); 所以这是我正在使用的代码(除去了类的任何实现的方法或其他默认的内容). tutorial.java: public class Tutorial extends Game { MainMenuScreen mainMenuScreen ; AnotherScreen anotherScreen; Player player ; @Override public void create() {
4 2023-11-11
编程技术问答社区
Strange libgdx TextField ui render error (IndexOutOfBoundsException)。
我偶尔会偶尔出现此错误时,当libgdx UI呈现: 09-25 17:50:26.779 31171-32670/se.company.app.android E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 1126 Process: se.company.app.android, PID: 31171 java.lang.IndexOutOfBoundsException: index can't be >= size: 36 >= 36 at com.badlogic.gdx.utils.FloatArray.get(FloatArray.java:104) at com.badlogic.gdx.scenes.scene2d.ui.TextField.calculateOffsets(TextField.java:214) at com.badlogic.gdx.scenes.scen
2 2023-11-11
编程技术问答社区
LibGdx 如何为HP Bar编程?
我目前正在尝试使用libgdx编程游戏.我有很多游戏的结构部分,现在我正在寻求将游戏返回给玩家的信息.我能想到的UI的最简单概念是HP棒和弹药计数器(用于子弹,箭头等).这将通过我的游戏屏幕级的舞台和演员来完成吗?也许在渲染课上?还是这是第二个摄像头(后台加载)? 我使用MAP和MAPRENDERER类支持的游戏屏幕类来实现我的显示. 我将寻求分开LIBGDX测试.让我脚下的任何信息都很好! 解决方案 我一段时间以前使用了此代码(目前未经测试).它仅使用彼此绘制的两个九点.您可以使用libgdx的默认皮肤(来自测试资源的Uiskin). public class HealthBar extends Actor { private NinePatchDrawable loadingBarBackground; private NinePatchDrawable loadingBar; public HealthBar() {
2 2023-11-11
编程技术问答社区
Libgdx Scene2d-Set actor ( TextField ) padding?
我一直在设置填充物或类似演员的东西.无法弄清楚.我想我必须在皮肤中添加一些东西? 我有这个textfield: textboxskin = new Skin(); textboxskin.add("textfieldback", new Texture("data/textfieldback.png")); textboxskin.add("cursor", new Texture("data/cursortextfield.png")); textboxskin.add("selection", new Texture("data/selection.png")); textboxskin.add("font", font); TextFieldStyle textfieldstyle = new TextFieldStyle(); textfieldstyle
4 2023-11-11
编程技术问答社区
在播放屏幕上绘制暂停屏幕作为一个层--LibGdx
在我的libgdx游戏中,我创建了暂停功能.在玩游戏时,如果我按暂停按钮,则显示带有简历按钮的单独屏幕. 我实际要做的是暂停屏幕应像一层一样出现在游戏播放屏幕上方. 喜欢以下游戏的屏幕截图: 我只能在游戏中使用单独的BG和ALL进行新的暂停屏幕. 我想显示暂停的游戏. 我如何才能像暂停屏幕的显示一样觉得这一层? 解决方案 在GamesCreen内部,您正在使用stage for UI(要导航的按钮).我很确定你是这样的. private uiStage; private boolean isPause; private Group pauseGroup; public void render(){ if(!isPause) UpdateGame(); DrawGame(); uiStage.act(); uiStage.draw(); } 每当您想暂停游戏时创建一个组,并在要恢复游戏时
2 2023-11-11
编程技术问答社区
LibGdx,如何处理触摸事件?
我是libgdx newbie,并试图使我的冰淇淋图像可触摸. 我喜欢知道如何设置输入程序(通过触摸屏幕). 我需要上另一堂课吗?当我尝试将输入程序实施到 我的PRAC1课程,Java不允许我在不更改类摘要的情况下实施.要具体,我喜欢每当用户触摸图像时做到 ,它计算触摸次数.这是我的代码,谢谢您的帮助. import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; public class Prac1 extends Applicati
0 2023-11-10
编程技术问答社区