恋人未成年txt下载,男兵女连长,卧槽是什么意思
背景图片连续滚动,程序已经跑过。前提!背景图片宽度比窗体长些,代码如下:
import java.awt.graphics; import java.awt.image; import javax.swing.imageicon; import mine.game.util.propertiesutil; @suppresswarnings("serial") public class gameframe extends myframe{ private image img=imageutil.imageload("image/bk.jpg"); double movs,speed=1,headmovs; double pwidth,pheight,bgwidth; @override public void paint(graphics g) { //g.drawimage(img, 0, 0, null); //=================================================== pwidth=propertiesutil.getvalue("width", "game.properties"); pheight=propertiesutil.getvalue("height", "game.properties"); bgwidth=new imageicon(img).geticonwidth(); //movs+=speed; if(bgwidth>pwidth+movs){ g.drawimage(img, 0, 0, (int)pwidth,(int)pheight, (int)movs, 0, (int)(pwidth+movs), (int)pheight, null); } if(bgwidth<=pwidth+movs){ headmovs=pwidth+movs-bgwidth; g.drawimage(img, 0, 0, (int)(pwidth-headmovs),(int)pheight, (int)movs, 0, (int)(bgwidth), (int)pheight, null); g.drawimage(img,(int)(pwidth-headmovs), 0, (int)pwidth,(int)pheight, 0, 0, (int)(headmovs), (int)pheight, null); if(headmovs>=pwidth){ //重新初始化所有变量数据,循环 movs=headmovs-pwidth; } } movs+=speed; //=================================================== } public static void main(string[] args) { gameframe gf=new gameframe(); gf.launchframe(); } } //================================= import java.awt.frame; import java.awt.graphics; import java.awt.event.windowadapter; import java.awt.event.windowevent; import java.awt.image.bufferedimage; import mine.game.util.propertiesutil; @suppresswarnings("serial") public class myframe extends frame{ private bufferedimage imgbuffer; private graphics gbuffer; public void launchframe(){ int wd=800;//propertiesutil.getvalue("width", "game.properties"); int ht=600;//propertiesutil.getvalue("height", "game.properties"); setsize(wd,ht); setlocation(0, 0); setvisible(true); new paintthread().start(); addwindowlistener(new windowadapter() { @override public void windowclosing(windowevent e) { system.exit(0); } }); } //重画窗口线程,内部类 class paintthread extends thread{ public void run(){ while(true){ repaint(); try { thread.sleep(10); } catch (interruptedexception e) { e.printstacktrace(); } } } } /** * 双缓冲解决,屏闪.此方法在,继承frame的awt编程中才有效。jfram不凑效,其有自己先进的实现方式(自己猜的,有时间学学) */ @override public void update(graphics g) { if(imgbuffer==null){ imgbuffer=(bufferedimage)createimage(this.getwidth(),this.getsize().height);//创建图形缓冲 //imgbuffer=new bufferedimage((int)this.getsize().getwidth(),(int)this.getsize().getheight(),bufferedimage.type_4byte_abgr);//创建图形缓冲 } gbuffer=imgbuffer.getgraphics();//获取图形缓冲区的图形上下文 gbuffer.fillrect(0, 0, this.getwidth(), this.getheight()); this.paint(gbuffer);//用paint方法中编写的绘图过程对图形缓冲区绘图 gbuffer.dispose();//释放图形上下文资源 g.drawimage(imgbuffer, 0, 0, null);//将图形缓冲区绘制到屏幕上 } } //==================== import java.awt.image; import java.awt.toolkit; import java.net.url; public class imageutil { public static image imageload(string path){ url u=imageutil.class.getclassloader().getresource(path); return toolkit.getdefaulttoolkit().getimage(u); } }
希望以上内容代码对您有所帮助
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
浅析我对 String、StringBuilder、StringBuffer 的理解
使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
Springboot整合freemarker 404问题解决方案
引入mybatis-plus报 Invalid bound statement错误问题的解决方法
网友评论