Eclipse中有相当一层的组织.您可以拥有多个工作区,每个工作区都可以有项目,这些项目可以分配到工作集,然后每个项目都可以有源文件夹....
你如何使用这个组织?你甚至使用它吗?工作集如此隐蔽,我几乎不知道它们是什么; 它们是常用的,还是因为它们如此常见而被隐藏?
这背后的方法甚至是什么?我想对使用所有这些不同组织层的推荐方法做一个很好的解释,因为目前我基本上只在一个工作区(默认的%USER%/工作区文件夹)中有一堆随机项目,而且它到了是一个字母混乱.
所以从本质上讲:如何保持Eclipse工作空间的整理?
作为Java游戏的Minecraft本周末免费.Windows版本作为exe文件下载.我很好奇EXE文件正在做什么以及它从哪里解压缩并运行实际的游戏JAR.所以使用命令,我找到了运行javaw.exe进程的命令行参数; 奇怪的是,它是使用指向可执行文件的类路径启动的!(意思是,.exe文件充当jar).实际上,在将Minecraft.exe重命名为Minecraft.jar之后,我能够打开它并查看加载器类文件等,就像它是一个普通的JAR文件而不是EXE一样.
这怎么可能?我怎么能用我自己的JAR文件呢?
电脑游戏如何发挥作用?我将使用几何高度图(虽然我稍后会对其进行优化)但我想知道最好的技术是什么,例如,"绘制"我的地面; 到处都是草地,这里和那里的泥路,城镇内的砾石,以及每种材料之间的平滑过渡.
我只是使用一个巨大的预烘烤纹理?当我可以平铺现有纹理时,这看起来非常低效.那么我是否为每个现有纹理使用一个巨大的alpha贴图?从理论上讲,这对我来说听起来不错,但我如何实际做到这一点以及后果是什么?我真的不知道从哪里开始,我的谷歌搜索并没有证明是非常有效的.
我宁愿不必将纹理"捕捉"到网格上(即空间(0,0)是草,空间(0,2)是泥土,空间(0,1)是草土过渡); 我宁愿能够任意绘画,以使它看起来更有说服力.当然,这将是一种简单的方法,但它在图形质量和"现实主义"方面的牺牲太多了.
我主要是在这里寻找理论和选择.我正在使用OpenGL,所以如果你能提供关于OpenGL的工作方式的提示,以及我可能从未听说过的功能,那就太棒了.
只是为了澄清,Oblivion是我正在寻找的一个很好的参考.我不知道地面的几何形状(高度图,静态3D模型等),但它们的地形有不同的地面类型和它们之间的平滑过渡,就像我在说的那样.这是一个示例图像,注意鹅卵石如何融入草丛,不切实际但顺利:http://www.elitistsnob.com/images/Oblivion%202006-05-21%2008-38-25-15.jpg
另外我想我在其中一本游戏编程宝石书中读过这篇文章,但当时我并没有太注意它,现在是夏天我无法访问我大学的图书馆!我现在正在寻找目录,如果我发现它会编辑,但直到8月中旬我仍然无法阅读.
编辑:啊,游戏编程宝石7有一个标题为"为室外地形渲染绘制大纹理"的章节5.8,这听起来就像我需要的,但是我的U的图书馆甚至没有那本书!我在其他Game Programming Gems书籍中找不到任何完全相同的东西,尽管有一些人有一些地形几何文章.
我是支持事情的忠实粉丝.我把我重要的学校论文放在Dropbox的一个文件夹里.我确保所有照片都复制到外部驱动器.我有一个家庭服务器,我将重要文件保存在服务器内的两个驱动器上(如软件RAID 1).
所以对于我的代码,我总是使用Subversion备份它.我保留trunk文件夹的应用程序的稳定副本,但后来我创建了一个用我的用户名命名的分支,里面有我的工作副本.我在该分支的提交之间做了很少的更改,并且理解其中的代码是我的备份.
现在我正在研究Mercurial,我必须承认我还没有真正使用它,所以我可能会把这一切都搞错了.但在我看来,您有一个服务器端存储库,然后以本地存储库的形式将其克隆到工作目录.然后,当您处理某些事情时,您将提交到该本地存储库,当事物处于要与其他人共享的状态时,您hg push将进入服务器上的父存储库.
在推出稳定,经过测试,无错误的代码之间,备份在哪里?
在做了一些思考后,我得出的结论是,它不是用于备份目的,而是假设你自己处理了这个问题.我想我需要将我的Mercurial本地存储库保存在我的Dropbox或其他备份位置,因为我的正在进行的代码没有被推送到服务器.
这几乎是它,还是我错过了什么?如果您使用Mercurial,您如何备份本地存储库?如果你今天早上打开你的电脑并且你的硬盘驱动器起火了(或者更可能的是,读头坏了,或者操作系统自行损坏了......),会丢失什么?如果您在过去一周内开发模块,为其编写测试用例,记录和评论它,然后病毒擦除您的本地存储库,那不是唯一的副本吗?
那么另一方面,您是否为每个本地存储库创建了一个远程存储库并一直推送到它?
你如何找到平衡?您如何确保备份代码?使用Mercurial作为备份和使用本地文件系统备份实用程序保持本地存储库安全之间的界限在哪里?
什么是技术背后的基本前提,例如在Oblivion(以及其他游戏中,我确定;没有足够的知识)中发现的技术,当你从远处观看它们时,远处的物体会被模糊地显示出来?例如,一个大塔距离一英里远,您会看到它从地平线上隐藏起来的模糊矩形......显然,一个巨大的3D场景无法全部渲染,我知道在高度图的情况下,只有近似算法用于降低远离相机的高度图质量,但对于特定物体,显示这些物体的最佳方式是什么?
我想也许是一种预渲染技术,在这种技术中你可以选择景观周围的特定位置,然后制作一个程序,绘制围绕该点的所有高度图和3D模型并拍照.它需要几张照片,然后当播放器靠近那个地方时,这些照片将被用作天空盒.
另一个更明显的技术是存储非常粗糙的3D模型,但是3D渲染系统如何专门选择渲染建筑物的粗略模型而不是其他不太重要的粗略模型(并且可能不可见 - 来自 - 物品?你会如何与高度图一起存储类似的东西?也许通过设计,只有一些这样重要的地标,然后只将它们的列表存储在一个小文件中,并在每个帧上渲染那些小于x真正远距离的那些?
我知道Halo系列选择将游戏划分为级别,然后每个级别都有一个不同的手工天空盒.这是我在第一个建议中的目的,但我不确定.我想我真的只是想在我的想法中收集其他想法或改进或问题,这样我就可以选择用我有限的时间和知识来制作原型.
另一个相关主题是如何在远处显示山脉,因为它们将是高度图的一部分而不是顶部的3D模型,因此它们实际上不能具有粗略版本,并且高度图近似算法可能会螺旋从那么远的山上上山(假设你甚至会尝试近似并渲染如此遥远的几何形状,你可能不会这样).如果您在答案中也涵盖了这一点,那么奖励积分.:)
谢谢!
PS我正在使用OpenGL.我只是在寻找基本概念,但如果您选择发布示例代码,请使用OpenGL函数和术语!:)
编辑:谢谢你的答案!出于文档目的,这里是我发现的另一个资源:游戏编程中的第4.9章宝石2涵盖了将远景渲染到天空盒的概念:http://books.google.com/books? id = 1-NFBElV97IC&lpg = PA416 &ots = SUMIfijZly& dq =渲染%20distant%20to%20skybox&pg = PA416 (不幸的是,预览只是本章的第一页......我将在8月份回来后立即从我大学的图书馆获取该书)
在阅读完这些内容之后,我仍然认为LOD适用于距离相当近的物体.如果物体甚至不是一个像素大,但你仍然将它们送到显卡,你只是浪费电力,无论是否使用LOD.对于除了绝对最大的远距离物体之外的一切都是如此; 在大多数情况下,一些高大的建筑物和一些山脉,但是从这样的距离看不到小的细节模型(灌木丛,甚至树木,岩石,其他任何风景......).所以我喜欢渲染到天空盒技术,当我到达这座桥时,我就是这样穿过它的; 我会确保为所有型号使用LOD,我只是不会渲染这样的距离.
顺便说一下,我更像是一个Oblivion游戏,所以答案可能取决于游戏类型.
尽我所能,我无法在本地运行JNLP文件(通过双击).这似乎是一个定位jar文件的问题,即使我相对于jnlp文件指定它也是如此.我收到以下错误:
字段<jar> href具有无效值:helloworld.jar
即使JNLP文件与helloworld.jar位于同一文件夹中,也会发生这种情况.我已经完成了搜索,这是一个一致的问题,特别是对于想要在CD上打包应用程序并使用JNLP的人.Sun提供的唯一"解决方案"是通过命令行指定代码库的能力,但这并没有多大帮助.我不明白为什么他们不假设或允许代码库是"." 或"file://." - 我在jnlp标记的codebase参数中尝试了这些类型的东西(在文件中)并且没有任何效果.
我使用JNLP文件非常方便,因为我不需要担心平台检测,本机库,甚至主要的JOGL jar文件; 我只是包含这一行,一切都为我完成:
<extension name="JOGL" href="http://download.java.net/media/jogl/builds/archive/jsr-231-2.0-beta10/webstart/jogl-all-awt.jnlp" />
Run Code Online (Sandbox Code Playgroud)
我希望找到一些可以做同样事情的东西.如果没有,我可以手动(或使用Ant)抓取JOGL jar文件,这不是什么大问题; 这只是JNLP为我做的事情之一,我真的很想念.
什么是JNLP文件的最佳替代品,让我在本地使用(即双击运行)?有什么优雅的东西,或者我只需要为Linux编写一个shell脚本,一个Windows的批处理文件,并让Ant检测并下载相应的JOGL jar?
在考虑一个游戏平台时,我决定采用多平台(Win/Lin/Mac),但就浏览器与桌面而言,我无法下定决心.由于我在发展方面并不是太过分,现在有了第二个想法,我希望你的意见!
有没有办法让两全其美?我喜欢Java applets,但我也非常喜欢编写桌面游戏的原因.我不想经常在Java applet项目和C++项目之间移植所有东西; 这将是工作的两倍!
Unity选择编写自己的网络播放器插件.我不喜欢这个,因为我是不会安装任何网络播放器的人之一,我不认为自己能够说服观众安装浏览器插件.
我有什么选择?除了Unity之外,还有其他一些有浏览器和桌面版本的游戏吗?我在上面的pro/con列表中遗漏了什么吗?
我想问一下制作阴影和光量最简单的方法是什么?如何让现场更真实?你知道任何好的技巧吗?我听说要制作阴影我必须使用模板缓冲区,但我不知道如何:/我找不到任何超级简单的例子如何制作它.
这不是一个真实的情况; 请忽略您认为适用的法律问题,因为他们没有.
假设我有一组200个已知的有效许可证密钥用于假设的软件许可算法,而许可证密钥由5组5个字母数字不区分大小写(全部大写)字符组成.例:HXDY6-R3DD7-Y8FRT-UNPVT-JSKON
是否有可能(或可能)推断系统的其他可能密钥?
如果已知该集是连续的,该怎么办 这种方法如何改变方法,这给了什么样的优势?
我之前听说过"keygens",但我相信它们可能是通过反编译许可软件而不是检查已知的有效密钥来制作的.在这种情况下,我只给出了一组键,我必须确定算法.我也被告知这是一个行业标准算法,所以它可能不是什么基本的东西,尽管我认为机会总是在那里.
如果您认为这不属于Stack Overflow,请至少建议另一个地方让我查看或提出问题.老实说,我不知道从哪里开始这样的问题.我甚至不知道这类问题的术语.
我知道这是Builder模式,但它是它的修改形式.维基百科关于Builder模式的文章给出了一个例子:
pizzaBuilder.createNewPizzaProduct();
pizzaBuilder.buildDough();
pizzaBuilder.buildSauce();
pizzaBuilder.buildTopping();
Pizza p = pizzaBuilder.getPizza();
Run Code Online (Sandbox Code Playgroud)
是否有修改后的Builder模式的特定名称,如下所示:
Pizza p = pizzaBuilder.createNewPizzaProduct().buildDough().buildSauce().buildTopping();
Run Code Online (Sandbox Code Playgroud)
这在jQuery库中最为明显,您可以在其中执行以下操作:
$('li.item-a').parent().css('background-color', 'red');
Run Code Online (Sandbox Code Playgroud)
其中每个方法(包括初始$())返回一个jQuery对象,该对象通常表示一组页面元素,并且每个方法都以某种方式对该集合进行操作.