我有三个精灵,堆叠在一起.
我修改他们的transform.matrix以给出他们一致增长的外观.
但是,根据比例因子,瓷砖之间有时会出现小裂缝.
精灵之间的裂缝http://img21.imageshack.us/img21/7518/cracks.png
我想知道如何解决这个问题.
我知道AS3中的文本对象具有子像素渲染选项.也许所有AS3都存在类似的设置?其他想法?
不起作用的策略:cacheAsBitmap.
package
{
import flash.display.Sprite;
import flash.geom.Matrix;
import flash.geom.Point;
import mx.core.UIComponent;
public class tmpa extends UIComponent
{
private var _scale:Number;
private var _s1:Sprite;
private var _s2:Sprite;
private var _s3:Sprite;
private var _s1Pt:Point;
private var _s2Pt:Point;
private var _s3Pt:Point;
private var _tileDim:int;
public function tmpa( ):void
{
_scale = 1;
_tileDim = 100;
_s1 = new Sprite();
_s2 = new Sprite();
_s3 = new Sprite();
paintSprite( _s1, _tileDim );
paintSprite( _s2, …Run Code Online (Sandbox Code Playgroud) 我是C++和DirectX的新手,我来自XNA.我开发了像Fly The Copter这样的游戏.我所做的是创建了一个名为Wall的类.在比赛开始的时候,我画了所有的墙.在XNA中,我将墙存储在ArrayList中,而在C++中我使用了vector.在XNA中,游戏运行速度很快,在C++中运行速度非常慢.这是C++代码:
void GameScreen::Update()
{
//Update Walls
int len = walls.size();
for(int i = wallsPassed; i < len; i++)
{
walls.at(i).Update();
if (walls.at(i).pos.x <= -40)
wallsPassed += 2;
}
}
void GameScreen::Draw()
{
//Draw Walls
int len = walls.size();
for(int i = wallsPassed; i < len; i++)
{
if (walls.at(i).pos.x < 1280)
walls.at(i).Draw();
else
break;
}
}
Run Code Online (Sandbox Code Playgroud)
在Update方法中,我将X值减小4.在Draw方法中,我调用sprite-> Draw(Direct3DXSprite).这是游戏循环中唯一运行的代码.我知道这是一个糟糕的代码,如果你有想法改进它,请帮忙.谢谢,抱歉我的英语.
我正在开发Droid版本2.1-update1.我支持的GL扩展包括GL_OES_point_sprite和GL_OES_point_size_array.
我无法获得点精灵渲染.下面的代码在glTexEnvi调用时从GLWrapperBase抛出UnsupportedOperationException.如果我禁用纹理并注释掉glTexEnvi all,它会在glPointSizePointerOES()处进一步抛出相同的异常.
Android中是否正确支持点精灵?有没有人让他们工作?或者下面的代码是否存在问题?
// Note that gl is cast to GL11
gl.glEnable(GL11.GL_TEXTURE_2D);
gl.glEnable(GL11.GL_BLEND);
gl.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
gl.glDepthMask(false);
gl.glEnable(GL11.GL_POINT_SPRITE_OES);
gl.glTexEnvi( GL11.GL_POINT_SPRITE_OES, GL11.GL_COORD_REPLACE_OES, GL11.GL_TRUE );
gl.glEnableClientState(GL11.GL_VERTEX_ARRAY);
gl.glVertexPointer(2, GL11.GL_SHORT, 0, .vertBuffer);
gl.glEnableClientState(GL11.GL_POINT_SIZE_ARRAY_OES);
gl.glPointSizePointerOES(GL11.GL_FLOAT, 0, pointSizeBuffer);
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在制作一个基于XNA游戏开发教程游戏"射击游戏"的小游戏...经过一些试验和错误后,我制作了自己的动画精灵,我可以在屏幕上移动.问题是,他总是面临正确的.
我怎样才能改变这个(下面的图像),以便每次按下按键事件时他都面向正确的方向?!
你可能已经猜到了我对C#很陌生,我意识到这可能比我想象的要复杂得多,所以我只需要知道当他向左移动时左右移动时如何使精灵面朝右.
先感谢您.
我有一个背景图像,当我的窗口是800 x 600时,它只有256 x 256.我不知道如何让图像在整个窗口重复出现.我目前正在加载图片:
sf::Texture Bkg;
if(!Bkg.loadFromFile("darkPurple.png"))
{
return -1;
}
sf::Sprite Sprite;
Sprite.setTexture(Bkg);
Run Code Online (Sandbox Code Playgroud)
并在以后绘制:
window.draw(Bkg);
Run Code Online (Sandbox Code Playgroud)
我试着用:
texture.setRepeated(true);
Run Code Online (Sandbox Code Playgroud)
但这似乎没有帮助.
谢谢!
我在这里画精灵的集合,当缩小,并进行放大时,一个更大的(16×16)的质地.当变焦水平达到阈值时,发生了互换使用较小的(4×4)的质感.
然而,为了使其成为平滑过渡,需要绘制精灵(位于[x,y]),其原点是精灵的中心.目前他们正在根据他们的左下角绘制.因此,当纹理交换发生时,精灵会略微跳跃,因为原点不匹配.
我已经创建了一些变量来调试并确保它们是正确的.
TextureRegion sprite = null;
boolean useHighResTexture = (_gameRef.cameraZoom < CAMERA_ZOOM_SWITCH_LO_RES);
if (useHighResTexture) {
//Zoomed in, Hi res, Use animation
sprite = animation.getKeyFrame(animationStateTime, true);
} else {
//Zoomed out, lo-res, Use static image
sprite = Assets.instance.getSmall();
}
float spriteWidth = sprite.getRegionWidth();
float spriteHeight = sprite.getRegionHeight();
float spriteOriginX = spriteWidth/2;
float spriteOriginY = spriteHeight/2;
//Draw(TEXTURE, x, y, originx, originy,
// width, height, scaleX, scaleY, rotation,
// srcX, srcY,
// srcWidth, srcHeight, boolflipX, boolflipY
//this.setCenter(spriteOriginX, spriteOriginY);
batch.draw(sprite.getTexture(), this.x, this.y, spriteOriginX, …Run Code Online (Sandbox Code Playgroud) 我正在使用matter.js进行物理模拟.
我的问题是,是否可以改变精灵大小?或者仅使用matter.js是不可能的?
这是我到目前为止:
Bodies.circle(x, y, 46, {
render: {
sprite: {
texture: 'images/stone.png'
//Is there a 'width:' or 'height' property?
}
}
});
Run Code Online (Sandbox Code Playgroud) 在当前的Unity中,
对于任何"Sprite(2D和UI)",实际上它始终默认为打开"生成Mip贴图".
因此,每次放入图像时,都必须将其"关闭"并应用.
我根本看不到任何想要使用带有平面精灵的mipmap的情况.如果它们在你的Unity.UI(按钮等)中逐字使用,你永远不会想要mipmap,如果它们是精灵,你永远不会想要使用mipmap(事实上,它们通常用于像素完美的用途).
只有纹理(在3D东西上)才能看到"非常接近"或"处于掠角" - 这些概念似乎与"Sprite(2D和UI)"技术无关.
这只是Unity的一个不重要的错误("他们意外地默认启用了切换"),还是在某种情况下你用mipmap图标等?
我对编码很新,我仍然在努力发展思维逻辑,以帮助我创建我想要的游戏解决方案.目前,我正在Unity尝试创建一个2D GameObject,这是一个隐藏秘密门的墙.当玩家GameObject触发它时,我希望GameObject淡出(大约90%),露出后面的空间和隐藏的门.
到目前为止,我已经设法弄清楚如何在触发器上使"秘密墙"GO处于非活动状态,因此它会消失,但这并不会产生我想要的视觉效果.正如我所说,我仍在努力开发编码器的思维方式,所以虽然我已经做了很多研究来解决这个问题,但很多结果我都不太明白.
这是我的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SecretDoor1 : MonoBehaviour {
void OnTriggerEnter2D (Collider2D SecretDoorTrig) {
if (SecretDoorTrig.gameObject.tag == "Player") {
GetComponent<SpriteRenderer> ().enabled = false;
}
else {
GetComponent<SpriteRenderer> ().enabled = true;
}
}
void OnTriggerExit2D (Collider2D SecretDoorTrig) {
if (SecretDoorTrig.gameObject.tag == "Player") {
GetComponent<SpriteRenderer> ().enabled = true;
}
else {
GetComponent<SpriteRenderer> ().enabled = false;
}
}
}
Run Code Online (Sandbox Code Playgroud)