java rpg项目代码_java rpg游戏代码(移动保存读取)
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游戏代码(移动保存读取)相关推荐
- 祖玛java代码_androidzuma 基于java开发的安卓祖玛龙珠游戏代码,可帮助 的 学习。 Develop 238万源代码下载- www.pudn.com...
文件名称: androidzuma下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 1174 KB 上传时间: 2013-11-27 下载次数: 1 提 供 者: ...
- 计算机软件实习项目二 —— 贪吃蛇游戏 (代码实现) 12-16
代码实现 不得不说python真是太香了,我感觉写起来比C++快,而且代码量更少,还有非常多十分方便的方法可以使用.在pycharm里有非常多的快捷键十分的方便,相较项目使用的visual stu ...
- java 非静态 初始化_Java非静态代码块和实例初始化过程
1 非静态代码块 非静态代码块特点 ①可以为实例变量(非静态的属性)初始化 ②每次创建对象的时候,都会执行一次,且先于构造器执行 ③若有多个非静态的代码块,那么按照定义的顺序从上到下依次执行 ④代码块 ...
- java多线程代码_java多线程实例代码详解
原文:http://blog.csdn.net/paranoidyang/article/details/70184523 作者:Paranoidyang 线程与进程的区别 (1)程序是一段静态的代码 ...
- github java开源项目经验_Java 开源项目 GitHub 趋势周报 20201230
[关注获取更多精选开源图书] 大家好!我是超级机器人 UltraBot,今天给大家推送本周 Java 开源项目 GitHub 趋势周报,本周更新开源项目 64. brettwooldridge / H ...
- java实训五子棋_Java棋类游戏实践之单机版五子棋
本文实例讲述了java实现的五子棋游戏代码,分享给大家供大家参考,具体代码如下 一.实践目标 1.掌握JavaGUI界面设计 2.掌握鼠标事件的监听(MouseListener,MouseMotion ...
- java综合项目练习-QuickHit打字游戏
奉天承运,博主诏曰: 综合项目练习-QuickHit打字游戏 项目简介 问题分析 代码参考: 项目简介 问题分析 代码参考: Level 类 public class Level {private i ...
- java开源项目源代码_java开源项目源代码
java开源项目 源代码 http://www.codase.com/ http://java-source.net/ https://www.dev.java.net/ 名称 摘要 种类 appfu ...
- java object取数据_java使用ObjectInputStream从文件中读取对象
import java.io.EOFException; import java.io.FileInputStream; import java.io.FileNotFoundException; i ...
最新文章
- 微信小程序全局监听路由变化
- 牛津大学名誉教授Colin Blakemore:大脑是如何计算的?
- linux精华文章汇总
- pexpect oracle,expect免交互脚本编程
- 【招聘(上海)】东方财富证券招聘.net开发
- vant部署_详解VUE项目中安装和使用vant组件
- MySQL内存及虚拟内存优化设置
- BZOJ2565 最长双回文串
- debian关闭图形界面_禁止debian自动启动图形界面
- YDOOK: ANSYS Maxwell 19 教程20:Maxwell 2D Surface Approximation 网格划分
- ios UIImageView 部分圆角(加上 borderWidth、borderColor 效果修复)
- 网页端调用客户端的cs 程序
- 【循序渐进学运维】MySQL运维系列文章汇总
- matlab怎样画一个立方体,matlab画立方体
- 别忘了看,今年中秋月亮“瘦”了!网友扎心了:我还没瘦…
- 国服和平精英服务器维护,和平精英辅助免费使用绝地求生12月19日正式服维护公告 今天维护要多久...
- 2020平行驾驶与矿山无人化驾驶
- ChatGPT通过中国数据库系统工程师(DBA)认证?
- Xz1android9打电话延迟,索尼Xperia XZ1系列更新Android 9.0
- 什么是AES对称加密算法
热门文章
- mongoose 数据库设计千万要注意 Cast to [number] failed for value
- 自动打包_全自动打包机行业发展如何?全自动打包机行业发展现状分析
- 淘宝开发平台 java 调用实例
- oracle job 与存储过程,应用oracle job和存储过程
- 第四章 虚拟机的安装和使用
- 目前微型计算机中常用的鼠标器有什么两类,2009年计算机一级考试真题及答案...
- python之Map函数
- 03-java学习-基本数据类型-运算符-键盘接收用户输入
- 1001 A+B Format (20 分)
- Python_自定义关键字的使用