Articles of Java

AnAngine onAreaTouched TouchEvent不工作 – ACTION_OUTSIDE和ACTION_CANCEL

我有一个简单的问题。 我在屏幕上有一个button。 我想isActionDown按下button,isActionUp再次按下button,使我的角色跳跃。 但问题是,如果我按下button并将其拖离,button保持按下。 如果用户拖着它离开,我想要再按一次button。 我如何创建所需的影响? isActionCancel似乎没有办法。 private void addButton(){ goB = new AnimatedSprite(240, 364, ResourceManager.getInstance().go_region, vbom){ @Override public boolean onAreaTouched(final TouchEvent event, final float x, final float y){ if (event.isActionDown()){ goB.animate(new long[]{ 250 }, new int[] { 1 }, true); /*if(event.isActionCancel()){ goB.animate(new long[]{ 250 }, new int[] { 0 }, true); }*/ } if […]

谷歌游戏服务是否需要用户拥有g +帐号才能进入大堂?

我一直在阅读有关多人游戏大厅/房间的 Google游戏服务(GGS) API,如果用户需要使用Google+帐户(我不需要)login,文档并不十分清楚。 networkingGGS SDK提到这一点: 将loginbutton添加到页面的最简单方法是实现基于HTML的loginbutton。 有关实施详情,请参阅Google+login文档中的在您的页面上添加HTMLloginbutton。 我正在寻找的是一个简单的方法(服务或图书馆)将匿名用户连接在一起(配对)。 我的应用程序在Java中,也需要Java兼容的API。 Google游戏服务能否满足账单要求,还是应该继续寻找?

为什么OpenGL会忽略GL_DEPTH_TEST设置?

我不知道为什么我的一些对象被渲染在彼此之上。 我有深度testing。 glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); 我是否需要按照距离相机最近的顺序进行绘制? (我以为OpenGL是为你做的。) 设置代码: private void setUpStates() { glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glLightModel(GL_LIGHT_MODEL_AMBIENT, BufferTools.asFlippedFloatBuffer(new float[]{0, 0f, 0f, 1f})); glLight(GL_LIGHT0, GL_CONSTANT_ATTENUATION,BufferTools.asFlippedFloatBuffer(new float[]{1, 1, 1, 1}) ); glEnable(GL_COLOR_MATERIAL); glColorMaterial(GL_FRONT, GL_DIFFUSE); glMaterialf(GL_FRONT, GL_SHININESS, 50f); camera.applyOptimalStates(); glEnable(GL_CULL_FACE); glCullFace(GL_BACK); glEnable(GL_TEXTURE_2D); glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_COLOR_ARRAY); glEnableClientState(GL_NORMAL_ARRAY); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); } 渲染代码: private void render() { // […]

通过在角落转动来做广场步行

我在制作一个小游戏的初期,在获得角色基本动作方面遇到一些问题。 我的角色是一个可以通过在角落转动而移动的正方形。 用户通过按下button来select要旋转的角落。 下面是我现在想到的(错误的)代码(Java和slick2d): // square is an org.newdawn.slick.Image and is rendered by calling square.draw() @Override public void update(GameContainer container, int delta) throws SlickException { Input input = container.getInput(); if (input.isKeyDown(Input.KEY_W)) { square.setCenterOfRotation(0, 0); square.setRotation(square.getRotation() + 1); } else if (input.isKeyDown(Input.KEY_E)) { square.setCenterOfRotation(square.getWidth(), 0); square.setRotation(square.getRotation() + 1); } else if (input.isKeyDown(Input.KEY_S)) { square.setCenterOfRotation(0, square.getHeight()); square.setRotation(square.getRotation() […]

如何在LIBGDX游戏中重叠之后移除游戏对象

如果英雄与星星重叠,我的游戏中会有金色星星给予游戏英雄分数。 我想要的是删除星星,一旦它与英雄对象重叠。 我通过检查这个代码的重叠来给分 public void scorecount(Hero myhero){ if (!star.isScored() && Intersector.overlaps(myhero.getBoundingBalloon(), star.getStarCircle())) { addScore(1); // give one plus always star.setScored(true); AssetLoader.coin.play(); } 现在,一旦我给分和setScore为真,我想删除星。 我怎样才能做到这一点? 我尝试了setvisible方法,但是我不知道如何使用它。 因为只是调用star.setVisible()要求在星级中创建这个方法。 然后在星级我不知道这个方法内应该给什么。

我如何渲染JBox2D ParticleGroup?

我想使用OpenGL从JBox2d渲染一个ParticleGroup 。 我已经设法定义了一个粒子组区域,但是我不确定如何绘制单个粒子。 以下是我如何创建ParticleGroup : m_world.setParticleRadius(0.15f); m_world.setParticleDamping(0.2f); PolygonShape shape = new PolygonShape(); shape.setAsBox(8, 10, new Vec2(-12, 10.1f), 0); ParticleGroupDef pd = new ParticleGroupDef(); pd.shape = shape; m_world.createParticleGroup(pd); 这是我如何画一个正常的Square (我不知道如何适用于粒子群): public void draw(GLAutoDrawable gLDrawable, Vec3 position, float angle){ gLDrawable.getGL().getGL2().glEnable(GL.GL_BLEND); gLDrawable.getGL().getGL2().glEnable(GL.GL_TEXTURE_2D); gLDrawable.getGL().getGL2().glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA); gLDrawable.getGL().getGL2().glBindTexture(GL2.GL_TEXTURE_2D, TextureFactory.getTextureIndex(TextureCollection.valueOf(getTextureSelection()))); gLDrawable.getGL().getGL2().glPushMatrix(); gLDrawable.getGL().getGL2().glTranslatef(position.x * getP2M(), position.y * getP2M(), position.z); gLDrawable.getGL().getGL2().glRotated(Math.toDegrees(angle), 0, 0, 1); […]

与游戏勾号同步

我正在开发一款多人游戏,目前正在设置。 它接受来自客户端的数据包,并执行所需的任何处理。 还有一个主要的游戏勾号是这样设置的: for every online player update every player in the region for every online player reset flags 我看到可能发生的问题是,因为它在运行中处理数据包,它可能会修改更新和标志重置之间的某些内容,这可能导致它完全忽略某些内容。 我不认为有可能使用实际的同步块进行同步,因为它不能同时更新和重置标志 – 它需要在更新每个玩家之后重置标志。 我看到的唯一的解决scheme是不在飞行中处理数据包,并在主循环中执行,但这可能会损害性能。 这是最好的解决scheme,还是有另一种select,我不考虑? 谢谢

为什么这个冲动不会影响身体?

我刚刚开始使用Box2d,我试图将冲动应用于一个圆圈,但没有真正发生。 首先我定义ball : BodyDef bodyDef = new BodyDef(); bodyDef.type = BodyDef.BodyType.DynamicBody; bodyDef.position.set(camera.viewportWidth / 2, camera.viewportHeight / 2); ball = world.createBody(bodyDef); CircleShape dynamicCircle = new CircleShape(); dynamicCircle.setRadius(50f); FixtureDef fixtureDef = new FixtureDef(); fixtureDef.shape = dynamicCircle; fixtureDef.density = 0.5f; fixtureDef.friction = 0.4f; fixtureDef.restitution = 0.6f; ball.createFixture(fixtureDef); dynamicCircle.dispose(); 然后我从我的inputprocessor里面调用这一行 public boolean touchDown(int screenX, int screenY, int pointer, int […]

我怎样才能调整我的代码,使对象以一定的速度开始下降,然后提高速度?

我在LibGDX制作一个游戏,玩家躲避坠落的物体。 目前,我的代码使每个对象(在这种情况下是“DROPS”)以随机速度下降。 我想知道是否有人可以建议如何修改这个代码,使所有的对象以相同的速度开始下降,并且随着时间的推移这个值会增加。 这是我现在的代码: for (int i = 0; i < amount; i++) { float x = MathUtils.random(0, ManicMeltdowns.WIDTH – TextureManager.DROPS.getWidth()); float y = MathUtils.random(ManicMeltdowns.HEIGHT, ManicMeltdowns.HEIGHT * 3); float speed = MathUtils.random(2, 5); addEntity(new Drops(new Vector2 (x, y), new Vector2(0, -speed))); } 我假设你必须调整“浮动速度”,但我不知道如何。 非常感谢。 – 编辑 – 这是滴类: public class Drops extends Entity{ public Drops(Vector2 […]

如何使剑摆动的效果

我正在使用Slick引擎进行一个2d的java游戏,我总是想知道如何在用剑击打的时候产生挥杆效果? 如何编码这样的东西什么是在游戏空心恐惧? 来自YouTube的示例 ( 图片来源 )