日期:2014-05-20  浏览次数:20805 次

游戏加载进度条
请问哪位大侠做过这个东西,好看一点的,游戏加载中的那种进度条。自己不愿意写了,可否给我发一个现成的。3Q啦。。。

(从中间向两边计数的最好了。)

只要是进度条就可以了,不管是那么样的都行啦。。但是得独立能跑起来的啦。

多谢了。

------解决方案--------------------
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
//import java.awt.event.WindowAdapter;
public class ProgressMonitorExample extends JPanel
{
public static void main(String args[])
{
JFrame myFrame =new JFrame( "进程条 ");
ProgressMonitorExample progressMonitorExample=new ProgressMonitorExample ();
myFrame.getContentPane().add( "CENTER ",progressMonitorExample);
myFrame.setSize(200,100);
myFrame.addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
myFrame.setVisible(true) ;
}
}
//进程类
class ProgressThread extends Thread
{
ProgressMonitor monitor;
boolean stopStatus=false;
int min=0;
int max=50;
//构造函数
public ProgressThread(Component parent)
{
ProgressMonitor monitor= new ProgressMonitor(parent , "程序的线程 ", "Not Started ",min,max) ;
// addActionListener(new ActionListener(monitor));
}
//停止
public void setStop(boolean value)
{
stopStatus=value;
}
//运行
public void run()
{
monitor.setNote( "Started ");
for(int x=min;x <=max;x++)
{
if(stopStatus)
{
monitor.close();
break;
}
else
{
monitor.setProgress(x);
monitor.setNote( " "+(x*2)+ "% ");

try{
sleep(0);
}
catch(InterruptedException e)
{
//Ignore Exceptions
}
}
}
}
}

------解决方案--------------------
int loadState = 0;
void LoadGame(Graphics g)
{
switch(loadState)
{
case 0:
// loadResouce1();
break;
case 1:
// loadResouce2();
break;
case 2:
// loadResouce3();
break;
//...
case 9:
//laodResouce10();
break;
}
//draw loading bar
g.setColor(0xffffff);
g.drawRect(posX-2,posY-2,width*10+4,height+4);//参数自定
g.setColor(0xff0000);
g.fillRect(posX + width*(10 - loadState - 1)/2, posY, width*(loadState+1),height);
loadState++;
}
------解决方案--------------------
class A{
private Gauge gauge=new Gauge( "游戏载入中 ",false,100,0);
```省略代码若干````
this.append(gauge);
```省略代码若干````
public void gaugePercent(int percent){
gauge.setValue(percent);
}
}

再写另外1个传输数据和数据处理的类

class B{
省略代码若干````
int length=0;
int percent=0;
while((length=is.read(buffer,0,buffer.length))!=-1){
percent+=length;
A.gaugePercent(percent*100/messageLength);
省略代码若干````
}


这个是在游戏开头加载过程中可以使用Gauge```在Form中用的 如果要在游戏中加载的话 上上楼写的不错了