Tag: 精灵

从透明png精灵制作多边形的算法

说,我有一个游戏对象的精灵,它是一个透明的png图像。 我想从这个图像创建一个包含我的游戏对象的多边形。 我很确定它有一个现有的算法,但我还没有找到。 我希望有类似的东西: public static Polygon getPolygon(BufferedImage sprite) { // get coordinates of all points for polygon return polygon; }

Java动画动画(精灵)

您好我有一个问题:当我运行此代码时,我得到这个: 在一些java论坛上他们说我需要添加Graphics2DObject.clearRect(x1,y1,x2,y2); (其中`x1和y1是图像的坐标,x2 y2是图像的宽度高度。)当我将它添加到代码中时我得到: 代码(附加function): 主要: import java.awt.*; import javax.swing.*; public class Main { public static void main(String []args){ Main b = new Main(); b.run(); } private Sprite sprite; private Animation a; private ScreenManager s; public double sk = 0; private static final DisplayMode modes1[] = { new DisplayMode(800, 600, 32, DisplayMode.REFRESH_RATE_UNKNOWN), }; //load images […]

如何将Sprite纹理更改为Animation

我有一个Sprite每秒产生一次,我不想做的是将精灵纹理更改为动画,并且当它被触摸时它将恢复到正常纹理。 public void draw(SpriteBatch batch){ enemyIterator=enemies.iterator(); //arraylist iterator boolean touched=Gdx.input.justTouched(); float touchX=Gdx.input.getX(); //rendering and making the current sprite move while(enemyIterator.hasNext()){ Sprite sprite=enemyIterator.next(); sprite.draw(batch); sprite.translateY(deltaTime*movement); //detecting if the screen is touched and if the inputX is inside of the sprite. if(touched==true && touchX > sprite.getX() && touchX < sprite.getX()+sprite.getWidth()){ enemyIterator.remove(); //removing the sprite when touched. Pools.free(sprite); […]

libgdx在受伤时改变精灵色

我正在使用libgdx做一个小平台游戏,我想让敌人用红色闪烁,而玩家用武器伤害他们。 我已经尝试改变精灵颜色和精灵批量颜色没有成功,它只用其中一个纹理融化新颜色。 sprite.setColor(Color.RED); spriteBatch.draw(sprite); 我想要达到的效果是: 从精灵纹理变为全红色,然后再返回。 我认为与混合function有关,但我不确定。 我想避免为我游戏中的每个怪物制作一些红色精灵。 有人知道如何实现这种效果吗?

按键上逐渐加速精灵; 钥匙释放逐渐减速

我一直试图弄清楚如何在按下按键时逐渐加速精灵,然后一旦释放按键,逐渐减速停止,就像小行星中的船一样。 如果可能的话,我想在没有任何游戏引擎的情况下这样做。 我在SO上搜索了这个并找到了相关的问题,但他们并没有在我看来完全回答我的问题。 到目前为止我所想到的是: //while the key is being pressed //move by increasing y value //but continue to increase the amount y increases by as you hold this down, //until it reaches certain maxSpeed //when the key is released, gradually decelerate to zero 我只是不确定如何正确编程,因为我只能想办法增加相同的值而不是逐渐加速。 所以这是我的目标( 逐渐加速,然后逐渐减速) : 我是初学者,对所有想法持开放态度,但我可能没有正确处理这个问题的事实可能是因为我不像其他人那么了解

如何在Libgdx中调整sprite的大小?

我在sprite.setSize(float x, float y)的方法sprite.setSize(float x, float y)有问题。 它不会影响精灵的大小或尺寸。 无论我传递给setSize()方法,它们都保持固定。 这是我的代码 : public class GameScreen implements Screen { OrthographicCamera camera; SpriteBatch batch; Texture carTexture; Sprite carSprite; public GameScreen() { } @Override public void render(float delta) { // TODO Auto-generated method stub Gdx.gl.glClearColor(0,0,0,0); Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); batch.begin(); carSprite.setSize(16, 32); batch.draw(carSprite, 0 , 0); batch.end(); camera.update(); } @Override public void […]

如何使用libGDX使用键盘键移动精灵?

我刚刚开始使用java和libgdx并拥有此代码,非常简单,它将一个精灵打印到屏幕上。 这很有效,我从中学到了很多东西。 package com.MarioGame; import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.InputProcessor; public class Game implements ApplicationListener { private SpriteBatch batch; private Texture marioTexture; private Sprite mario; private int marioX; private int marioY; @Override public void create() { batch = new SpriteBatch(); FileHandle marioFileHandle = […]

基于键盘输入让我的精灵面向某个方向 – Java Game

所以我通过跟随一堆不同的教程将java基本游戏放在一起 – 问题是我无法弄清楚如何让我的精灵向不同的方向移动。 这是我的主要代码 package com.game.src.main; import java.awt.Canvas; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.KeyEvent; import java.awt.image.BufferStrategy; import java.awt.image.BufferedImage; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import javax.swing.JFrame; public class Game extends Canvas implements Runnable { private static final long serialVersionUID = 1L; public static final int WIDTH = 850; public static final int HEIGHT […]

Java Swing Timer和Animation:如何将它组合在一起

我将再次发布这个问题,试图更精确,并希望我会得到一些帮助,因为这让我发疯。 我正在开发一款最多有6名玩家的棋盘游戏,每个玩家都有不同颜色的棋子。 我有下面的图像加载在BufferedImage数组中,将其视为精灵: 这是相对代码,将每个彩色模具的每个面放在BufferedImage []中的一个位置: private BufferedImage[] initAnimationBuffer() { BufferedImage[] result = new BufferedImage[36]; for (int i = 0; i < 6; i++) { for (int j = i; j < 6 + i; j++) result[i + j] = DieSprite.getSprite(j, i, 0); } return result; } 然后根据他的颜色,每个玩家将根据获得的模具值/位置具有包含其颜色的面的以下矩阵。 换句话说,该矩阵包含图像的“一条线”,并按值索引: private BufferedImage[][] initExactDieFaces() { BufferedImage[][] result = […]

如何在java中进行精灵跳转?

我有一个用于向左,向右,向上和向下移动的精灵的KeyEvents。 我只是搞乱了,正在考虑另一个我希望精灵跳跃的项目。 它不一定非常现实,因为我刚刚开始。 我所拥有的是当按下空格键时,它将导致精灵跳跃,让我们说“dy = -3”。 那么我有KeyRevent的KeyEvent,它会掉落,“dy = -2”。 这不起作用,因为精灵只是继续下降…有人能发光吗? 整个代码:包冲突; import java.awt.Image; import java.awt.Rectangle; import java.awt.event.KeyEvent; import java.util.ArrayList; import javax.swing.ImageIcon; public class Craft { private String craft = “pelican.png”; private int dx; private int dy; private int x; private int y; private int width; private int height; private boolean visible; private Image image; private […]