小编Bri*_*ins的帖子

libgdx坐标系渲染和触摸输入之间的差异

我有一个呈现PNG图像的屏幕(BaseScreen实现了Screen界面).单击屏幕时,它会将角色移动到触摸位置(用于测试目的).

public class DrawingSpriteScreen extends BaseScreen {
    private Texture _sourceTexture = null;
    float x = 0, y = 0;

    @Override
    public void create() {
        _sourceTexture = new Texture(Gdx.files.internal("data/character.png"));
    }

    .
    .
}
Run Code Online (Sandbox Code Playgroud)

在渲染屏幕期间,如果用户触摸屏幕,我抓住触摸的坐标,然后使用这些来渲染角色图像.

@Override
public void render(float delta) {
    if (Gdx.input.justTouched()) {
        x = Gdx.input.getX();
        y = Gdx.input.getY();
    }

    super.getGame().batch.draw(_sourceTexture, x, y);
}
Run Code Online (Sandbox Code Playgroud)

问题是从左下角开始绘制图像的坐标(如LibGDX Wiki中所述),触摸输入的坐标从左上角开始.所以我遇到的问题是我点击右下角,它将图像移动到右上角.我的坐标可能是X 675 Y 13,触摸时它将靠近屏幕顶部.但是角色显示在底部,因为坐标从左下角开始.

为什么是这样的?为什么坐标系会反转?我使用错误的对象来确定这个吗?

java coordinates game-engine libgdx

11
推荐指数
2
解决办法
2万
查看次数

Linq to Entities中的动态where子句

我正在使用linq到实体(EF).我有一个构造函数,它接受4个字符串参数.根据什么参数不为null,我必须构建linq查询.我可以使用if else语句,但我也有其他10个参数的构造函数,在这种情况下,将有许多组合要检查.

例:

Constructor(p1,p2,p3,p4)
{
  var prod= from p in ctxt.products.expand("items\details")
            where p.x==p1 && p.xx==p2 && p.xxx==p3 && p.xxxx==p4
            select p;
}
Run Code Online (Sandbox Code Playgroud)

在上面的where子句中,只有当参数不为null时才应该进行条件检查.即,如果p2为null,那么where子句应如下所示

where p.x==p1 && p.xxx==p3 && p.xxxx==p4
Run Code Online (Sandbox Code Playgroud)

如果p2和p3为null则

where p.x==p1 && p.xxxx==p4
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何处理这个问题.如果可能的话,你可以为此提供示例代码

linq entity-framework dynamic where-clause

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

ASP.NET会话已过期或无法找到 - >因为Session.SessionID发生更改(Reporting Services)

1.-我正在使用报告服务,有时ASP.NET session has expired or could not be found当我尝试加载报告时出现此错误.

2.-我意识到,即使用户是相同的,Session.SessionID属性也会更改时出现此错误.如果它没有改变,则加载报告.我的意思是,如果我多次刷新报告,只要Session.SessionID与最后一个相同,就会加载报告.

3.-Microsoft文档说:

使用基于cookie的会话状态时,在使用Session对象之前,ASP.NET不会为会话数据分配存储空间.结果,为每个页面请求生成新的会话ID,直到访问会话对象.如果您的应用程序需要整个会话的静态会话ID,您可以在应用程序的Global.asax文件中实现Session_Start方法,并将数据存储在Session对象中以修复会话ID,或者您可以在您的另一部分使用代码应用程序在Session对象中显式存储数据.

如果您的应用程序使用无cookie会话状态,则会在第一个页面视图上生成会话ID,并为整个会话维护该会话ID.

关键是我不能使用无cookie会话状态,因为我需要cookie.

我该怎么做才能避免这个错误?或者我该怎么做才能避免Session.SessionID在每个请求上更改?

asp.net session-state sessionid reporting-services

9
推荐指数
2
解决办法
4万
查看次数

从ASP.NET MVC Lambda Expression获取价值

