小编exo*_*ter的帖子

双缓冲与awt

使用awt可以实现双缓冲(在java中)吗?目前,我知道swing不应该和awt一起使用,所以我不能使用BufferStrategy等等(我已经有一些用awt编写的代码,我不想在swing中重写).

如果使用awt可以实现双缓冲,我是否必须手动编写缓冲区?与swing不同,awt似乎没有相同的内置双缓冲功能.

如果我必须手动编写代码,是否有一个很好的教程可供查看?或者新手程序员使用swing更容易/更明智?

对于多步骤问题,我们深表歉意.谢谢你的时间 :)

java swing doublebuffered awt

7
推荐指数
1
解决办法
4453
查看次数

在 Json.NET 中使用 FormatterAssemblyStyle.Simple 序列化 Type 类型的字段

我在 Unity3D 中使用 Json.NET (v90r1) 的 Net20 库,并且尝试使用 Json.NET 序列化 Type 类型的字段。

我发现这FormatterAssemblyStyle会影响自动生成的类型信息,但它似乎不会影响 Type 类型的字段。例如:

using Newtonsoft.Json;
using System.Runtime.Serialization.Formatters;
using UnityEngine;

public class Example : MonoBehaviour
{
    void Start()
    {
        var settings = new JsonSerializerSettings() {
            Formatting = Formatting.Indented,
            TypeNameHandling = TypeNameHandling.All,
            TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple,
        };

        Debug.Log(JsonConvert.SerializeObject(new Foo(), settings));
    }
}

public class Foo
{
    public System.Type type = typeof(void);
}
Run Code Online (Sandbox Code Playgroud)

这将产生以下 JSON 字符串:

{
  "$type": "Foo, Assembly-CSharp",
  "type": "System.Void, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,FormatterAssemblyStyle.Simple已用于 …

c# json json.net

5
推荐指数
1
解决办法
3632
查看次数

Psuedo-Random Traversal of a Set

我一直在阅读游戏编码完成(第4版),我在第3章的"Grab Bag of Useful Stuff"部分中理解"Set的伪随机遍历"路径时遇到了一些问题.

您有没有想过CD播放器上的"随机"按钮是如何工作的?它将随机播放CD上的每首歌曲,而不会播放两次相同的歌曲.这是一个非常有用的解决方案,可确保您的游戏中的玩家在有机会再次看到相同的内容之前,可以看到最广泛的功能,如对象,效果或角色.

在此描述之后,它继续讨论我尝试在Java中实现的C++实现,但是无法成功复制.它还简要描述了它是如何工作的,但我也没有得到它.

我发现这个 StackOverflow回答了一个类似的问题,但不幸的是,答案中的示例链接已经死了,我也不理解维基百科的文章,尽管关于它的内容的描述似乎描述了我正在寻找的内容.

要清楚,我不是在寻找一种随机重新订购集合的方法.我正在寻找一种方法,在重复之前从集合中选择一个元素.

有人可以解释这种行为是如何工作的并在Java中提供一个例子吗?谢谢!

[ 编辑 ]我认为在这里有一个实施的摘录来帮助解释我在说什么可能是有用的.

这是它的工作原理.通过选择三个大于零的随机值来计算跳过值.这些值成为二次系数,域值(x)设置为集合的序数值:

Skip = RandomA * (members * members) + (RandomB * members) + RandomC
Run Code Online (Sandbox Code Playgroud)

使用此跳过值,您可以使用这段代码以伪随机顺序遍历整个集合一次:

nextMember += skip;
nextMember %= prime;
Run Code Online (Sandbox Code Playgroud)

skip的值远大于您所设置的成员数,所选值似乎随机跳过.当然,此代码位于while循环内,以捕获所选值大于您的设置但仍小于素数的情况.

java random

3
推荐指数
1
解决办法
948
查看次数

从同一个类调用一个方法

我正在为一个连续4的简单游戏编写一个类,但是我遇到了在同一个类中调用方法的问题.为了完整起见,这是全班:

class Grid:
    grid = None
    # creates a new empty 10 x 10 grid
    def reset():
        Grid.grid = [[0] * 10 for i in range(10)]
    # places an X or O
    def place(player,x,y):
        Grid.grid[x][y] = player
    # returns the element in the grid
    def getAt(x,y):
        return Grid.grid[x][y]
    # checks for wins in a certain direction
    def checkLine(player,v,count,x,y):
        x = x+v[0]
        y = y+v[1]
        if x < 0 or x > 9:
            return
        if y < 0 or y > …
Run Code Online (Sandbox Code Playgroud)

python class

1
推荐指数
1
解决办法
2万
查看次数

表示[0,255]范围内的值所需的最小小数位数

假设我在间隔[0.0, 1.0]中有一个表示为字符串的浮点数.我们称之为这个价值floatstr.我们还假设该值表示区间中的整数[0, 255].

转换floatstr为整数的公式是(在python中): int(round(float(floatstr)*255))

floatstr准确表示此值所需的最小小数点是多少?如果有这样的公式,这个最小数量是如何计算的?

python floating-point precision floating-accuracy

1
推荐指数
1
解决办法
163
查看次数