c#新手,在一个xna模板中看到一个按键函数,看不懂,求前辈指点

问题描述

c#新手,在一个xna模板中看到一个按键函数,看不懂,求前辈指点

public bool IsNewKeyPress(Keys key, PlayerIndex? controllingPlayer,
out PlayerIndex playerIndex)
{
if (controllingPlayer.HasValue)
{
// Read input from the specified player.
playerIndex = controllingPlayer.Value;

            int i = (int)playerIndex;

            return (CurrentKeyboardStates[i].IsKeyDown(key) &&
                    LastKeyboardStates[i].IsKeyUp(key));
        }
        else
        {
            // Accept input from any player.
            return (IsNewKeyPress(key, PlayerIndex.One, out playerIndex) ||
                    IsNewKeyPress(key, PlayerIndex.Two, out playerIndex) ||
                    IsNewKeyPress(key, PlayerIndex.Three, out playerIndex) ||
                    IsNewKeyPress(key, PlayerIndex.Four, out playerIndex));
        }
    }

我不明白else中的return。
不是说out关键字是让函数来初始化参数的吗。但是给playerindex赋值的语句在if中,如果没有按键按下,那么if不成立,在else中这个函数会不断的自己调用自己,同时playerindex无法得到值。
本人刚接触编程,不懂怎么学习,理解能力不强,
以上是我的理解,这种理解无疑是错的。希望接触过编程的前辈给指点一下。

时间: 2024-08-04 11:48:26

c#新手,在一个xna模板中看到一个按键函数,看不懂,求前辈指点的相关文章

java中的一个随机函数,看不懂帮忙解释下

问题描述 java中的一个随机函数,看不懂帮忙解释下 public void suiji() { int m,n,k=0,k1,k2,k3; for(m=1;m<=15;m++) { k1=(int)(Math.random()*25+1); for(n=1;n<=2;n++) { k2=(int)(Math.random()*6+1); k3=(int)(Math.random()*5+1); while(d[k2][k3])!=0&&k!30) { k2=(int)(Mat

写一个在一个字符串(n)中寻找一个子串(m)第一个位置的函数。

//写一个在一个字符串(n)中寻找一个子串(m)第一个位置的函数. /*思路: */ #include <iostream> #include <string> using namespace std; int Find(string str_long,string str_short) { if(str_long.length()<str_short.length()) { cout<<"error"<<endl;return 0

在link中,一个lamda函数能不能去调用一个静态的没有实例化的函数?

问题描述 在link中,一个lamda函数能不能去调用一个静态的没有实例化的函数? 在link中,一个lamda函数能不能去调用一个静态的没有实例化的函数? 解决方案 静态函数不需要实例化,不管是lambda还是什么地方调用,都是可以的.不过要是共有的函数,如果不在一个类中. 解决方案二: 可以调用自己的静态函数或其他类的public的静态函数

在C#中实现一个Eval函数

使用过Javascript中的Eval函数的兄弟肯定对这个函数情有独钟,该函数能动态的执行我们传递进去的表 达式.使用Eval函数咱们能轻松的制作可编程的程序,那C#是否也有这样的函数呢?答案是肯定的,不过C#并 没有实现现成的方法供我们使用.但是这并不能阻止咱们这帮爱偷懒的程序员们. 现在我们就在C#中 实现一个Eval函数吧,具体操作如下: 图1 图2 图3

textview-Android 中TextView中碰见一个很意外的问题 求各位大神指教

问题描述 Android 中TextView中碰见一个很意外的问题 求各位大神指教 target_client_tv.setText(contactsName); System.out.println("new name: "+target_client_tv.getText().toString()); 其他代码忽略了,想说明的是contactsName不为空,打印出来的TextView里面的值跟contactsName一致,但是界面上就是没有显示出来. 查了好久的都没查出来是哪里的

smarty模板中怎么使用urlencode()函数

解决方法一 直接在php中使用  代码如下 复制代码 $a = urlencode($str); 方法二 在smarty模板中如下操作  代码如下 复制代码 ad_title=<{$vo.ad_title|escape:"url"}> 就是了

C++的template模板中class与typename关键字的区别分析_C 语言

在C++模板中,可以使用class或者typename来声明模板参数,那么这两个关键字有什么区别呢? 模板参数声明对于模板参数声明,这两个参数没有区别,含义是一样的. template class Simple; template class Simple; 上面两行都是声明一个模板类Simple. 表明类型假如我们有这样一段代码: template void add(const T &acontainer, T ∑) { T::const_iterator iter = container.b

WPF中如何查找数据模板中的子元素

前两天在写一个WPF程序时,突然发现DataGrid控件没有筛选功能,但我不急,因为我知道,WPF的好处在于UI与逻辑的分离,要给数据网格控件加上输入筛选功能并不复杂,也不用去找第六方控件了,直接从DataGrid类派生一个类,并重定义它的控件模板,在DataGrid原有的控件模板上加一个StackPanel就可以了,方向为水平排列,放在列标头的下方.然后在代码中根据各个列的情况,向那个StackPanel添加N个文本框就可以输入筛选信息了.呵呵,虽不算完美,解决燃眉之急还是可以的. 这样我就想

js-新手求教关于appcan中的一个问题

问题描述 新手求教关于appcan中的一个问题 首页有header,content和footer,如何让新打开的页面始终在content中显示,并且整体框架布局不变? 解决方案 从一个新手遇到的问题看DataReader新手如何创建一个自己的网站新手求教Javascript问题