我想为Android制作基于磁贴的游戏.目前我正在将每个图块绘制为单独的位图.我有一个大的for循环,从字符串中读取并根据它找到的绘制关卡的字符绘制不同的tile.
我允许用户使用滚动手势滚动屏幕.然而游戏太慢了.用户滚动后更新屏幕需要很长时间.我认为这是因为它必须单独绘制每个tile的位图.
什么是更快的方式来绘制水平?我以为我可以把所有的瓷砖合并成一个位图.但我不知道该怎么做.有任何想法吗?
无论如何这里是我的代码,所以你可以看到问题:
package org.example.tutorial2d;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.GestureDetector.OnGestureListener;
import org.example.tutorial2d.Panel;
public class Tutorial2D extends Activity implements OnGestureListener {
GestureDetector gestureScanner;
Panel main;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gestureScanner = new GestureDetector(this);
//requestWindowFeature(Window.FEATURE_NO_TITLE);
main = new Panel(this);
setContentView(main);
}
@Override
public boolean onTouchEvent(MotionEvent me)
{
return gestureScanner.onTouchEvent(me);
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
{
main.handleScroll(distanceX,distanceY);
return …Run Code Online (Sandbox Code Playgroud) 我正在使用body标签中的onorientationchange调用显示不同的内容,具体取决于用户如何握住他/她的手机.这很有效 - 我隐藏了一个div,同时让另一个可见.
纵向模式下的div在首次加载时看起来很棒.我使用它来获得正确的比例/缩放:
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;" />
即使纵向模式中的内容运行,宽度也是正确的,用户可以向下滚动.横向模式下的显示也很完美.但是,如果横向模式中的内容要求用户向下滚动,那么当用户返回纵向模式时,屏幕将"缩小"以便说出来.无论用户是否在横向模式下向下滚动,都会发生这种情况.
我尝试了许多不同的东西来试图获得正确的屏幕比例/缩放/宽度,但没有运气.有没有办法做到这一点?
提前致谢!
我在没有考虑的情况下手动移动了一堆文件,并且找不到让git认识到文件只是被移动而不是实际上不同的文件的方法.有没有办法做到这一点,除了删除旧的和添加新的(从而丢失历史),或使用git-mv重做所有更改?
我有一个vector<int>有整数的容器(例如{1,2,3,4}),我想转换为表格的字符串
"1,2,3,4"
Run Code Online (Sandbox Code Playgroud)
在C++中最干净的方法是什么?在Python中,我就是这样做的:
>>> array = [1,2,3,4]
>>> ",".join(map(str,array))
'1,2,3,4'
Run Code Online (Sandbox Code Playgroud) 我需要在C#中解析PHP文件.我们基本上要求另一个国家的一些开发人员上传PHP文件,一旦上传,我们需要检查php文件并获取所有方法和类/函数等的列表.
我想过使用一个正则表达式,但是如果一个函数属于一个类等我就无法进行锻炼,所以我想知道是否已经有了'那里'会解析PHP文件并吐出它的函数(我正在尝试避免写一个完整的AST实现).
有谁有想法吗?我看了Coco/R但是找不到PHP语法文件.我正在使用.NET 2.0和C#.
我有一个这样的字符串:00:11:40或00:02:40我如何格式化,以便我总能摆脱领先的零和冒号,所以它看起来像这样11:40或者2点40分
我无法弄清楚为什么它在寻找静态的东西:
public class DatabaseBase
{
private readonly string connectionString;
public DatabaseBase(string connectionString)
{
this.connectionString = connectionString;
}
}
public class MyDB : DatabaseBase
{
readonly string connectionString = ConfigurationManager.AppSettings["MyConnectionString"];
public MyDB() : base(connectionString)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了无法在静态上下文中访问非静态字段'connectionString'.我在基础数据库类中看不到任何静态,为什么?
这是另一个我们做同样事情的例子:
partial class Database : DatabaseBase
{
static string DbConnectionString
{
get
{
if (dbConnectionString == null)
dbConnectionString =
ConfigurationManager.AppSettings["MyConnectionString"];
return dbConnectionString;
}
}
public Database() :base(DbConnectionString)
{
}
Run Code Online (Sandbox Code Playgroud)
好吧,为什么它必须是连接字符串传递的静态字符串?
我对驱动程序开发很新,并试图编写一个简单的过滤器驱动程序来启用或禁用键盘或鼠标设备.如果我可以使它工作,我想用它来插入鼠标插入我的笔记本电脑上的触摸板.我意识到可能有软件已经做到这一点,但我真的对设备驱动程序感兴趣,并希望自己学习如何做到这一点.
我正在使用随WDK一起提供的kbfiltr和moufiltr示例,作为上层过滤器驱动程序安装.kbfiltr示例创建一个pdo,可以通过usermode程序枚举和连接.这允许我将IOCTL发送到由KbFilter_EvtIoDeviceControlForRawPdo处理的PDO .但是,当我尝试做任何与过滤器驱动程序相关的事情时,比如调用KbFilter_EvtIoInternalDeviceControl所以我可以做类似的事情
VOID
KbFilter_EvtIoInternalDeviceControl(
IN WDFQUEUE Queue,
IN WDFREQUEST Request,
IN size_t OutputBufferLength,
IN size_t InputBufferLength,
IN ULONG IoControlCode
)
...
hDevice = WdfIoQueueGetDevice(Queue);
devExt = FilterGetData(hDevice);
switch (IoControlCode) {
...
case IOCTL_INTERNAL_KEYBOARD_DISCONNECT:
//
// Clear the connection parameters in the device extension.
//
devExt->UpperConnectData.ClassService = NULL;
break;
...
}
Run Code Online (Sandbox Code Playgroud)
我得到了一个BSOD.它不是上面的代码,在vanilla示例中,set to null被注释掉,只是调用Kbfilter会导致BSOD.我试图直接在PDO中设置设备扩展,但这也会导致BSOD,可能是因为它是PDO devExt,而不是kbfiltr?
(相关:什么是从BSOD获取堆栈跟踪的好方法?我使用Virtual PC作为我的测试环境和未经检查的XPSP3版本)
我不能直接向驱动程序堆栈发送IOCTL_INTERNAL_KEYBOARD_DISCONNECT(我知道输入设备一次只接受一个连接?)因此需要原始PDO.我真的只需要发送两个IOCTL(启用和禁用),我想我会使用键盘断开连接,因为这些已经定义.
如果我对这些假设有任何错误,请告诉我,我知道我真的是一个菜鸟,但我没有找到很多关于通过PDO进行此类通信的文档.
我想编写一个小的JavaScript(框架),它可以将函数链接到所有以下函数,这些函数都知道它的前一个数据.
基本上,我并不感兴趣的是膨胀(我认为它很小,对于我更小的项目,尽管它很臃肿)jQuery提供但想模仿它的一些行为 - 主要用于学习目的并且数据可用于所有链接功能.
我喜欢,例如能够做类似的事情:
myJsLib.processForm("user", "pass").url("http://domain.dev/form.php").queryString({ secure: true, errorPage: "login_failure.htm" });
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,所有函数必须在某种程度上了解对方正在做什么.
或者,更具体地说:
myJsLib.getDataIntoArray(jsonObjectOrWhatever).each(function(item) { alert(item); });
Run Code Online (Sandbox Code Playgroud)
其中"item"是getDataIntoArray()创建的数组(并返回?).
我希望我有适当的措辞.我试着用这个例子来说有点过分了.理解jQuery的原型扩展被证明是无用的,但我根本就不熟悉JavaScript.请非常感谢详细(但仍然愚蠢)的解释和代码示例.
非常感谢.
编辑:感谢Andrew,我能够想出一些看起来令人满意的东西.请纠正我似乎有的任何误解,谢谢.
function myLib()
{
this.properties = ['status', 'window', 'ui'],
this.inputArrayParms = function(parms)
{
for (var i = 0, len = parms.length; i < len; i++)
{
this.properties[this.properties.length] = parms[i];
}
return this;
},
this.each = function(callback)
{
for (var i = 0, len = this.properties.length; i < len; i++)
{
callback(this.properties[i]);
}
return this;
}
}
var f = …Run Code Online (Sandbox Code Playgroud) 我有两个号码,我想将它们一起用作一个键Map.目前,我正在连接他们的字符串表示.例如,假设密钥号是4和12.我使用:
String key = 4 + "," + 12;
Run Code Online (Sandbox Code Playgroud)
地图声明为Map<String, Object>.
我觉得这太糟了!我喜欢用别的东西String作为钥匙!我想要以最快的方式创建这些密钥.
谁有个好主意?