我有一个项目,就像我希望的那样,它有自己的功能。这是一个关于玩家(一个blob)拾取随机产生的物品的小游戏,试图让他们的“幸福”不会达到0。
我最初是在BlueJ中写的,但是我问了一位擅长编程的朋友给它提供图形。他说虽然swing包可以工作,但在Eclipse中处理它会更好。
我通过Skype在我的计算机上安装了它,将我的所有文件从BlueJ移到Eclipse,然后开始为视觉效果创建一个类来运行它。
这是代码(Map类中的所有变量和函数都在运行):
public void setup()
{
//int x = gameMap.getXScale()*5 + 5*(xSC+2);
//int y = gameMap.getYScale()*5 + 5*(ySC+2) + 150;
gameMap = new Map(MapTypes.treasureRoom(), BlobTypes.trBlob());
xSC = gameMap.getXScale();
ySC = gameMap.getYScale();
sze = 100;
spc = 5;
int x = gameMap.getXScale()*5 + 5*(xSC+2);
int y = gameMap.getYScale()*5 + 5*(ySC+2) + 150;
size(x,y);
}
public void draw()
{
int[] rgb = gameMap.getBlob().getRGBVal();
int r = 204;
int g = 102;
int b = 0;
Node[][] n = gameMap.getMapOfNodes();
background(0);
for(int i = 0; i < ySC; i ++){
for(int j = 0; j < xSC; j++){
if(n[j][i].getNodeType() == 0){
r = 128;
g = 128;
b = 128;
}else if(n[j][i].getNodeType() == 1){
r = rgb[0];
g = rgb[1];
b = rgb[2];
}else if(n[j][i].getNodeType() == 2){
r = 204;
g = 153;
b = 255;
}else if(n[j][i].getNodeType() == 3){
r = 0;
g = 0;
b = 0;
}
rectt(j*10+spc, i*10+spc, sze, sze, 5, r, g, b);
}
}
fill(100);
rect(50, 50, 100, 100);
}
void rectt(float x, float y, float w, float h, float ra, int r, int b, int g)
{
fill(r,b,g);
rect(x, y, w, h, ra);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
它位于Game()
类extends PApplet
内。当我尝试运行它(作为应用程序)时,根本没有显示任何屏幕。我该怎么办?
编辑:Node[][]
开头附近的draw()
是地图上玩家可以成为的每个点的数组。此外,MapTypes
和BlobTypes
对象只是用于存储不同Map objects
和Blob (the player) objects
的方法的集合。
答案 0 :(得分:0)
你没有在主方法类中调用任何东西
public static void main(String[] args) {
// TODO Auto-generated method stub
}
我无法亲自告诉你你需要从这个课程中调用什么,但它应该是这样的
public static void main(String[] args) {
ThisClass main = new ThisClass(parameters if any);
main.setup();
while(game is not over){
main.draw();
update other game logic
}
}
作为一个注释,你的while循环的一次迭代与一帧相同。因此,您希望每帧完成的所有内容都必须放在此处。