资源简介

用swing写的一个人物行走实例,只是实现了人物行走,对于地图之类的就没有实现了,菜鸟写的菜鸟程序拿出来给大家学习学习,呵呵!

资源截图

代码片段和文件信息

/**
 * @(#)baseSprite.java
 *
 *
 * @author saint
 * @version 1.00 2010/1/2
 */
package org;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class baseSprite extends JComponent implements Runnable {
private Image SpriteImg; //精灵图片
private int Direct; //8(上)2(下)4(左)6(右)
private int Spriteframe; //精灵当前所在帧
private int SpriteWidth; //一帧的宽度
private int SpriteHeight; //一帧的高度

private int moveSpeed; //移动速度
private int sleepMillis; //线程休眠时间(秒)
private int sleepNanos; //线程休眠时间(纳秒)
private int moveLevel; //跟速度等级有关

private int xy; //精灵坐标
private int pxpy; //精灵偏移坐标
private boolean stop; //是否停止移动

    public baseSprite(String img int w int h) {
     this.setSpriteImg(img w h);
     this.initialize();
     new Thread(this).start();
    }
    
    //初始化
    private void initialize() {
     this.setMoveLevel(3);
     this.Spriteframe = 1;
     this.x = 0;
     this.y = 0;
     this.px = (SpriteWidth-32)/2;
     this.py = (SpriteHeight-32);
     this.setPreferredSize(new Dimension(SpriteWidthSpriteHeight));
     this.setBounds(x-px y-py SpriteWidth SpriteHeight);
     this.stop = true;
    }
    
    //设置移动速度等级
    public void setMoveLevel(int c) {
     if(c==1) {
     this.moveSpeed = 1;
     this.sleepMillis = 10;
     this.sleepNanos = 0;
     this.moveLevel = 16;
     }else if(c==2) {
     this.moveSpeed = 1;
     this.sleepMillis = 9;
     this.sleepNanos = 500;
     this.moveLevel = 16;
     }else if(c==3) {
     this.moveSpeed = 2;
     this.sleepMillis = 10;
     this.sleepNanos = 500;
     this.moveLevel = 8;
     }
    }
    
    //加载图片
    private Image LoadImg(String str) {
     return (Toolkit.getDefaultToolkit()).createImage(str);
    }
     
    //设置/获取精灵图片及其属性
    public void setSpriteImg(String str int w int h) {
     this.SpriteImg = this.LoadImg(str);
     this.SpriteWidth = w/4;
     this.SpriteHeight = h/4;
    }
    public Image getSpriteImg() {
     return this.SpriteImg;
    }
    public int getSpriteWidth() {
     return this.SpriteWidth;
    }
    public int getSpriteHeight() {
     return this.SpriteHeight;
    }
    
    //获取人物坐标
    public int getSpriteX() {
     return this.x;
    }
    public int getSpriteY() {
     return this.y;
    }
    
    //人物行走
    public void moveStart(int c) {
     this.Direct = c ;
     if(stop)
     stop = false;
    }
    private void moveSprite(int c) {
     int tmpx = x;
    int tmpy = y;
    switch(c) {
     case 2:
     tmpy+=moveSpeed;
    break;
    case 8:
    tmpy-=moveSpeed;
     break;
    case 4:
    tmpx-=moveSpeed;
    break;
    case 6:
    tmpx+=moveSpeed;
    }
    if((tmpx>=0 && tmpx<=608) && (tmpy>=0 && tmpy<=416)) {
    x = tmpx;
    y = tmpy;
    this.setBounds(x-px y-py SpriteWidth SpriteHeight);
    }
    }
    //人物停止
    public void moveSto

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4556  2010-01-03 01:17  人物行走\baseSprite.java

     文件        843  2010-01-02 16:31  人物行走\JImagePanel.java

     文件       2560  2010-01-03 01:23  人物行走\mainApp.java

     文件       3887  2010-01-03 01:24  人物行走\org\baseSprite.class

     文件       5067  2004-06-25 00:00  人物行走\org\img\Actor.png

     文件       1949  2010-01-03 00:46  人物行走\org\img\map.gif

     文件       4028  2009-12-12 12:19  人物行走\org\img\snt32.png

     文件       1069  2010-01-02 16:31  人物行走\org\JImagePanel.class

     文件       1123  2010-01-02 15:47  人物行走\org\mainApp$1.class

     文件       2988  2010-01-03 01:23  人物行走\org\mainApp.class

     文件        571  2010-01-03 01:24  人物行走\org\winframe$1.class

     文件       1119  2010-01-03 01:24  人物行走\org\winframe.class

     文件        300  2010-01-03 01:34  人物行走\readme.txt

     文件         17  2010-01-03 01:27  人物行走\Run.bat

     文件        760  2010-01-02 16:31  人物行走\winframe.java

     目录          0  2010-01-03 00:46  人物行走\org\img

     目录          0  2010-01-02 17:54  人物行走\org

     目录          0  2010-01-03 01:27  人物行走

----------- ---------  ---------- -----  ----

                30837                    18


评论

共有 条评论