你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 图形图象处理与游戏编程
Java Applet开发大鱼吃小鱼游戏(二)
 

<applet code=FishEat.class codebase=. width=640 height=480>

 alt="Your browser understands the &lt;APPLET&gt; tag but isn't running the applet, for some reason."

 Your browser is completely ignoring the &lt;APPLET&gt; tag!     

</applet>

code=FishEat.class指明经过编译的Java类文件;codebase=.指明该类文件所在路径;width=640 height=480指明Java Applet的显示大小。

alt=后面字符串在浏览器不支持Java Applet运行时显示。

每个Java Applet都需要从Applet类中派生类。类中有如下重要方法,如表1所示。

1 Java Applet中重要方法

方法名

调用方法

Init

程序装载时只执行一次

Start

每次重新访问Applet时调用

Stop

Applet所在页面被其它页面取代时调用

Paint

需要重绘屏幕时调用

Update

一般用于显式调用paint方法

Run

执行线程中代码

               

游戏中的每种鱼都对应一个gif图形文件。鱼的图形从Internet上下载得到,并且经过PhotoShop处理,使其背景能够透明显示,这样,鱼的图形便能与蓝色背景相融合。所有鱼的图片都有正向和反向两个文件。用getImage函数装载图片,用drawImage函数显示图片。

为了消除图片显示闪烁,可以创建一个后台图形对象,将所有要显示的东西先向这个后台对象写入,然后再一次性地将该后台对象显示到屏幕。

要使小鱼动起来,需要建立一个线程,在该线程中每隔一段时间要按一定规则更改小鱼的坐标。这样周而复始地改变小鱼的坐标并显示,实际效果就是小鱼在不停地游动。

大鲨鱼和小鱼图片相重叠时,程序中会有一个判断,从而增加分数和生命值,并暂停该小鱼的显示,实际效果就是小鱼被吃掉了。

同样,大鲨鱼图片和气泡相重叠时,程序也会进行判断,从而减少生命值。

4   程序代码

import java.awt.*;

import java.awt.event.*;

import java.applet.Applet;

/*Applet中派生类,同时加入鼠标处理、线程处理*/

public class FishEat extends Applet implements MouseMotionListener,Runnable

{

  public Image offScreenImage;  //后台画布

  public Graphics offScreen;  //后台图形对象

  public int mousex,mousey,lastmousex,lastmousey; 

//表示鼠标的当前坐标和上一次的坐标

  public int direction=1;  //表示大鲨鱼的前进方向,1为正向,0为反向

  public Thread timer;  //时间线程

  public int[][] fishpos;  //记录小鱼的当前坐标

  public int[][] bubblepos;  //记录气泡的当前坐标

  public int showfish1,showfish2,showfish3,showfish4,
  推荐精品文章

·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 
·2023年7月目录
·2023年6月目录 
·2023年5月目录
·2023年4月目录 
·2023年3月目录 
·2023年2月目录 
·2023年1月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089