好的,如果我有一个项目使用:
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Color;
import java.awt.Polygon;
Run Code Online (Sandbox Code Playgroud)
它会使Class文件更小:
import java.awt.*
Run Code Online (Sandbox Code Playgroud)
我反对它,因为我输入了许多我不需要的东西.我正在考虑因为它使文件中的字符少得多.
作为程序员和最终用户,您认为哪个更好?为什么?
好的,我正在尝试使用以下代码加载Java文件:
String file = "map.mp";
URL url = this.getClass().getResource(file);
System.out.println("url = " + url);
FileInputStream x = new FileInputStream("" + url);
Run Code Online (Sandbox Code Playgroud)
尽管在同一个文件夹中的类文件是它说,它不能找到它(是的,这是在充分代码try catch块).
但是,它找到另一个使用不同名称的相同代码的文件:
URL url = this.getClass().getResource("default.png");
System.out.println("url2 = " + this.getClass().getResource("default.png"));
BufferedImage img = ImageIO.read(url);
Run Code Online (Sandbox Code Playgroud)
为什么我的代码找不到我的map.mp文件?
我正在尝试在java中创建一个GUI,但是JMenuBar给了我两天的艰难时间.有人可以告诉我为什么它没有出现?
import java.awt.*;
import javax.swing.*;
import javax.swing.JPanel;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import java.util.Arrays;
import javax.imageio.ImageIO;
public class selectionFrame extends JFrame
{
Font name;
Font title;
public void setup() //can't use constructer because this isn't given a size until after it is constructed.
{
//getContentPane().add(menuBar);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(new FlowLayout());
//getContentPane().add(j);
setJMenuBar(createMenuBar());
//getContentPane().add(createMenuBar());
}
public JMenuBar createMenuBar()
{
JMenuBar menuBar;
JMenu m_file;
JMenuItem mi_save;
JMenuItem mi_load;
JMenu m_edit;
JMenuItem mi_tileHeight;
JMenuItem mi_tileWidth;
menuBar = new JMenuBar();
m_file = new JMenu("File");
m_edit …Run Code Online (Sandbox Code Playgroud) 我在style.css中设置了我的字体:
font-family: "Arial, Verdana, sans-serif";
Run Code Online (Sandbox Code Playgroud)
但我的网站似乎仍然使用无衬线字体.这里有什么问题?
好吧,我正在编写一个游戏,其中包含一个pairent类(敌人)的向量,它将被子类(goomba,koopa,boss1)填充,我需要在调用update时调用子类.各自的更新.我设法创建了一个问题的例子.
#include <stdio.h>
class A{
public:
virtual void print(){printf("Hello from A");}
};
class B : public A{
public:
void print(){printf("Hello from B");}
};
int main(){
A ab = B();
ab.print();
while(true){}
}
Run Code Online (Sandbox Code Playgroud)
输出需要:"你好B"输出得到:"你好A"
如何让它调用B的打印功能?
有谁能告诉我
为什么这会导致我的程序崩溃?假设它使得它使t矢量中的所有元素都位于(y + height).
编辑:在其中带有"插入"的行上崩溃.
void createDrawOrder(vector<Thing*> t, vector<int> *order) {
int min = t[0]->y + t[0]->height;
int max = t[0]->y + t[0]->height;
vector<int>::iterator it;
it = order->begin();
order->push_back(0);
for (int i = 1; i < (int) t.size(); i++) {
if ((t[i]->y + t[i]->height) < min) {
min = (t[i]->y + t[i]->height);
order->insert(it, i);
}
else if((t[i]->y + t[i]->height) >= min && (t[i]->y + t[i]->height) < max){
int tempsize = (int) order->size();
for (int j = 0; j < tempsize; …Run Code Online (Sandbox Code Playgroud) 好吧,所以我正在开发一款游戏,我发现我的敌人不喜欢我的碰撞检测,这对我的玩家来说非常有效.经过一些调试我发现它是因为我的敌人比我的瓷砖大,而我的玩家比我的瓷砖小.
现在我需要能够成为大敌和老板,所以这不会做.所以我需要找出一种更好的方法来测试碰撞检测.这就是我目前的做法:
上和下:
if((enemy.left > tile.left && enemy.left < tile.right || enemy.right > tile.left && enemy.right < tile.right) && enemy.top < tile.bottom && enemy.bottom > tile.top){
//collision
}
Run Code Online (Sandbox Code Playgroud)
左和右:
if((enemy.top > tile.top && enemy.top < tile.bottom || enemy.bottom > tile.top && enemy.bottom < tile.bottom) && enemy.left < tile.right && enemy.right > tile.left){
//colision
}
Run Code Online (Sandbox Code Playgroud) 好吧,所以我有两个角度.一个是操纵杆的角度,另一个是相机与玩家的角度.相机的角度.现在我想要它,所以当我按下操纵杆时,它会让玩家远离相机.我该怎么做?在Java或Ardor3d中有一种简单的方法吗?
编辑:这是我如何得到我的角度的代码.
float camDegree = (float) Math.toDegrees(Math.atan2(
_canvas.getCanvasRenderer().getCamera().getLocation().getXf() - colladaNode.getTranslation().getXf(),
_canvas.getCanvasRenderer().getCamera().getLocation().getYf()) - colladaNode.getTranslation().getYf());
player.angle = (float) Math.toDegrees(Math.atan2(padX, padY));
Quaternion camQ = new Quaternion().fromAngleAxis(camDegree, Vector3.UNIT_Y);
Run Code Online (Sandbox Code Playgroud) 好的,所以在IDE中它运行得很好并且说该文件存在,但是一旦我将它打包到一个jar中这个代码:
File levelFolder = new File(getClass().getResource("data/level").getPath());
System.out.println("exists = " + levelFolder.exists());
Run Code Online (Sandbox Code Playgroud)
说该文件夹不存在.任何想法为什么?
编辑:
jar文件列表.
G:\java>jar tvf phantasyblade.jar
6574 Wed Nov 10 22:36:34 PST 2010 META-INF/MANIFEST.MF
6334 Wed Nov 10 22:36:34 PST 2010 META-INF/CYPRI.SF
992 Wed Nov 10 22:36:34 PST 2010 META-INF/CYPRI.RSA
0 Wed Nov 10 22:31:32 PST 2010 META-INF/
717 Mon Nov 08 00:08:30 PST 2010 Switch.class
935 Wed Nov 10 22:21:14 PST 2010 Sword1.class
803 Tue Nov 09 13:42:38 PST 2010 SwordBlock.class
2674 Tue Nov 09 13:42:38 PST 2010 …Run Code Online (Sandbox Code Playgroud)