我是全新的,有一个问题.我在学校和家里做过锻炼,但我无法弄清楚该怎么做.
问题是我想在屏幕上的10个随机位置绘制一个精灵,而不使用特殊的精灵类.我的问题是他们被吸引后会再次消失.
解决了它,感谢所有的帮助!
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
Texture2D turtleTexture;
int counter = 0;
Random randomera = new Random();
int x;
int y;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}
protected override void Initialize()
{
base.Initialize();
}
/// <summary>
/// </summary>
protected override void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
turtleTexture = Content.Load<Texture2D>(@"Images/turtle_50x38");
}
protected override void UnloadContent()
{
}
protected override void Update(GameTime gameTime)
{
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit(); …Run Code Online (Sandbox Code Playgroud) Sprites适用于不改变尺寸的小图标,但我倾向于使用大量1px宽的背景切片来处理按钮和div背景等内容.有没有办法将这些切片包含在精灵中?为了做到这一点,必须有一种方法可以从精灵中取出一小块并在元素的整个背景上进行外推,基本上将其从精灵中切割下来并让它重复,就像它是一个独立的背景图像一样.
我正在学习游戏开发,我正在尝试从一些我喜欢玩的游戏中提取一些资源,我这样做只是为了更多地了解精灵和资源组织.问题是每个游戏我提取的图像都带有某种问题,有时只是不打开,有时我可以打开图像,但我只看到一些像素.
在apk市场中是否使用了任何资源保护?有没有办法提取和看到这些精灵表?
请记住,我这样做仅仅是为了学习目的,我不会在任何游戏或项目中使用它!
感谢您的帮助,并有一个美好的一天球员:).
想象一下以下场景:您有一组PNG格式的RPG角色spritesheets,并且您希望在OpenGL应用程序中使用它们.
单独的字符(通常)大小为16乘24像素(即24像素高),并且可以处于任何宽度和高度而不留下填充.有点像:
来自最终幻想VI的Terra http://helmet.kafuka.org/terra.net/nomura/Terra.png
我已经有了代码来确定给定帧索引和大小的基于整数的剪切矩形:
int framesPerRow = sheet.Width / cellWidth;
int framesPerColumn = sheet.Height / cellHeight;
framesTotal = framesPerRow * framesPerColumn;
int left = frameIndex % framesPerRow;
int top = frameIndex / framesPerRow;
//Clipping rect's width and height are obviously cellWidth and cellHeight.
Run Code Online (Sandbox Code Playgroud)
运行此代码frameIndex = 11, cellWidth = 16, cellHeight = 24将返回一个cliprect,(32, 24)-(48, 48)假设它的右/底与宽度/高度相对.
实际的问题
现在,给定一个剪切矩形和一个X/Y坐标来放置精灵,我该如何在OpenGL中绘制它?有在零坐标顶部左侧是首选.
我正在尝试在我的GWT应用程序中使用ClientBundle来使多个图像作为单个文件发送.我这样声明了这个包:
public interface MyResources extends ClientBundle {
public static final MyResources INSTANCE = GWT.create(MyResources.class);
@Source("icon1.png") ImageResource icon1();
@Source("icon2.png") ImageResource icon2();
}
Run Code Online (Sandbox Code Playgroud)
这在Firefox和IE8的伟大工程,但在IE7(或更早)整个精灵代替我原来的图像之一的显示出来 - 那就是,ICON1旁边旁边ICON3到ICON2,等等.在使用IE8-as-IE7模式或兼容性视图的IE8开发人员工具中,我可以看到它显示的文件名如26BEFD2399A92A5DDA54277BA550C75B.cache.png,这是我所期望的.
那么有没有办法让GWT图像精灵在IE7和更低版本中运行?如果没有,有没有办法优雅地降级,所以其他浏览器的用户获得spriting的加速,IE7和IE6用户获得看起来正确但速度较慢的东西?
编辑:该客户端包开发者指南具有使用ClientBundle和@sprite的讨论,并说:"对IE6的支持是不是在这种格式是可行的,因为对DOM结构变化是实行必要的'窗口’效应一旦它的可能.为了区分user.agent中的ie6和ie7,我们可以重新考虑对ie6的支持.在当前的实现中,ie6代码将无法正确呈现,尽管这是一个纯粹的装饰性问题.这是在我的情况下发生了什么,有没有办法解决它?显示所有图像"纯粹是一个美容问题",但它是一个非常严重的问题.
编辑2:这是我如何使用图像:
public class MyTabHeader extends Composite {
@UiField Image icon;
public MyTabHeader(String iconPath) {
initWidget(uiBinder.createAndBindUi(this));
this.icon.setUrl(iconPath);
}
}
public class MyTabPanel extends TabPanel {
public MyTabPanel() {
String icon1 = MyResources.INSTANCE.icon1().getURL();
MyTabHeader tabHeader1 = new MyWidget(icon1);
Widget tabContent1 = new HTML("Content 1");
add(tabContent1, tabHeader1);
String icon2 = MyResources.INSTANCE.icon2().getURL();
MyTabHeader tabHeader2 …Run Code Online (Sandbox Code Playgroud) 我需要放置一个48x48的图标作为背景.我的图像精灵中有这个图标,当然还有很多其他图像.
有没有办法只显示图像的背景?
谢谢
编辑:有没有办法在不设置背景元素的宽度高度的情况下做到这一点?(我不确定我是否可以设置宽度 - 高度)
Edit2:这就是我需要的:http://jsfiddle.net/pdxnj/
谢谢
我正在用像Bomberman(我的第一个游戏)编写一个基于Java平铺的Java游戏.
我使用2D数组来表示我跟踪墙壁,步行空间等的地图.到现在为止,我能够让玩家根据他按下的方向键(但不与背景/地图交互)平滑地交换精灵,它可以随机走动并走出屏幕).
当我想跟踪玩家在阵列中的位置时,我的问题出现了.从逻辑上讲,角色总是只属于一个瓷砖,但在图形上它可以在两个瓷砖之间.我该如何解决这个问题?
我已经尝试过了:
currentTileArrayX = x/tileWidth;
currentTileArrayY = y/tileHeight;
其中x和y是精灵的左上角坐标.但是一切都变得非常多,因为玩家的精灵与瓷砖的尺寸不同.
我有另一个选项可以解决上一个问题:当玩家按下一个方向键时,将该角色移动到下一个方块,就像动画一样.这不会让玩家停在两块瓷砖的中间......但是如果他用另一台按键打断它呢?如何在动画执行时停止用户的操作?我认为这是最简单的解决方案,但我不知道如何实现它.
我已经尝试在其他问题中找到解决方案,但我没有运气.我希望你能帮助我.
非常感谢.
我是Swift和SpritKit的新手,对我的游戏有一些问题.
在我didMoveToView(view: SKView) { }的代码部分中,我调用下面的语句来填充屏幕上的怪物.在我func addMonster() { }
的怪物中,然后动画从右侧移动到屏幕的左侧.一旦他们离开屏幕的另一侧,精灵就会被移除.
代码A.
runAction(SKAction.repeatActionForever(
SKAction.sequence([
SKAction.runBlock(addMonster),
SKAction.waitForDuration(1.0),SKAction.
])
))
Run Code Online (Sandbox Code Playgroud)
在添加Mons†er功能中,我调用以下代码将Monster移动到屏幕上.
let actualDuration = random(min: CGFloat(6.0), max: CGFloat(10.0))
let actionMove = SKAction.moveTo(CGPoint(x: -monster.size.width/2, y: actualY), duration: NSTimeInterval(actualDuration))
let actionMoveDone = SKAction.removeFromParent()
monster.runAction(SKAction.sequence([actionMove, actionMoveDone]))
Run Code Online (Sandbox Code Playgroud)
上面的所有代码都运行正常.
当用户杀死了X量的怪物时,我希望屏幕上的所有其他怪物都消失并停止产卵.
我的问题是,我如何a)停止产生怪物的代码A和b)如何获取视图中的任何怪物,被删除?
谢谢,
Ryann
我试图用这段代码改变我的对象的图像(用作Sprite强制转换):
GetComponent<SpriteRenderer>().sprite = Resources.Load("GameObjects/Tiles/Hole") as Sprite;
Run Code Online (Sandbox Code Playgroud)
它不起作用,但这工作(使用<Sprite>):
GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("GameObjects/Tiles/Hole");
Run Code Online (Sandbox Code Playgroud)
有什么不同?
我打算有一个FabricJS画布,可以显示潜在的几十个不同的图形,可以作为单独的图像文件或精灵提供.对于每个图形,特定图形可能会在画布上显示0到数十次.我知道FabricJS具有裁剪能力,这可以使精灵的使用成为可能,而且我知道,一般来说,网络上的精灵比单个图像更受欢迎,例如CSS.
但是,我也听说过围绕画布的浏览器行为/怪癖,你可能会发生一些优化,不要 - 我现在找不到链接,但我记得有一个大帆布尽管不与屏幕外观相关,但Chrome中的内容元素仍然需要相当长的时间来计算/"渲染".
那么,是否有任何已知的期望是否n个单独的非裁剪图像对于FabricJS画布被剪裁n次的精灵是否优选/不优选?如果它很重要,这将不是一个动画严重的FabricJS画布; 例如,在拖动时,事物可能会移动,但在这种情况下,常量动画不是所涉及的.