package ggg;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.*;

import java.io.*;

public class Tank1  extends JFrame

{

//用来存储对应的图片的二维数组 (这里的icon数组,只是用来将我们设置好的数组在界面上显示出来,不用保存进文件)

MyJPanel mp=null;

public static void main(String[] args)

{

Tank1 t1=new Tank1();

// t1.BuildWorld();

}

public Tank1 ()

{

mp=new MyJPanel();

this.add(mp);

String v="";//

System.out.println();

Scanner ini=new  Scanner(System.in);

v= ini.next();

if(v.equals("x"))

{

System.out.print("载入");

mp.BuildWorld();

}

if(v.equals("d"))

{

mp.BuildWorld();

mp.duqu();

System.out.print("读取");

}

Thread t=new Thread(mp);//启动面板线程

t.start();

this.addKeyListener(mp);

this.setSize(1600,1000);

this.setLocation(1,1);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

class MyJPanel extends JPanel implements KeyListener,Runnable// Perception感知主界面

{

ImageIcon lawn = new ImageIcon("000草地.png");

ImageIcon   person = new ImageIcon("ren.png");

ImageIcon green_trees = new ImageIcon("101绿树.png");

ImageIcon [][] plane = new ImageIcon[100][100];

int [][]map=new int [100][100];

int x=8;

int y=8;

MyJPanel()

{

}

private void baocun()//游戏保存

{

// TODO 自动生成的方法存根

File f=null;

FileOutputStream fx=null;

//DataOutputStream fx=null;

try

{

f=new File("D:\\map999999999999.txt");

fx=new FileOutputStream(f);

//fx=new DataOutputStream (f);

for(int i=0;i<100;i++)

{

for(int j=0;j<100;j++)

{

if(mp.plane[i][j]==mp.person)

{

mp.map[i][j]=0;

//System.out.print(p.map[i][j]);

}

if(mp.plane[i][j]==mp.green_trees)

{

mp.map[i][j]=1;

System.out.print(mp.map[i][j]+"   ");

}

fx.write(mp.map[i][j]);

//强制流中的数据完全输出完

}

}

System.out.print("保存X Y"+this.x+" "+this.y);

fx.write(this.x);

fx.write(this.y);

fx.flush();

//关闭输出流

fx.close();

}

catch(Exception e)

{

}

}

public void duqu()游戏读取

{

FileInputStream in=null;

DataInputStream inn=null;

try

{

in=new FileInputStream("D:\\map999999999999.txt");

inn=new DataInputStream (in);

for(int i=0;i<100;i++)

{

for(int j=0;j<100;j++)

{

mp.map[i][j]=inn.read();

if(map[i][j]==0)

{

mp.plane[i][j]=this.lawn;

}

if(map[i][j]==1)

{

mp.plane[i][j]=mp.green_trees;

}

//强制流中的数据完全输出完

}

}

mp.x=inn.read();

mp.y=inn.read();

System.out.print("读取"+this.x+"   "+this.y);

//关闭输出流

inn.close();

}

catch(Exception e)

{

}

}

public void keyTyped(KeyEvent e){}//键盘监听

public void keyReleased(KeyEvent e){}

public void keyPressed(KeyEvent e)

{

if(e.getKeyCode()==KeyEvent.VK_S)

{

this.xia();

System.out.print("xxxxx"+this.x+this.y+"    ");

}

if(e.getKeyCode()==KeyEvent.VK_W)

{

this.shang();

System.out.print("xxxxx"+this.x+this.y+"    ");

}

if(e.getKeyCode()==KeyEvent.VK_A)

{

mp.zuo();

System.out.print("xxxxx"+this.x+this.y+"    ");

}

if(e.getKeyCode()==KeyEvent.VK_D)

{

mp.you();

System.out.print("xxxxx"+this.x+this.y+"    ");

}

if(e.getKeyCode()==KeyEvent.VK_B)

{

mp.baocun();

System.out.print("保存");

}

}

public void run()

{

while(true)

{

try {

Thread.sleep(100);}

catch (Exception e) {}

this.repaint();

}

}

public void zuo()

{

this.x=this.x-1;

}

public void you()

{

this.x=this.x+1;

}

public void xia()

{

this.y=this.y+1;

}

public void shang()

{

this.y=this.y-1;

}

public void paint(Graphics g)

{ super.paint(g);

for(int i=0;i<20;i++)

{

for(int j=0;j<20;j++)

{

g.drawImage(this.plane[i+this.x][j+y].getImage(), i*55, j*55, 50,50, null);

//g.drawImage(icon1.getImage(), this.x,this.y , 50,50, null);

g.drawImage(this.person.getImage(),this.x*55 ,this.y*55, 50,50, null);

}

}

}

public void BuildWorld()//生成地图的方法

{

for(int i=0;i<100;i++)

{

for(int j=0;j<100;j++)

{

plane[i][j]=lawn;

}

}

this.plane[5][5]=green_trees;

this.plane[6][6]=green_trees;

this.plane[8][8]=green_trees;

}

}

}

java rpg项目代码_java rpg游戏代码(移动保存读取)相关推荐

