模拟器如何工作?当我看到NES/SNES或C64模拟器时,它让我震惊.

您是否必须通过解释其特定的装配说明来模拟这些机器的处理器?还有什么进入它?它们通常是如何设计的?
你能为有兴趣编写模拟器(特别是游戏系统)的人提供建议吗?
在Vim中,纠正所有行缩进的命令是什么?
很多时候我会将代码复制并粘贴到远程终端中并使整个过程搞砸了.我想一举解决这个问题.
在课程结构方面,是否有关于项目顺序的官方C#指南?
它会去:
我很好奇是否有关于物品顺序的硬性规定?我到处都是.我想坚持一个特定的标准,所以我可以到处做.
真正的问题是我的更复杂的属性最终看起来很像方法,他们觉得在构造函数之前顶部不合适.
有什么提示/建议吗?
我最近一直在用C#和Java编程,我很好奇最好的地方是初始化我的类字段.
我应该在申报时做到吗?:
public class Dice
{
private int topFace = 1;
private Random myRand = new Random();
public void Roll()
{
// ......
}
}
Run Code Online (Sandbox Code Playgroud)
或者在构造函数中?:
public class Dice
{
private int topFace;
private Random myRand;
public Dice()
{
topFace = 1;
myRand = new Random();
}
public void Roll()
{
// .....
}
}
Run Code Online (Sandbox Code Playgroud)
我真的很好奇你们有些人认为最好的做法.我想保持一致并坚持一种方法.
我想知道的是在更新我的对象在游戏中的位置时是否应该使用System.currentTimeMillis()或System.nanoTime()?它们的运动变化与自上次呼叫后经过的时间成正比,我希望尽可能精确.
我读过不同的操作系统之间存在一些严重的时间分辨率问题(即Mac/Linux的分辨率几乎为1毫秒,而Windows的分辨率为50毫秒).我主要在Windows上运行我的应用程序,50ms分辨率似乎非常不准确.
有没有比我列出的两个更好的选择?
有什么建议/意见吗?
我如何编写一个bat或cmd脚本来通过错误检查可靠地停止和启动服务(或者让我知道它无论出于何种原因都不成功)?
在Stack Overflow社区的帮助下,我写了一个非常基本但有趣的物理模拟器.

单击并拖动鼠标以启动球.它会反弹并最终停在"地板"上.
我想要添加的下一个重要特征是球与球的碰撞.球的运动被分解为ax和y速度矢量.我有重力(每一步的y矢量小减少),我有摩擦(每次与墙碰撞的两个矢量的小减少).球真诚地以令人惊讶的逼真方式移动.
我想我的问题有两个部分:

处理"墙壁"的碰撞检测和由此产生的矢量变化很容易,但我发现球 - 球碰撞的并发症更多.对于墙壁,我只需要采取适当的x或y向量的负数,然后关闭它将朝正确的方向前进.有球我认为不是这样.
一些快速澄清:为了简单起见,我现在可以完全弹性碰撞,现在我的所有球都具有相同的质量,但我将来可能会改变它.
编辑:我发现有用的资源
带矢量的2d球物理:无三角碰撞的二维碰撞.pdf
2d球碰撞检测示例:添加碰撞检测
我的球碰撞检测和响应工作很棒!
相关代码:
碰撞检测:
for (int i = 0; i < ballCount; i++)
{
for (int j = i + 1; j < ballCount; j++)
{
if (balls[i].colliding(balls[j]))
{
balls[i].resolveCollision(balls[j]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这将检查每个球之间的碰撞但跳过多余的检查(如果你必须检查球1是否与球2碰撞,那么你不需要检查球2是否与球1碰撞.此外,它会跳过检查是否与自身发生碰撞).
然后,在我的球类中,我有我的colliding()和resolveCollision()方法:
public boolean colliding(Ball ball)
{
float xd = position.getX() - ball.position.getX();
float yd = position.getY() - ball.position.getY();
float sumRadius = getRadius() + ball.getRadius();
float sqrRadius …Run Code Online (Sandbox Code Playgroud) 加密某些数据与签署某些数据(使用RSA)有什么区别?
它是否简单地颠倒了公钥 - 私钥的作用?
例如,我想使用我的私钥生成消息,所以只有我可能是发件人.我希望我的公钥用于阅读消息,我不在乎谁阅读它们.我希望能够加密某些信息并将其用作我的软件的产品密钥.我只关心我是唯一能够产生这些的人.我想在我的软件中包含我的公钥来解密/读取密钥的签名.我不在乎谁可以读取密钥中的数据,我只关心我是唯一可以生成它们的可验证的人.
在这种情况下签名是否有用?
目标代码,机器代码和汇编代码之间有什么区别?
你能举出他们差异的视觉例子吗?
indentation ×2
java ×2
vi ×2
vim ×2
.net ×1
assembly ×1
auto-indent ×1
batch-file ×1
c# ×1
c64 ×1
cmd ×1
code-cleanup ×1
coding-style ×1
command-line ×1
emulation ×1
encryption ×1
graphics ×1
license-key ×1
machine-code ×1
object-code ×1
physics ×1
rsa ×1
signing ×1
timer ×1
whitespace ×1
windows ×1