java版植物大战僵尸尸手机触屏版java

JAVA知识列表(42)
1.闲来无事,做了个简单版的植物大战僵尸,不多说直接看效果图:
2.程序的项目结构如下:
3.先上素材
图片素材 链接: 密码:forj
项目源码 链接: 密码:unb4
4.下面贴上代码
MainGame .java
import javax.swing.JF
import com.yujie.draw.GameDrawP
* 程序主入口
public class MainGame {
public static void main(String[] args) {
JFrame jFrame = new JFrame();
jFrame.setBounds(0, 0, 1400, 600);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setResizable(false);
GameDrawPanel gameDrawPanel = new GameDrawPanel();
new Thread(gameDrawPanel).start();
jFrame.addMouseListener(gameDrawPanel);
jFrame.addMouseMotionListener(gameDrawPanel);
jFrame.add(gameDrawPanel);
jFrame.setVisible(true);
GameDrawPanel .java
package com.yujie.
import java.awt.C
import java.awt.F
import java.awt.G
import java.awt.I
import java.awt.P
import java.awt.T
import java.awt.event.ActionE
import java.awt.event.ActionL
import java.awt.event.MouseE
import java.awt.event.MouseL
import java.awt.event.MouseMotionL
import java.net.URL;
import java.util.ArrayL
import javax.swing.ImageI
import javax.swing.JB
import javax.swing.JP
import javax.swing.T
import com.yujie.Factory.ZombieF
import com.yujie.model.H
import com.yujie.model.Z
* 游戏绘制面板
public class GameDrawPanel extends JPanel implements Runnable, MouseMotionListener, MouseListener {
private static final long serialVersionUID = 1L;
private int zombieActionPicNum = 0;
private static ArrayList&Zombie& zombieL
private Image bgpic = new ImageIcon("img/background.jpg").getImage();
private Hammer hammer = new Hammer();
private int score = 0;
public static boolean isGameStart = true;
public GameDrawPanel() {
URL classUrl = this.getClass().getResource("");
Image imageCursor = Toolkit.getDefaultToolkit().getImage(classUrl);
setCursor(Toolkit.getDefaultToolkit().createCustomCursor(imageCursor, new Point(0, 0), "cursor"));
zombieList = new ArrayList&&();
new Thread() {
public void run() {
super.run();
zombieList.add(ZombieFactory.getRandomZombie());
System.out.println("加入僵尸");
new Timer((int) (Math.random() * 3) * 1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
zombieList.add(ZombieFactory.getRandomZombie());
}).start();
}.start();
* 绘制游戏
public void paint(Graphics g) {
super.paint(g);
if (isGameStart) {
g.drawImage(bgpic, 0, 0, null);
g.setFont(new Font("heiti ", Font.BOLD, 40));
g.drawString("叁念于2018制作", 600, 300);
g.setFont(new Font("heiti ", Font.BOLD, 40));
g.drawString("分数:" + score, 1000, 50);
g.drawImage(hammer.getHammerStyle(), hammer.getX(), hammer.getY(), 60, 100, null);
g.setColor(Color.RED);
g.drawRect(hammer.getX(), hammer.getY(), 50, 50);
for (Zombie zombie : zombieList) {
g.drawImage(zombie.getZombieStyle().get(zombieActionPicNum), zombie.getX(), zombie.getY(), null);
g.setColor(Color.BLACK);
g.drawRect(zombie.getX(), zombie.getY(), 50, 100);
g.drawImage(bgpic, 0, 0, null);
g.drawImage(hammer.getHammerStyle(), hammer.getX(), hammer.getY(), 60, 100, null);
g.setColor(Color.RED);
g.drawRect(hammer.getX(), hammer.getY(), 50, 50);
g.setFont(new Font("heiti ", Font.BOLD, 60));
g.setColor(Color.red);
g.drawString("Game Over! You score:" + score, 420, 200);
g.fillRect(660, 360, 150, 50);
g.setFont(new Font("heiti ", Font.BOLD, 30));
g.setColor(Color.BLACK);
g.drawString("再来一次?", 665, 400);
* 数据操控
public void run() {
while (true) {
zombieActionPicNum++;
if (zombieActionPicNum & 7)
zombieActionPicNum = 0;
for (Zombie zombie : zombieList) {
zombie.setX(zombie.getX() - 5);
repaint();
if (zombie.getX() & 100)
isGameStart = false;
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
repaint();
* 鼠标点击
public void mouseClicked(MouseEvent e) {
for (int i = 0; i & zombieList.size(); i++) {
Zombie zombie = zombieList.get(i);
if (zombie.getX() & hammer.getX() + 40 && zombie.getX() & hammer.getX()
&& zombie.getY() & hammer.getY() + 80 && zombie.getY() & hammer.getY()) {
System.out.println("消灭僵尸");
score += 10;
zombieList.remove(i);
if (!isGameStart) {
if (hammer.getX() & 660 && hammer.getX() & 810 && hammer.getY() & 360 && hammer.getY() & 510) {
isGameStart = true;
zombieList.removeAll(zombieList);
score = 0;
* 鼠标按下
public void mousePressed(MouseEvent e) {
hammer.setHammerStyle(new ImageIcon("img/hammer/hammer_down.png").getImage());
repaint();
* 鼠标松开
public void mouseReleased(MouseEvent e) {
hammer.setHammerStyle(new ImageIcon("img/hammer/hammer.png").getImage());
repaint();
* 鼠标移动
public void mouseMoved(MouseEvent e) {
hammer.setX(e.getX() - 30);
hammer.setY(e.getY() - 50);
repaint();
* 鼠标进入
public void mouseEntered(MouseEvent e) {
* 鼠标退出
public void mouseExited(MouseEvent e) {
* 鼠标拖动
public void mouseDragged(MouseEvent e) {
ZombieFactory .java
package com.yujie.F
import com.yujie.model.Z
* 僵尸工厂
public class ZombieFactory {
public static final int ZombieNormal = 1;
public static final int ZombieBucket = 2;
public static final int ZombieConehead = 3;
* 生产一个指定类型的僵尸
public static Zombie getZombie(int type) {
switch (type) {
case ZombieNormal:
return new com.yujie.model.ZombieNormal();
case ZombieBucket:
return new com.yujie.model.ZombieBucket();
case ZombieConehead:
return new com.yujie.model.ZombieConehead();
return null;
public static Zombie getRandomZombie() {
int type = (int) (Math.random() * 3) + 1;
return getZombie(type);
Hammer .java
package com.yujie.
import java.awt.I
import javax.swing.ImageI
public class Hammer {
private int x = 600;
private int y = 300;
private Image hammerS
public Hammer() {
this.x = 600;
this.y = 300;
this.hammerStyle = new ImageIcon("img/hammer/hammer.png").getImage();
public int getX() {
public void setX(int x) {
public int getY() {
public void setY(int y) {
public Image getHammerStyle() {
return hammerS
public void setHammerStyle(Image hammerStyle) {
this.hammerStyle = hammerS
Zombie .java
package com.yujie.
import java.awt.I
import java.util.ArrayL
import java.util.LinkedL
* 僵尸抽象类
public abstract class Zombie {
private int x = 1420;
private int y = (int) (Math.random() * 5) * 110;
LinkedList&Image& ZombieStyle = new LinkedList&&();
public int getX() {
public void setX(int x) {
public int getY() {
public void setY(int y) {
public LinkedList&Image& getZombieStyle() {
return ZombieS
public void setZombieStyle(LinkedList&Image& zombieStyle) {
ZombieStyle = zombieS
ZombieBucket .java
package com.yujie.
import javax.swing.ImageI
* 铁桶僵尸
public class ZombieBucket extends Zombie {
public ZombieBucket() {
for (int i = 1; i & 9; i++) {
getZombieStyle().add(new ImageIcon("img/zombie_bucket/z_02_0" + i + ".png").getImage());
package com.yujie.
import javax.swing.ImageI
* 垃圾桶僵尸
public class ZombieConehead extends Zombie {
public ZombieConehead() {
for (int i = 1; i & 9; i++) {
getZombieStyle().add(new ImageIcon("img/zombie_conehead/z_01_0" + i + ".png").getImage());
ZombieNormal .java
package com.yujie.
import javax.swing.ImageI
* 普通僵尸
public class ZombieNormal extends Zombie {
public ZombieNormal() {
for (int i = 1; i & 9; i++) {
getZombieStyle().add(new ImageIcon("img/zombie_normal/z_00_0" + i + ".png").getImage());
访问:76976次
积分:1734
排名:千里之外
原创:57篇
练武功和写程序一样,不在乎你修炼了几十年还是几百年,也不在乎你少林武当娥眉拜了多少门派,关键是你有没有把一门武艺炼到出神入化的境界。学武艺,最忌讳总想着去追求大而全,你要明白,其实只需要“打狗棍法”这么一招,就足够你掌舵丐帮,受用终生。当前位置:
> 帖子正文
奇酷植物大战僵尸JAVA通用版
今天小编给大家推荐一款休闲类游戏,包含27个游戏种类,它是国内首款休闲网游,内置数十款经典休闲游戏,譬如植物大战僵尸、开心农场、快乐大房东、黄金矿工等,操作简单流畅,画面美观清爽,深受广大玩家,尤其是女性玩家的欢迎。奇酷游戏大厅中所有游戏和功能,均能自动升级、自动下载、自动安装,不需要单独操作,随需下载,方便快捷。系统采用超级压缩算法,网络流量占用极少。游戏大小:276KB - 279KB上传给大家分享,希望你们喜欢哦!
[ 本帖最后由 ssbigbang 于
10:34 编辑 ]
不吐不快,我来说两句...
最新评论(27)
发表于: 15:40:36
发表于: 11:43:49
发表于: 03:20:45
kkkkkkkkkkkkkkk
发表于: 10:15:59
发表于: 15:52:55
发表于: 16:28:26
不知小s能下么~~
发表于: 15:56:20
本帖最后由 superong 于
15:56 编辑
挺不错的,下载一个,
发表于: 15:45:46
看看。。。。。。
发表于: 21:02:10
发表于: 11:34:12
发表于: 16:18:07
发表于: 19:31:14
发表于: 15:57:37
发表于: 14:24:51
看看看啊看看
发表于: 14:25:28
发表于: 14:26:32
看看看啊看看
发表于: 14:27:13
看看看看啊
发表于: 08:47:07
鄙视我的人那么多,你算老几!
发表于: 21:46:19
挺不错的,下载一个,
发表于: 16:49:49
发表于: 11:27:05
发表于: 03:59:25
115.com/file/beczaenx
发表于: 21:10:10
看贴不回者木有小JJ!
发表于: 21:10:19
人类已经阻止不了楼主了!
您需要注册登录后,才能回帖哦!
上市时间:2017.09
上市时间:2017.11
上市时间:2017.10
上市时间:2017.09
上市时间:2017.09
上市时间:2017.04
上市时间:2017.11
上市时间:2017.09
上市时间:2017.11
上市时间:2017.12
您已经签到了,请明天再来吧!未设置机型
系统:未知[设置机型]
当前应用不适合您的机型!close
>>>植物大战僵尸末日版
植物大战僵尸末日版&&系列
《植物大战僵尸-末日版》为风靡全球的《植物大战僵尸》末日对决版本。面对数以万计僵尸大军的入侵,农夫们拿起锄头奋起反抗,种植各种植物完成防御体系,与即将到来的僵尸大军进行最终的对决!
综合评分:0.0&分很烂
植物大战僵尸末日版
推荐指数:
评论内容:
喜欢该应用的网友还喜欢...
使用二维码下载
游戏应用下载排行
下载:92次
下载:89次
下载:72次
下载:72次
下载:60次
应用下载排行
12345678910&>&纯java游戏-植物大战僵尸源码
纯java游戏-植物大战僵尸源码
上传大小:5.45MB
纯java游戏-植物大战僵尸源码,采用java的Swing组件以及java线程实现,经本人测试有点小卡,不过功能都实现了,我也是网上搜索好久收集到了,分享啦!
综合评分:5(4位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有4条
竟然没下载下来,我只能评论了在下载一次了
的确有点卡
挺好的 很满意
综合评分:
积分/C币:9
综合评分:
积分/C币:3
综合评分:
积分/C币:3
史帅的博客
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:10
综合评分:
积分/C币:3
zouminghang123
综合评分:
积分/C币:5
综合评分:
积分/C币:5
综合评分:
积分/C币:3
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
纯java游戏-植物大战僵尸源码
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
javazejian
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
纯java游戏-植物大战僵尸源码

我要回帖

更多关于 java版植物大战僵尸 的文章

 

随机推荐