[問題] applet執行結果和在eclipse中執行不一樣
想要請問一下板上的高手 小弟最近在想applet到底能不能改變螢幕解析度,然後做出像
CS那樣全螢幕的遊戲,如果是在eclipse執行利用GraphicsEnvironment....etc可以很容
易做到,但是如果要放入網頁呢? 所以小弟寫了以下:
import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.Graphics;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Window;
import javax.swing.JApplet;
import javax.swing.JFrame;
public class myapp extends JApplet{
private GraphicsDevice vc;private GraphicsEnvironment env;
private DisplayMode dm;String s="";
public void init(){
dm=new DisplayMode(800,600,16,0);
env=GraphicsEnvironment.getLocalGraphicsEnvironment();
vc=env.getDefaultScreenDevice();
setFullScreen(dm);
long st=System.currentTimeMillis();
while (st+5000>System.currentTimeMillis()){
Window w=vc.getFullScreenWindow();
Graphics g=w.getGraphics();
g.setColor(Color.BLUE);
g.fillRect(0, 0, 800, 600);
g.setColor(Color.red);
g.fillOval(30, 30, 300, 300);
g.setColor(Color.black);
g.drawString(s, 500, 300);
g.dispose();
}
Window w=vc.getFullScreenWindow();
w.dispose();
vc.setFullScreenWindow(null);
}
public void setFullScreen(DisplayMode dm){
JFrame f=new JFrame();
f.setUndecorated(true);
f.setResizable(false);
f.setIgnoreRepaint(true);
vc.setFullScreenWindow(f);
if (vc.isDisplayChangeSupported()){
try{
vc.setDisplayMode(dm);
s="is ok";
}catch(Exception ex){s="not ok";}
}else{s="no support";}
}
}
來做實驗,結果很奇怪,在eclipse內執行可以順利得到全螢幕並畫上該畫的東西(當然
沒用bufferstrategy,因為只是要做實驗),並且順利設定displaymode(drawstring顯示
is ok,但當我自己真的在html中嵌入此applet時,開了該html,就不能改變displaymode
(drawstring顯示是no support),而且不但解析度不變,也沒進入真正的fullscreen,因
為下面"開始"那排控制列不會消失。
難道是放在網頁中部份的操作就不能執行嗎? 所以這麼說來不能在網頁中嵌入applet製作
全螢幕的mouselook遊戲?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 121.254.118.167
→
10/21 18:25, , 1F
10/21 18:25, 1F