`
tianmingqi
  • 浏览: 117642 次
  • 性别: Icon_minigender_1
  • 来自: 河南郑州
社区版块
存档分类
最新评论

J2me游戏地图滚动

阅读更多
package com.mhxy.util;

import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.TiledLayer;

/**********************处理地图滚动************************************/
public class MapContor implements Runnable{
	private LayerManager lm;//图层管理器
	private TiledLayer map;
	private Zhujiao zhujiao;//游戏主角
	private int h;//屏幕水平宽度
	private int v;//屏幕垂直高度
	private int start=35;//主角距离屏幕start时开始滚屏
	private int x=0;//视窗坐标
	private int y=0;//视窗坐标
	private int map_speed=10;//地图滚动间隔时间数
	
	public MapContor(LayerManager lm,TiledLayer map,Zhujiao zhujiao,int width,int height){
		this.lm=lm;
		this.map=map;
		this.zhujiao=zhujiao;
		this.h=width;
		this.v=height;
		
		//设置可视窗口大小与坐标
		lm.setViewWindow(x,y, h, v);
	}
	public void run() {
		/****************主角距离屏幕小于length时开始滚屏**************************/
		while(true){
			//触发左滚
			if(zhujiao.getX()-this.x<this.start){
				boolean flag=true;
				while(flag){
					if(this.x>0){//可以左滚
						if(zhujiao.getX()-this.x<this.h/2){//主角没有滚到中心
							lm.setViewWindow(x--, y, h, v);
						}else{
							flag=false;
						}
					}else{
						flag=false;
					}
					this.Mysleep();
				}
			}

			//触发上滚
			if(zhujiao.getY()-this.y<this.start){
				boolean flag=true;
				while(flag){
					if(this.y>0){//可以上滚
						if(zhujiao.getY()-this.y<this.v/2){//主角没有滚到中心
							lm.setViewWindow(x, y--, h, v);
						}else{
							flag=false;
						}
					}else{
						flag=false;
					}
					this.Mysleep();
				}
			}

			//触发右滚
			if((this.x+this.h)-(zhujiao.getX()+zhujiao.getWidth())<this.start){
				boolean flag=true;
				while(flag){
					if(this.x+this.h<map.getCellWidth()){//可以右滚
						if(zhujiao.getX()-this.x>this.h/2){//主角没有滚到中心
							lm.setViewWindow(x++, y, h, v);
						}else{
							flag=false;
						}
					}else{
						flag=false;
					}
					this.Mysleep();
				}
			}
			//触发下滚
			if((this.y+this.v)-(zhujiao.getY()+zhujiao.getHeight())<this.start){
				boolean flag=true;
				while(flag){
					if(this.y+this.v<map.getHeight()){//可以下滚
						if(zhujiao.getY()-this.y>this.v/2){//主角没有滚到中心
							lm.setViewWindow(x, y++, h, v);
						}else{
							flag=false;
						}
					}else{
						flag=false;
					}
					this.Mysleep();
				}
			}
			
			try {
				Thread.currentThread().sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
		
	}//end run
	
	public void Mysleep(){
		/**休息**/
		try {
			Thread.currentThread().sleep(map_speed);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

分享到:
评论

相关推荐

    RPG游戏中地图滚动演示

    这个小程序就是测试地图的滚动的,方便刚接触RPG游戏制作的人群

    卡马克卷轴算法研究 J2ME框架下

    对于J2ME框架下的手机游戏程序的开发,其地图滚动的重绘有多种算法,由于手机性能的限制和开发周期等其他非技术条件,需要根据情况灵活选择所需的技术。但在及其苛刻条件下,如系统CPU资源不足,地图块尺寸较小等,...

    一个J2ME的关于飞机的小游戏

    简单的实现了地图的滚动,子弹与飞机碰撞,爆炸

    基于JAVA002打飞机游戏设计(程序+论文).zip

    学习J2ME的困难远远超出了想象,在设计初期,为了解决地图的滚动、玩家飞机如何不飞出上下边界两个问题竟然花费了数天的时间。很多相关的技术,如需要使用到的线程、Game包的新功能、高级、低级图形界面的使用、...

    java源码包---java 源码 大量 实例

    内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理  这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行...

    java源码包2

    内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理  这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行...

    java源码包3

    内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理  这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行...

    java源码包4

    内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理  这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失...

    JAVA上百实例源码以及开源项目

    内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理  这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行...

    JAVA上百实例源码以及开源项目源代码

    内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理  这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行...

Global site tag (gtag.js) - Google Analytics