  1. 祖玛java代码_androidzuma 基于java开发的安卓祖玛龙珠游戏代码,可帮助 的 学习。 Develop 238万源代码下载- www.pudn.com...

    文件名称: androidzuma下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 1174 KB 上传时间: 2013-11-27 下载次数: 1 提 供 者: ...

  2. 计算机软件实习项目二 —— 贪吃蛇游戏 (代码实现) 12-16

    代码实现   不得不说python真是太香了,我感觉写起来比C++快,而且代码量更少,还有非常多十分方便的方法可以使用.在pycharm里有非常多的快捷键十分的方便,相较项目使用的visual stu ...

  3. java 非静态 初始化_Java非静态代码块和实例初始化过程

    1 非静态代码块 非静态代码块特点 ①可以为实例变量(非静态的属性)初始化 ②每次创建对象的时候,都会执行一次,且先于构造器执行 ③若有多个非静态的代码块,那么按照定义的顺序从上到下依次执行 ④代码块 ...

  4. java多线程代码_java多线程实例代码详解

    原文:http://blog.csdn.net/paranoidyang/article/details/70184523 作者:Paranoidyang 线程与进程的区别 (1)程序是一段静态的代码 ...

  5. github java开源项目经验_Java 开源项目 GitHub 趋势周报 20201230

    [关注获取更多精选开源图书] 大家好!我是超级机器人 UltraBot,今天给大家推送本周 Java 开源项目 GitHub 趋势周报,本周更新开源项目 64. brettwooldridge / H ...

  6. java实训五子棋_Java棋类游戏实践之单机版五子棋

    本文实例讲述了java实现的五子棋游戏代码,分享给大家供大家参考,具体代码如下 一.实践目标 1.掌握JavaGUI界面设计 2.掌握鼠标事件的监听(MouseListener,MouseMotion ...

  7. java综合项目练习-QuickHit打字游戏

    奉天承运,博主诏曰: 综合项目练习-QuickHit打字游戏 项目简介 问题分析 代码参考: 项目简介 问题分析 代码参考: Level 类 public class Level {private i ...

  8. java开源项目源代码_java开源项目源代码

    java开源项目 源代码 http://www.codase.com/ http://java-source.net/ https://www.dev.java.net/ 名称 摘要 种类 appfu ...

  9. java object取数据_java使用ObjectInputStream从文件中读取对象

    import java.io.EOFException; import java.io.FileInputStream; import java.io.FileNotFoundException; i ...

最新文章

  1. 微信小程序全局监听路由变化
  2. 牛津大学名誉教授Colin Blakemore:大脑是如何计算的?
  3. linux精华文章汇总
  4. pexpect oracle,expect免交互脚本编程
  5. 【招聘(上海)】东方财富证券招聘.net开发
  6. vant部署_详解VUE项目中安装和使用vant组件
  7. MySQL内存及虚拟内存优化设置
  8. BZOJ2565 最长双回文串
  9. debian关闭图形界面_禁止debian自动启动图形界面
  10. YDOOK: ANSYS Maxwell 19 教程20:Maxwell 2D Surface Approximation 网格划分
  11. ios UIImageView 部分圆角(加上 borderWidth、borderColor 效果修复)
  12. 网页端调用客户端的cs 程序
  13. 【循序渐进学运维】MySQL运维系列文章汇总
  14. matlab怎样画一个立方体,matlab画立方体
  15. 别忘了看,今年中秋月亮“瘦”了!网友扎心了:我还没瘦…
  16. 国服和平精英服务器维护,和平精英辅助免费使用绝地求生12月19日正式服维护公告 今天维护要多久...
  17. 2020平行驾驶与矿山无人化驾驶
  18. ChatGPT通过中国数据库系统工程师(DBA)认证?
  19. Xz1android9打电话延迟,索尼Xperia XZ1系列更新Android 9.0
  20. 什么是AES对称加密算法

热门文章

  1. mongoose 数据库设计千万要注意 Cast to [number] failed for value
  2. 自动打包_全自动打包机行业发展如何?全自动打包机行业发展现状分析
  3. 淘宝开发平台 java 调用实例
  4. oracle job 与存储过程,应用oracle job和存储过程
  5. 第四章 虚拟机的安装和使用
  6. 目前微型计算机中常用的鼠标器有什么两类,2009年计算机一级考试真题及答案...
  7. python之Map函数
  8. 03-java学习-基本数据类型-运算符-键盘接收用户输入
  9. 1001 A+B Format (20 分)
  10. Python_自定义关键字的使用