我正在尝试创建自己的HTML Helper,它接受一个表达式(类似于内置的LabelFor <>帮助器.我已经找到了在表达式类似于此时获取属性值的示例:

model => model.Forename
Run Code Online (Sandbox Code Playgroud)

但是,在我的一些模型中,我想获取子元素中的属性,例如

model => mode.Person.Forename
Run Code Online (Sandbox Code Playgroud)

在这些例子中,无论如何我都找不到(轻松)获取Forename的值.任何人都可以建议我应该如何获得这个价值.

谢谢

html c# asp.net-mvc lambda html-helper

8
推荐指数
3
解决办法
8490
查看次数

WPF:指针下的颜色

我有一个渐变背景的控件.在MouseDownMouseUp事件上,我想要捕获像素在鼠标指针下是什么颜色.我该怎么办?

wpf

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

Razor支持通用扩展方法

关于Razor视图引擎,比方说我想渲染Html.TextBoxFor<SomeModel>(i => i.Name),内联语法似乎不像以下那样工作:

@Html.TextBoxFor<SomeModel>(i => i.Name)
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用,因为它将泛型解释为HTML标记.我可以使用代码块方法,但那么输出内容的最佳方法是什么?从这个方法返回的HTML字符串,我是响应它还是写它,还是有它的语法,或者是什么方法?

谢谢.

asp.net asp.net-mvc razor asp.net-mvc-3

8
推荐指数
2
解决办法
2035
查看次数

Razor RTM中的声明性助手方法

我通过他的博客看到了Scott Guthrie关于辅助方法的帖子.

特别是这个:

我看到一堆RC版本的MVC 3帖子关于缺少辅助方法...我看到它的语法支持(@helper)得到突出显示,但我有这个/Views/Helpers/SomeHelper.cshtml(定义为局部视图):

@helper SomeHelper(string text)
{
    if (text != null)
    {
        <text>
            @text
        </text>
    }
    else
    {
        <text>
            Unknown
        </text> 
    }
}
Run Code Online (Sandbox Code Playgroud)

我用这种方式:

<div>
Helper with Text:
@SomeHelper("This is not null text.")
</div>
Run Code Online (Sandbox Code Playgroud)

但我得到的SomeHelper没有被定义....所以我把它搞砸了?我有什么需要做的事情来将这些视图注册为帮助者吗?

谢谢.

.net asp.net razor asp.net-mvc-3

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

在ASP.NET中向父级冒泡事件

我在ASP.NET中说过这个层次结构:

page
  user control 1
     user control 2
         control 3
Run Code Online (Sandbox Code Playgroud)

我想要做的是,当控件3(它可以是任何类型的控件,我想要通常这样做)让用户做一些触发回发的事情,它会将某些事件冒泡到用户控件2 ,或者甚至可能是用户控制1(虽然我也可以让UC 2手动鼓泡事件).

同样,我想一般地这样做,以便层次结构可以改变,它仍然有效.也许有多个控件(控件4等)或数据绑定控件.这可能吗?

谢谢.

.net c# asp.net events event-handling

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

访问在DelegatingHandler中执行的当前控制器

我想知道是否可以在DelegatingHandler的SendAsync方法中访问正在执行(或即将执行)的控制器?我似乎无法弄清楚如何访问它,我认为这是因为它在控制器执行之外执行...

可以参考吗?

asp.net asp.net-web-api

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

如何使用Android Activity修复"Call required API level 11"?

我刚开始按照http://developer.android.com/training/basics/firstapp/starting-activity.html教程开始进行Android开发,有一件事让我烦恼:我有两个使用"Android Activity"创建向导创建的类:

public class PlacesActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_places);
        // I manually commented out the following line to get it to compile.
        // getActionBar().setDisplayHomeAsUpEnabled(true);
    }
    // ... other methods
}
Run Code Online (Sandbox Code Playgroud)

public class ShowOnePlace extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_one_place);
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }
    // ... other methods
}
Run Code Online (Sandbox Code Playgroud)

Eclipse不断给我以下错误:

调用需要API级别11(当前最小值为8):android.app.Activity#getActionBar

调用需要API级别11(当前最小值为8):android.app.ActionBar #setDisplayHomeAsUpEnabled

直到我评论出其中一行(如上所示).现在应用程序似乎在我的Android设备上编译和运行没有错误.(好吧,至少没有那个错误).

所以:

  • 为什么getActionBar().setDisplayHomeAsUpEnabled(true);在一个类中给出该错误,但是在另一个类中,完全相同的行不是错误 - 甚至不是警告?
  • "Android Activity"创建向导中是否存在错误,并且 …

eclipse android

8
推荐指数
3
解决办法
3万
查看次数