小编Lor*_*n55的帖子

如何在2D游戏中计算SCREEN到WORLD位置

我有这个类,我用它在我的2D游戏中绘制精灵:

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Audio;

namespace Namespace
{

/// <summary>
/// Found this brilliant code at.
/// http://adambruenderman.wordpress.com/2011/04/05/create-a-2d-camera-in-xna-gs-4-0/
/// </summary>
public class CCamera2d
{

    private const float zoomUpperLimit = 1.3f;
    private const float zoomLowerLimit = .85f;
    private float _zoom;
    private Matrix _transform;
    private Vector2 _pos;
    private float _rotation;
    private int _viewportWidth;
    private int _viewportHeight;
    private int _worldWidth;
    private int _worldHeight;

    public CCamera2d(Viewport viewport, int worldWidth, int worldHeight, float initialZoom = zoomLowerLimit)
    {
        _zoom = initialZoom;
        _rotation = 0.0f; …
Run Code Online (Sandbox Code Playgroud)

c# xna 2d

5
推荐指数
1
解决办法
1813
查看次数

纹理/模型在距离上闪烁(3D)

好的,在我的XNA项目中,我添加了简单的着色器+模型加载代码,一切正常。我在3Ds Max中创建了一个非常简单的低细节模型。导出并导入FBX格式的XNA。

问题是:如果我将简单的相机移动到与该型号相距一定距离的地方,其组件之一就会开始闪烁。我尝试了另一种模型,并且情况相同,只有当我与模型之间有一定距离时,某些组件才会开始闪烁。

这种闪烁(或闪烁或..)仅在带有纹理的对象上出现(可能),并且看起来像:在每帧中,模型的随机部分/像素(或不是那么随机)被模型或其组件后面的对象所代替。 。:(

更新:现在我知道-问题出在我的模型中(我检查了其他一些模型)。我不明白为什么,但是“平面”对象却发出了这种闪烁。也许问题不在Plane对象中。

在此处输入图片说明

c# 3d xna xna-4.0

1
推荐指数
1
解决办法
1824
查看次数

"无法实例化抽象类"错误

我有一个简单的抽象类(比如说A)和继承它的类(比如说C).

class C : A
Run Code Online (Sandbox Code Playgroud)

问题是第二个(C)包含我需要在另一个类中的代码; 我认为将这部分代码拆分为单独的类(B)并在我需要的类中派生它是件好事.

B(代码的共享部分)>> C(目标)<< A(C的抽象基础)

一切都好 - 除了在基类(A)中声明的抽象函数之一在B中定义,而不是在C中定义.我认为这会导致我的错误.我正在寻找解决方案......

class A // a base class i need to derive from
{
    // ...
public: virtual bool Get() const;
    // ...
};

class B // only contains definition for get()
{
public:
    bool Get() const { return false; }
};

class C : public B, public A // firstly derive from B, than from A.. ??
{
    // so Get(), required by A is defined …
Run Code Online (Sandbox Code Playgroud)

c++ oop

1
推荐指数
1
解决办法
1312
查看次数

在函数定义中使用引用参数:性能?

是否知道两种变体中的哪一种更快,或者它们是相同的,或者比较不正确.

Vector test(Vector &vec)
{
 // return modified vector, or write directly to vec,
 // or do not return anything, but access vec anyway
}

Vector test(Vector vec)
{
 // same (but no reference)
}
Run Code Online (Sandbox Code Playgroud)

我问,因为我应该知道它,为Direct3D游戏创建最佳优化代码.

更新:我在谈论xnamath.h(d3d sdk)中的XMVECTOR - 16个字节,4个浮点数.

c++ optimization performance

0
推荐指数
1
解决办法
86
查看次数

标签 统计

c# ×2

c++ ×2

xna ×2

2d ×1

3d ×1

oop ×1

optimization ×1

performance ×1

xna-4.0 ×1