所以我有两行非常相似的代码。这是第一行(没有问题):
Player.Tex = Content.Load<Texture2D>(@"Textures\d");
这是第二行(具有TypeInitializationException)
HealthPickup.Tex = Content.Load<Texture2D>(@"Textures\healthPickup");
在Player类和HealthPickup类中,公共类之后有一行代码:
public static Texture2D Tex;
那么为什么我的HealthPickup类会导致此错误?我错过了一些明显的事吗?我试过寻找异常,但没有任何帮助。
编辑:根据要求,我的HealthPickup课程如下:
另外,我的Player类:
请注意,除了4个变量之外,我的HealthPickup类与我的Player类相同,(Tex,Dir,Pos和Player和Tex中的速度,randX,randY,HealthPickup中的Pos)
答案 0 :(得分:1)
您正在尝试将Random
类型的对象转换为整数。这是不允许的。您可以使用Random
方法重载之一从Next
对象获取随机数。像这样:
(new Random (Guid.NewGuid().GetHashCode())).Next()
使用Guid.NewGuid()...
不是强制性的,但会确保您获得具有不同种子的2个Random
个对象
答案 1 :(得分:0)
原来我的HealthPickup类中有这些行:
public static int randX = Convert.ToInt32(new Random(1));
public static int randY = Convert.ToInt32(new Random(1));
public static Point Pos = new Point(randX, randY);
显然Point()不喜欢随机数,所以我改为:
public static Point Pos = new Point(50, 50);