我很难在测试和代码之间建立连接.我可以在这里提出很多问题,例如目录结构和测试类的命名以及JUnit 3 vs 4等,但我宁愿找到一个正确的示例项目并通过阅读来学习.
我想要一些不太复杂的东西,以便我能够轻松理解它,而JUnit 4将是最好的(没有理由坚持3,因为我开始新鲜,对吧?).我在Windows 7上,我使用Eclipse,我正在计划/希望学习和使用Hudson.我喜欢Ant,对Maven没有很好的体验,但这也很酷.
是否有符合此标准的示例项目?
编辑:这些答案都没有提到哈德森; 我真的很喜欢Craftsman的文章(也许它会进入持续集成),但是其他人还有其他任何建议吗?
我刚才正在查看代码教程,并发现了一些有趣的东西 - import staticJDK 5中引入的功能:
import static org.junit.Assert.assertEquals;
public class AdditionTest {
private int x = 1;
private int y = 1;
@Test public void addition() {
int z = x + y;
assertEquals(2, z);
/* ^ this is a static method, normally called by Assert.assertEquals */
}
}
Run Code Online (Sandbox Code Playgroud)
它让我想知道,JDK 5和6中引入了哪些其他功能我不知道?还有其他新的关键字用法吗?任何值得注意的新库类或函数?
我知道那里有发行说明或更改日志,我不是在寻找"RTFM"的答案.我想知道一个简短的列表,在您看来,您认为哪些功能在JDK 5或6中最具游戏规则.
我刚刚阅读了DirectX文档,并在IDirect3DDevice9 :: BeginScene的页面中遇到了一些有趣的东西:
要在CPU和图形加速器之间实现最大并行性,最好尽可能远远地调用 IDirect3DDevice9 :: EndScene.
我已经习惯于编写我的游戏循环来处理输入等等,然后画画.我有倒退吗?也许游戏循环应该更像这样:(半伪代码,显然)
while(running) {
d3ddev->Clear(...);
d3ddev->BeginScene();
// draw things
d3ddev->EndScene();
// handle input
// do any other processing
// play sounds, etc.
d3ddev->Present(NULL, NULL, NULL, NULL);
}
Run Code Online (Sandbox Code Playgroud)
根据文档的那句话,这个循环将"启用最大并行性".
这常见吗?订购这样的游戏循环有什么缺点吗?在第一次迭代之后我发现它没有真正的问题...我知道知道实际速度增加的最佳方法就是实际对它进行基准测试,但是还有其他人已经尝试过这个并且你可以证明任何实际的提速?
有一款名为Air Display的 iPad 应用程序,可以将您的 iPad 变成计算机的无线第二个显示器。我还没有亲自尝试过,所以我不能保证它的有效性,而且我认为它有很大的延迟,但我认为将一些东西扔到 iPad 屏幕上作为参考,然后在你的设备上工作会非常有用。笔记本电脑屏幕。例如,如果您正在撰写研究论文,您可以在浏览器中找到有用的内容,然后将其扔到 iPad 屏幕上并在主屏幕上输入 Word。
当我看到这种事情时,我想知道他们是如何实现的。对于 Windows 7,我从哪里开始学习呢?我有一些 C 经验和一些 C++ 经验,以及一点 Win32 经验。我猜测他们必须开发某种虚拟驱动程序,欺骗 Windows 认为已连接第二台显示器,然后通过无线方式将显示内容传输到 iPad,然后由 iPad 应用程序将其显示在屏幕上。
所以我想我必须编写一个显示适配器驱动程序,对吧?我该去哪里学习如何操作?有这样的东西的规格吗?我想我可以弄清楚剩下的事情,但我想神秘的部分是如何编写一个驱动程序来欺骗 Windows 认为我的应用程序是第二个显示器,并从虚拟第二个显示器中的应用程序获取像素。
你能先给我一些关于创建驱动程序之类的资源吗?
如果您有如下方法:
public synchronized void addOne() {
a++;
}
Run Code Online (Sandbox Code Playgroud)
它等同于以下内容:(如果我错了,请纠正我)
public void addOne() {
synchronized(this) {
a++;
}
}
Run Code Online (Sandbox Code Playgroud)
但是什么相当于以下方法?:
public static synchronized void addOne() {
a++;
// (in this case 'a' must be static)
}
Run Code Online (Sandbox Code Playgroud)
什么是同步块,其作用与静态同步方法相同?我理解静态同步方法是在类而不是实例上同步的(因为没有实例),但是它的语法是什么?
我正在编写一个 PowerShell Cmdlet 并使用WriteDebug,但我想编写一个需要额外 API 调用的对象,我宁愿在调试关闭时不进行该调用。如何检测是否设置了 Debug 标志,以便我可以完全跳过对 WriteDebug 的调用?
例如,我的 WriteDebug 调用将如下所示:
WriteDebug(string.Format("Name : {0}", api.GetName(myobj)));
Run Code Online (Sandbox Code Playgroud)
在那个例子中,我想避免调用api.GetName除非打开调试。
如果我有这样的包树:
com.foo
com.foo.bar
com.foo.bar.baz
Run Code Online (Sandbox Code Playgroud)
然后我添加了一个package-info.java文件com.foo,并添加注释到com.foo包,将注释也可以适用于儿童套餐,com.foo.bar和com.foo.bar.baz(等)?或者我需要package-info.java用相同的注释在每个中制作另一个吗?
我想写一个严肃的2D游戏,如果我有一个Linux版本和一个Windows版本(最终是OSX版本),那就太好了.Java非常棒,因为它与平台无关.但是Java写一个严肃的游戏太慢了.所以,我想用C++编写它.但是C++并不是非常友好的跨平台.我可以找到适用于Windows的游戏库和适用于Linux的库,但我正在通过在Windows平台和Linux平台上重新编译源代码来搜索我可以使用的游戏库.
是否有引擎或这个想法无关紧要?是不是很容易(重新编译)?
任何有关C++库的建议和信息都将非常感谢!
我正在制作一款你可以在这里看到的游戏,如果你在Windows或Linux上:http://insertnamehere.org/birdsofprey/
如果你单击并按住鼠标在鸟上,你可以看到我只是摆动摆动来回的鸟.相反,我想实现一个更逼真的动作,鼠标的移动会影响鸟的摆动,就像一个带有移动枢轴的钟摆一样.
我找到了一个关于这个主题的文件,但方程式依赖于知道枢轴的加速度(X''和Y''),我没有; 我只是反复将鸟图形转换为当前鼠标位置.
我有鸟的角度(-180到180度),角速度和加速度.每次移动鼠标时我都需要改变这三个变量,所以我也会有最后一个(x,y)和新鼠标(x,y).
这是否足以通过移动枢轴很好地模拟摆锤?
哦,我希望TCP是基于数据包的,就像UDP一样![见评论]但是,唉,情况并非如此,所以我正在尝试实现自己的数据包层.这是迄今为止的事件链(忽略写入数据包)
哦,我的数据包非常简单:长度为两个无符号字节,然后是byte [length]数据.(我无法想象如果它们更复杂,我会在if声明中听到我的声音!)
Server处于无限循环中,接受连接并将它们添加到Connections 列表中.PacketGatherer(另一个线程)使用a Selector来确定哪些Connection.SocketChannels已准备好读取.Connection人read().Connection都有一个部分IncomingPacket和一个Packet已完全读取并等待处理的s 列表.read():
IncomingPacket人阅读更多数据.(IncomingPacket.readData下)IncomingPacket.complete()),则从中创建一个Packet并粘贴Packet到等待处理的列表中,然后用新的替换它IncomingPacket.这有几个问题.首先,一次只读取一个数据包.如果IncomingPacket只需要一个字节,那么这个传递只读取一个字节.这当然可以通过循环来修复,但它开始变得复杂,我想知道是否有更好的整体方式.
其次,逻辑中IncomingPacket有点疯狂,能够读取两个字节的长度然后读取实际数据.以下是快速简便阅读的代码:
int readBytes; // number of total bytes read so far
byte length1, length2; // each byte in an unsigned short int (see getLength())
public int getLength() { // …Run Code Online (Sandbox Code Playgroud)