package playmain;
import java.awt.Graphics;
//玩家类
public class Player extends Thread implements gameConfig{
//显示的位置
static int px = panelXlength/2;
static int py = panelYlength/2;
//角色在整张地图的位置
static int x = 700;
static int y = 700;
//角色偏移量
static int mx = x+elesize/2;
static int my = y+elesize/2;
//角色的步长
static int step = 3; //可以理解为速度
//角色朝向
static String FangXiang = "下";
//移动帧数
static int Zup = 0;
static int Zdown = 0;
static int Zleft = 0;
static int Zright = 0;
//角色是否移动
static boolean up = false;
static boolean down = false;
static boolean left = false;
static boolean right = false;
//判断角色触碰
boolean pdrun = true;
@Override
public void run() {
// TODO 自动生成的方法存根
while(true){
move();
PDcp();
try {
Thread.sleep(10);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
//判断触碰
public void PDcp(){
if(ReadMapFile.map1[y/elesize][x/elesize]!=0 && pdrun==true){
if(ReadMapFile.map1[y/elesize][x/elesize] == 901){
System.out.println("切换到地图二");
x = 300;
y = 500;
mx = x+elesize/2;
my = y+elesize/2;
ReadMapFile.readfile("D:\\map2.map");
pdrun = false;
}
}
if(ReadMapFile.map1[y/elesize][x/elesize]!=0 && pdrun==true){
if(ReadMapFile.map1[y/elesize][x/elesize] == 902){
System.out.println("切换到地图一");
x = 550;
y = 350;
mx = x+elesize/2;
my = y+elesize/2;
ReadMapFile.readfile("D:\\map1.map");
pdrun = false;
}
}
}
//角色移动
public void move(){
//************************************************************
//向上移动↑
if(up){
pdrun = true;
Zup++;
if(Zup>=20){
Zup=0;
}
if( (y/elesize-1)>= 0 && x/elesize>=0 && (y/elesize-1)<= (ReadMapFile.MAXy-1) && x/elesize<=(ReadMapFile.MAXx-1) ){
if(ReadMapFile.map2[y/elesize-1][x/elesize]!=0){
int y1 = (y/elesize-1)*elesize+elesize/2;
if((y-y1)>=elesize){
y = y-step;
my = my-step;
}
}else if(ReadMapFile.map2[y/elesize-1][x/elesize]==0){//上方没物体,可以继续向上移动
y = y-step;
my = my-step;
}
}
}
//************************************************************
//向下移动↓
else if (down) {
pdrun = true;
Zdown++;
if(Zdown>=20){
Zdown=0;
}
if( (y/elesize+1)>= 0 && x/elesize>=0 && (y/elesize+1)<= (ReadMapFile.MAXy-1) && x/elesize<=(ReadMapFile.MAXx-1) ){
if(ReadMapFile.map2[y/elesize+1][x/elesize]!=0){
int y1 = (y/elesize+1)*elesize+elesize/2;
if((y1-y)>=elesize){
y=y+step;
my=my+step;
}
}else if(ReadMapFile.map2[y/elesize+1][x/elesize]==0){//上方没物体,可以继续向上移动
y=y+step;
my=my+step;
}
}
}
//************************************************************
//向左移动←
else if (left) {
pdrun = true;
Zleft++;
if(Zleft>=20){
Zleft=0;
}
if( y/elesize>= 0 && (x/elesize-1)>=0 && y/elesize<= (ReadMapFile.MAXy-1) && (x/elesize-1)<=(ReadMapFile.MAXx-1) ){
if(ReadMapFile.map2[y/elesize][x/elesize-1]!=0){
int x1 = (x/elesize-1)*elesize+elesize/2;
if((x-x1)>=elesize){
x=x-step;
mx=mx-step;
}
}else if(ReadMapFile.map2[y/elesize][x/elesize-1]==0){
x=x-step;
mx=mx-step;
}
}
}
//************************************************************
//向右移动→
else if(right){
pdrun = true;
Zright++;
if(Zright>=20){
Zright=0;
}
if( y/elesize>= 0 && (x/elesize+1)>=0 && y/elesize<= (ReadMapFile.MAXy-1) && (x/elesize+1)<=(ReadMapFile.MAXx-1) ){
if(ReadMapFile.map2[y/elesize][x/elesize+1]!=0){
int x1 = (x/elesize+1)*elesize+elesize/2;
if((x1-x)>=elesize){
x=x+step;
mx=mx+step;
}
}else if(ReadMapFile.map2[y/elesize][x/elesize+1]==0){
x=x+step;
mx=mx+step;
}
}
}
}
//逐帧动画
public static void ZhenShu(Graphics g){
//如果角色不在移动中
if(!up&&!down&&!left&&!right){
if(FangXiang=="上"){//如果角色移动的最后朝向为上
g.drawImage(walk1.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 0, 96*3, 96, 96*4, null);
}else if(FangXiang=="下"){//最后移动朝向下
g.drawImage(walk1.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 0, 0, 96, 96, null);
}else if(FangXiang=="左"){//最后移动朝向左
g.drawImage(walk1.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 0, 96, 96, 96*2, null);
}else if(FangXiang=="右"){//最后移动朝向右
g.drawImage(walk1.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 0, 96*2, 96, 96*3, null);
}
}else{//如果角色在移动中
if(up){
//通过up1的值,来决定画哪一张图片
if(Zup<5){
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 0, 96*3, 96, 96*4, null);
}else if(Zup<10){
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 96, 96*3, 96*2, 96*4, null);
}else if(Zup<15){
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 96*2, 96*3, 96*3, 96*4, null);
}else{
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 96*3, 96*3, 96*4, 96*4, null);
}
}else if(down){
if(Zdown<5){
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 0, 0, 96, 96, null);
}else if(Zdown<10){
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 96, 0, 96*2, 96, null);
}else if(Zdown<15){
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 96*2, 0, 96*3, 96, null);
}else{
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 96*3, 0, 96*4, 96, null);
}
}else if(left){
if(Zleft<5){
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 0, 96, 96, 96*2, null);
}else if(Zleft<10){
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 96, 96, 96*2, 96*2, null);
}else if(Zleft<15){
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 96*2, 96, 96*3, 96*2, null);
}else{
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 96*3, 96, 96*4, 96*2, null);
}
}else if(right){
if(Zright<5){
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 0, 96*2, 96, 96*3, null);
}else if(Zright<10){
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 96, 96*2, 96*2, 96*3, null);
}else if(Zright<15){
g.drawImage(walk.getImage(), Player.px-elesize/2-15, Player.py-elesize/2-25, Player.px-elesize/2+65, Player.py-elesize/2+55, 96*2, 96*2, 96*3, 96*3, null);
}else{
g.drawImage(walk.getImage(), Player.px-el
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
JAVARPG游戏.rar (71个子文件)
JAVARPG游戏
PLAYtest
.project 384B
角色停顿图.png 17KB
003地砖.png 7KB
201路人1号.png 4KB
005红树.png 9KB
bin
playmain
Player.class 5KB
NPC.class 688B
gameConfig.class 1KB
mainFrame.class 2KB
GetMap.class 894B
UpdateThread.class 933B
mainFrame$PanelListener.class 3KB
ZiDan$1.class 749B
MainPlay.class 583B
ReadMapFile.class 1KB
TalkPanel.class 2KB
GetNPC.class 3KB
mainFrame$MyPanel.class 2KB
ZiDan.class 1KB
npc
npc201.xml 199B
.settings
org.eclipse.jdt.core.prefs 598B
角色行走图.png 24KB
001空白.png 3KB
004召泽地板.png 5KB
008高绿树.png 7KB
901切换地图.png 278B
011岩浆.png 5KB
对话框.png 15KB
map1.map 5KB
src
playmain
ReadMapFile.java 859B
UpdateThread.java 677B
GetMap.java 689B
MainPlay.java 296B
ZiDan.java 1KB
GetNPC.java 2KB
Player.java 8KB
NPC.java 488B
mainFrame.java 7KB
gameConfig.java 1KB
TalkPanel.java 1KB
007绿竹.png 9KB
902切换地图.png 276B
.classpath 301B
002草地.png 5KB
006绿树.png 9KB
Ttest
.project 381B
003地砖.png 7KB
201路人1号.png 4KB
005红树.png 9KB
bin
main
mapwindows.class 3KB
mapwindows$PanelListener.class 2KB
mapwindows$MySetPanel.class 1KB
MapConfig.class 1KB
GetMap.class 882B
mapwindows$buttonlistener.class 3KB
testclass.class 478B
.settings
org.eclipse.jdt.core.prefs 598B
001空白.png 3KB
004召泽地板.png 5KB
008高绿树.png 7KB
901切换地图.png 278B
011岩浆.png 5KB
src
main
mapwindows.java 8KB
GetMap.java 652B
MapConfig.java 1KB
testclass.java 172B
007绿竹.png 9KB
902切换地图.png 276B
.classpath 301B
002草地.png 5KB
006绿树.png 9KB
共 71 条
- 1
资源评论
KamiAki
- 粉丝: 2
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功