我在Windows Phone 7的xna代码的Drawing部分中搜索性能问题,有时会在几秒钟后发生.有一个最佳实践如何/何时调用SpriteBatch.Begin绘制一些东西?应该为每对精灵调用它(在每个类中绘制播放器时,背景,背景对象......)或者在开始时调用 - >在所有子类中绘制所有内容 - 对于性能更好吗?
当我扩展Sprite时,我总是不调用super().
但是不会not calling super()造成任何问题吗?
直到现在,我没有任何问题,我从未见过在构造函数中调用super()的代码,该类扩展了Sprite.
TextField怎么样?
我对TextField也没有任何问题.
如何知道我是否应该调用super()?
让我们说我有这个精灵:

我在运行时创建了一个随机的景观:

然后,我想用精灵平铺线下方的区域:

这是游戏场,因此它也应该是一个物理对象(In Box2D).
在这里,他给出了一个如何使其成为物理体的样本.那么,我如何在代码中执行图形部分?
编辑:查看AndEngine示例,文件RepeatingSpriteBackgroundExample.java,它不是我需要的,但我应该坚持这个想法并根据我的需要更改RepeatingSpriteBackground类?我认为那不是最好的方法......
提前致谢.
我正在用canvas(&js)开发一个等距html5游戏.我的网格由列(x)和行(y)组成.
目前我的玩家可以穿过地图,但他从坐标跳到坐标.
我试图让他以平滑的方式从一个瓷砖走到另一个瓷砖,使用精灵动画.但是我不知道我怎么也找不到任何关于这个机制的文章,所以我再次向你求助!
所以,如果你知道如何做到这一点,或者知道解释这个的文章或教程,那就太棒了!
提前致谢,
Nick Verheijen
更新:我正在使用的代码来管理我的播放器
Player.move = function(direction)
{
var newX = Player.positionX;
var newY = Player.positionY;
switch( direction )
{
case 'up':
Player.moveDirection = 'up';
newY--;
break;
case 'down':
Player.moveDirection = 'down';
newY++;
break;
case 'left':
Player.moveDirection = 'left';
newX--;
break;
case 'right':
Player.moveDirection = 'right';
newX++;
break;
}
Player.positionX = newX;
Player.positionY = newY;
}
Run Code Online (Sandbox Code Playgroud)
注意:我正在保存播放器移动的方向,因此我可以显示正确的图像.
此外,我没有使用像EaselJS这样的库.由于简单的原因,几乎没有任何文档或示例,所以我必须自己解决所有问题.
我们正在写一个简单的3D游戏作为我们在大学学习的课程.(分配给夫妻)我们必须使用JOGL,所以我必须使用这个API(解决方案如:切换到更高级别的API,如java3D对我不好......)无论如何,我们决定的游戏实现是某种3D射击游戏.(到目前为止,我们为同一课程的上一个作业分配的代码可以在这里找到:http://code.google.com/p/mirzhcode/source/browse/?repo = cgex4)现在我我试图处理"特效".更准确地说,粒子和精灵(用于射击,爆炸等......)我遇到了关于精灵发射器的解释,我想实现:http://bit.ly/KrrPM4
我开始时似乎很容易.冲击波环,由一个快速生长的精灵组成.当我试图绘制我制作的图像时,我得到黑色背景而不是我想要的透明度.纹理图像是一个透明的png文件(所以有一个alpha通道)
我得到的是:
我用来生成这个代码:
在init()方法中:
//loading textures
try {
shockwave = TextureIO.newTexture(new File( "textures/shockwave_128X128.png" ),false);
} catch (GLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
gl.glShadeModel(GL.GL_SMOOTH);
gl.glClearColor(0f, 0f, 0f, 1f);
gl.glClearDepth(1.0);
gl.glEnable(GL.GL_BLEND);
gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE);
gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
gl.glHint(GL.GL_POINT_SMOOTH_HINT, GL.GL_NICEST);
gl.glEnable(GL.GL_TEXTURE_2D);
gl.glEnable(GL.GL_DEPTH_TEST);
//UNCOMMENT THE FOLLOWING LINE OF CODE
//FOR REALISTIC COLORS. NOTE THAT ICC
//BUTTON WON'T CHANGE THE COLORS ANYMORE.
//gl.glEnable(GL.GL_LIGHTING);
//two (soft) lights …Run Code Online (Sandbox Code Playgroud) 我在LibGDX中拉伸精灵有问题.
我在游戏中有一个png文件(1x1000像素),我想做1000x1000px
sprite.setSize(pixelWidth,pixelHeight);
Run Code Online (Sandbox Code Playgroud)
编辑:这是我要拉伸的图像 - 天空.如您所见,它从顶部到底部几乎没有渐变.我想让它的宽度为1000像素.我希望图像在宽度上有颜色变化.
但我得到了这个奇怪的结果:
图片
你可以看到有一些像渐变的宽度,甚至是线条,但没有理由,因为我缩放1px图像...
奇怪的是,其他PC和手机上的一切看起来都不错......但我认为这个问题不在我的电脑里!
我不知道该尝试什么......有什么想法吗?
对不起,如果我没有解释得很好..抱歉我的英语不好
最后:这是来自过滤.我将过滤器从线性更改为最近,一切都很好
我正在开发一个游戏,我需要创建一个巨大的"世界",火箭飞过它.在这个世界上,我必须以编程方式生成各种简单的背景元素.需要记录路径,所以我不能使用视差效果来给出运动的感觉.
当我使用SKShapeNode和SKLabelNode对象创建背景元素时,我的性能非常糟糕,因为我实际上必须添加数千个这样的节点.
有没有办法直接在sprite对象上绘制文本和线条?
更新 - 20140614:
在没有得到这个问题的任何答案之后,或者在github上,我决定提出自己的问题解决方案.我使用Compass做了很多事情,但它的主要功能在于它能够生成图像精灵.
大多数其他事情可以使用纯SCSS完成.
因此,我写了西兰花精灵.这与ember-cli使用broccoli-sass内置支持SCSS一起使用,能够满足我的需求.
您可以在此处详细了解该过程.
原始问题:
使用Sass,但没有 Compass,是否可以创建CSS sprites?
我正在寻找一种方法来完成等效输出,因为这个Sass + Compass会完成:
@import"compass/utilities/sprites";
$icon-layout: smart;
$icon-sprite-dimensions: true;
@import"icon/*.png";
@include all-icon-sprites;
@import"compass/css3/images";
Run Code Online (Sandbox Code Playgroud)
基本上这将包括两件事:
background-image将指向连接图像的CSS类,以及它的坐标和尺寸,以显示连接图像的右侧部分.后者,生成CSS类应该可以使用Sass,但是,前者,连接几个图像,可能吗?如果是这样,怎么办呢?
注意:我不确定之前是否有人这样做过,主要是因为谷歌搜索"没有指南针的sass图像精灵"和"带有sass -compass的图像精灵"根本没有返回任何相关结果.
我正在写一个phonegap应用程序(使用html,css和javascript),我被困在动画部分,虽然我使用简单的基本spritesheet动画.
A)我试图为BASIC方式制作动画,但我有两个问题:
1)如果我没有满格spritesheet至极我可能没有,这也显示空框架,我不知道如何跳过他们,而不需要整个spritesheet转换成一排.(我听说你可以用某种方式定义每一帧,但我真的找不到怎么做,我到处搜索!)
2)旁边的空白帧的动画显示在桌面上很好,但是当我尝试在移动它看起来是这样的(http://jsfiddle.net/alecstheone/5pqmsd4a/4/)犹如步骤和速度都没有同步.如果我尝试在我的移动浏览器中运行jsfiddle,一切都会像在桌面上一样显示.
这是第一个代码:
HTML:
<div id="container">
<div class="hi"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.hi {
width: 389px;
height: 238px;
background-image: url("http://i.imgur.com/XOmx2Mm.png");
position: relative;
border: solid 1px black;
-webkit-animation: playv 1.2s steps(6) infinite, playh 0.2s steps(9) infinite;
}
#container {
}
/* .hi:before {
content: "";
position: absolute;
width: 176px;
height: 108px;
left: 0px;
top: 0px;
border: solid 1px red;
-webkit-animation: playv 18s steps(6) infinite, playh 3s steps(9) infinite;
} */
@-webkit-keyframes playv {
0% {
background-position-y: 0px;
} …Run Code Online (Sandbox Code Playgroud) 所以我创建了一个带有2d精灵边框的蛇形游戏.我的游戏窗口设置为16:9,在此分辨率下图像看起来很好.然而,扩展到任何其他东西开始使游戏看起来很奇怪.我希望游戏窗口可以重新调整大小.如何根据当前分辨率使我的精灵拉伸和缩小?
下面我发布我的精灵如何设置的截图.以及如何将它们放入层次结构中.
示例分辨率和当前输出
sprite ×10
css ×2
css-sprites ×2
image ×2
scaling ×2
andengine ×1
android ×1
box2d ×1
canvas ×1
compass-sass ×1
draw ×1
drawing ×1
html5 ×1
inheritance ×1
ios7 ×1
isometric ×1
java ×1
javascript ×1
jogl ×1
libgdx ×1
opengl ×1
sass ×1
stretching ×1
super ×1
transparency ×1
xcode5 ×1
xna ×1