⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gobangcanvas.java

📁 游戏说明
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
//		向层里插入棋子颜色的层
		Image colorimage = null;
		try {
			colorimage = Image.createImage("/png/usercolor.png");
		} catch (IOException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		
		Image blackimage = Image.createImage(COLOR_WIDTH,COLOR_HEIGHT);
		Graphics blackgra = blackimage.getGraphics();
		blackgra.drawImage(colorimage,0-COLOR_WIDTH,0,Graphics.TOP|Graphics.LEFT);
		blackimage=this.setImageAlph(blackimage,true);
		blacksprite = new Sprite(blackimage);
		lm.insert(blacksprite,1);
		blacksprite.setVisible(false);
		blackgra = null;
		blackimage = null;
		//System.out.println("colorblackimage:  "+String.valueOf(gobangcontrol.rt.freeMemory()));
		
		Image whiteimage = Image.createImage(COLOR_WIDTH,COLOR_HEIGHT);
		Graphics whitegra = whiteimage.getGraphics();
		whitegra.drawImage(colorimage,0,0,Graphics.TOP|Graphics.LEFT);
		whiteimage=this.setImageAlph(whiteimage,true);
		whitesprite = new Sprite(whiteimage);
		lm.insert(whitesprite,1);
		whitesprite.setVisible(false);
		whitegra= null;
		whiteimage = null;
		colorimage = null;
		gobangcontrol.rt.gc();
		//System.out.println("whiteimage:  "+String.valueOf(gobangcontrol.rt.freeMemory()));

		
		Graphics gra = null;
		
		
		
		
		//画帮助提示图层
		tempimage = Image.createImage(HELP_WIDTH,HELP_HEIGHT);  //读取指针图片
		gra = tempimage.getGraphics();
		gra.setFont(chatfont);
		gra.drawString("你可以通过*号键来跳转 ",0,0,Graphics.TOP|Graphics.LEFT);
		gra.drawString("各个操作区,#号键来返 ",0,chatfont.getHeight(),Graphics.TOP|Graphics.LEFT);
		gra.drawString("回大厅。 ",0,2*chatfont.getHeight(),Graphics.TOP|Graphics.LEFT);
		//gra.drawString("你好你好你好士大夫大师傅 ",0,3*chatfont.getHeight(),Graphics.TOP|Graphics.LEFT);
		helpsprite = new Sprite(tempimage);
		helpsprite.setPosition(HELP_INFO_X,HELP_INFO_Y);
		helpsprite.setVisible(true);
		helpflag = true;
		qipanselectflag = false;  //棋盘被不能选种
		lm.insert(helpsprite,1);
		tempimage = null;
		gra = null;
		gobangcontrol.rt.gc();
		//System.out.println("handimage:  "+String.valueOf(gobangcontrol.rt.freeMemory()));

	//		插入菜单精灵
		Image menuimage = null;
		Image menudetailimage=null;
		try {
			menuimage = Image.createImage("/png/menu.png");
			menudetailimage = Image.createImage("/png/gamingmenu.png");
		} catch (IOException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		//System.out.println("menu:  "+String.valueOf(gobangcontrol.rt.freeMemory()));
		
		//插入菜单控件
		menucontrol = new MenuControl(menuimage,menudetailimage,MENU_RECT_WIDTH,MENU_RECT_HEIGHT);
		menucontrol.init(lm,STATENUM,mainWidth,mainHeight);
		menuimage = null;
		menudetailimage = null;
		//System.out.println("menu:  "+String.valueOf(gobangcontrol.rt.freeMemory()));
		
	}
	
	public void init(GobangControl gobangcontrol){
		initflag = true;
		waitopptimer = 0;
		waitoppflag = false;
		sendflag = false;
		resendflag = 0;
		gamestate = USERSIT;
		backflag = true;
		regetflag = false;
		this.gobangcontrol = gobangcontrol;	
		gameinit();
		display = gobangcontrol.getDisplay();
		gobangdeal = GobangDeal.getInstance();
		maingameevent = gobangcontrol.getMainGameEvent();
		commstructnode = maingameevent.getCommNode();
		if(commstructnode.getTableSeq() == 0){
			usercolor = BLACK_COLOR;
			anticolor = WHITE_COLOR;
		}
		else{
			usercolor = WHITE_COLOR;
			anticolor = BLACK_COLOR;
		}
		if(g==null)
			g = getGraphics();
		gobangdeal.setEventDeal(this);
	//	presprite.setVisible(false);
	//	selectsprite.setVisible(false);
	//	selectsprite.setNewPosition(7,7);
		menucontrol.toHide();
		
		usertime = GAME_TIME;
		opptime = GAME_TIME;
		blacksprite.setVisible(false);
		whitesprite.setVisible(false);
		displayuserinfo();
		displayoppinfo();
		qipanselectflag = false;
		for(int i=0;i<QIZIWIDTH_IN_TILES;i++){
			for(int j=0;j<QIZIHEIGHT_IN_TILES;j++){
				chessesflag[i][j]=true;
			}
		}
		
		operatelayerinit();
		helpflag = true;
		helpsprite.setVisible(true);
		paintCanvas();
		gobangcontrol.rt.gc();
		display.setCurrent(this);
		if(gobangtimer != null){
			gobangtimer.ToExit();
			gobangtimer = null;
		}
		gobangtimer = new GobangTimer(this);
		gobangtimer.start();
	}
	
private void initother(){//补充初始化
	Image tempimage = null;
	Graphics gra = null;
	//画棋子图层
	try {
		tempimage = Image.createImage("/png/qizi.png");  //读取棋子图片
	} catch (IOException e) {
		// TODO 自动生成 catch 块
		e.printStackTrace();
	}
	qizilayer = new TiledLayer(QIZIWIDTH_IN_TILES,QIZIHEIGHT_IN_TILES,tempimage,QIZI_WIDTH,QIZI_HEIGHT);
	qizilayer.setPosition(QIZI_X,QIZI_Y);
	lm.insert(qizilayer,2);   //插入棋子图层
	tempimage = null;
	//System.out.println("qizi:  "+String.valueOf(gobangcontrol.rt.freeMemory()));
	
	
	//画用户选择框
	Image createimage = Image.createImage(QIZI_WIDTH*2+2,QIZI_HEIGHT*2+2);
	gra = createimage.getGraphics();
	gra.drawRect(0,0,QIZI_WIDTH-1,QIZI_HEIGHT-1);
	gra.setStrokeStyle(Graphics.SOLID);
	gra.drawRect(QIZI_WIDTH+2,QIZI_HEIGHT+2,QIZI_WIDTH*2,QIZI_HEIGHT*2);
	createimage = setImageAlph(createimage,true);
	selectsprite = new SelectSprite(createimage,QIZI_WIDTH+1,QIZI_HEIGHT+1);
	selectsprite.init(SELECT_FIR_X,SELECT_FIR_Y,QIZI_WIDTH,QIZI_HEIGHT,QIZIWIDTH_IN_TILES,QIZIHEIGHT_IN_TILES);
	selectsprite.setVisible(false);
	lm.insert(selectsprite,2);
	gra = null;
	createimage = null;
	//System.out.println("userselect:  "+String.valueOf(gobangcontrol.rt.freeMemory()));
	
	
	
	//前一步棋标志
	Image preimage = Image.createImage(QIZI_WIDTH,QIZI_HEIGHT);
	gra = preimage.getGraphics();
	gra.setColor(255,0,0);
	gra.fillArc(3,3,4,4,0,360);
	preimage = setImageAlph(preimage,true);
	presprite = new SelectSprite(preimage,QIZI_WIDTH,QIZI_WIDTH);
	presprite.init(PRE_FIR_X,PRE_FIR_Y,QIZI_WIDTH,QIZI_HEIGHT,QIZIWIDTH_IN_TILES,QIZIHEIGHT_IN_TILES);
	lm.insert(presprite,2);
	preimage = null;
	gra = null;
	gobangcontrol.rt.gc();
	//System.out.println("preimage:  "+String.valueOf(gobangcontrol.rt.freeMemory()));
	
		
	gobangcontrol.rt.gc();
	//画等待其他用户开始提示框
	
	tempimage = Image.createImage(WAIT_WIDTH,WAIT_HEIGHT);  //读取指针图片
	gra = tempimage.getGraphics();
	gra.setFont(chatfont);
	gra.drawString("等待其他玩家开始 ",0,0,Graphics.TOP|Graphics.LEFT);
	waitsprite = new Sprite(tempimage);
	waitsprite.setPosition(WAIT_START_X,WAIT_START_Y);
	waitsprite.setVisible(false);
	lm.insert(waitsprite,2);
	tempimage = null;
	gra = null;
	//System.out.println("waitotherbegin:  "+String.valueOf(gobangcontrol.rt.freeMemory()));
	
	//画等待对家应答提示框
	tempimage = Image.createImage(WAIT_WIDTH,WAIT_HEIGHT);  //读取指针图片
	gra = tempimage.getGraphics();
	gra.setFont(chatfont);
	gra.drawString("等待对家响应,请稍等! ",0,0,Graphics.TOP|Graphics.LEFT);
	waitoppsprite = new Sprite(tempimage);
	waitoppsprite.setPosition(WAIT_OPPRESPOND_X,WAIT_OPPRESPOND_Y);
	waitoppsprite.setVisible(false);
	lm.insert(waitoppsprite,2);
	tempimage = null;
	gra = null;
	gobangcontrol.rt.gc();
	
	//System.out.println("waitrespond:  "+String.valueOf(gobangcontrol.rt.freeMemory()));
	
	
	//插入游戏结束提示图层
	Image endimage=null;
	try {
		endimage = Image.createImage("/png/endimage.png");
	} catch (IOException e) {
		// TODO 自动生成 catch 块
		e.printStackTrace();
	}
	gameendlayer = new TiledLayer(1,1,endimage,END_WIDTH,END_HEIGHT);
	lm.insert(gameendlayer,0);
	gameendlayer.setPosition(END_ORIGIN_X,END_ORIGIN_Y);
	endimage = null;
	//System.out.println("endimage:  "+String.valueOf(gobangcontrol.rt.freeMemory()));
	
	//插入询问框
	agreencontrol = new ConfirmControl(AGREEN_WIDTH,AGREEN_HEIGHT,MAX_IN_ROW,CONFIRMTYPE);
	lm.insert(agreencontrol,0);
	agreencontrol.setVisible(false);
	//System.out.println("agreencontrol:  "+String.valueOf(gobangcontrol.rt.freeMemory()));
	
	
	//插入确认提示框
	promptcontrol = new ConfirmControl(PROMPT_WIDTH,PROMPT_HEIGHT,MAX_IN_ROW,PROMPTTYPE);
	lm.insert(promptcontrol,0);
	promptcontrol.setVisible(false);
	//System.out.println("affirm:  "+String.valueOf(gobangcontrol.rt.freeMemory()));
//	画指针图标
	try {
		tempimage = Image.createImage("/png/mouse.png");  //读取指针图片
		
	} catch (IOException e) {
		// TODO 自动生成 catch 块
		e.printStackTrace();
	}
	mousesprite = new MouseSprite(tempimage,HAND_WIDTH,HAND_HEIGHT);
	rectinit();
	mousesprite.init(chatrect,operaterect,inforect,qipanrect);
	lm.insert(mousesprite,0);
	tempimage = null;
	gobangcontrol.rt.gc();
	//System.out.println("hander:  "+String.valueOf(gobangcontrol.rt.freeMemory()));
	
	presprite.setVisible(false);
	selectsprite.setVisible(false);
	selectsprite.setNewPosition(7,7);
	mousesprite.setCurrRect(operaterect);
	mousesprite.setDisplay();
	mousesprite.setVisible(true);
	
	}
	
	
//	功能操作菜单标志初始化
	public void operateinit(boolean flag){
		for(int i = 0; i < OPERATE_WIDTH_TILES; i++){
			operateflag[i] = flag;
		}
		
	}
	
	
	
	//功能操作菜单初始化
	private void operatelayerinit(){
		operateinit(true);
		operatelayer.fillCells(0,0,OPERATE_WIDTH_TILES,1,0);
		graylayer.fillCells(0,0,OPERATE_WIDTH_TILES,1,0);
		operatelayer.setCell(0,0,5); //开始按键
		operatelayer.setCell(1,0,6); //帮助按键
		operatelayer.setCell(2,0,7);//返回按键
	}
	
	//用户开始后重新设置要显示的功能操作菜单
	private void operatelayerstart(){
		operateinit(true);
		operatelayer.fillCells(0,0,OPERATE_WIDTH_TILES,1,0);
		graylayer.fillCells(0,0,OPERATE_WIDTH_TILES,1,0);
		operatelayer.setCell(0,0,1); //放弃按键
		operatelayer.setCell(1,0,3); //悔棋按键
		operatelayer.setCell(2,0,4);//求和按键
		operatelayer.setCell(3,0,2);//认输按键
	}
	
//	轮到对家下子功能操作菜单
	private void operateoppstart(){
		operateinit(true);
		operatelayer.fillCells(0,0,OPERATE_WIDTH_TILES,1,0);
		graylayer.fillCells(0,0,OPERATE_WIDTH_TILES,1,0);
		operatelayer.setCell(0,0,6); //帮助按键
		operatelayer.setCell(1,0,8); //聊天按键
		operatelayer.setCell(2,0,9);//设置按键
		
	}
	
	
	
	private void drawchatinfo(){
		chatcontrol = new ChatControl(lm,chatfont,CHATCONTROL_WIDTH,CHATCONTROL_HEIGHT);
		chatcontrol.init("你可以通过*号键来切换各个操作区间",CHAT_MAX_ROW,CHAT_MAX_NUM,CHAT_ARRY_NUM);
		chatcontrol.setPosition(CHAT_ORIGIN_X,CHAT_ORIGIN_Y);
	//	chatcontrol.setVisible(true);
		chatcontrol.clear();
		gobangcontrol.rt.gc();
		String contenttemp[] = new String[CHAT_ARRY_NUM];
		for(int i=0;i<CHAT_ARRY_NUM-2;i++){
			contenttemp[i] = "";
			
		}
		contenttemp[0] = "你可以通过*号键来切换各个操作区间";
		contenttemp[1] = "欢迎进入五子棋游戏,如您发现游戏有不足的地方请提供宝贵的意见";
		chatcontrol.append(contenttemp,1);
		contenttemp = null;
	
	}
	
	
	
	private void displayuserinfo(){
		//显示用户头像
		Image userheadimage = null;
		try {
			if(commstructnode.getPicture().equals("00"))
				userheadimage = Image.createImage("/png/boyhead.png");
			else
				userheadimage = Image.createImage("/png/girlhead.png");
		} catch (IOException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		if(userheadsprite != null){
			lm.remove(userheadsprite);
			userheadsprite = null;
		}
		userheadsprite = new Sprite(userheadimage);
		userheadimage = null;
		userheadsprite.setPosition(USER_ORIGIN_X,USER_ORIGIN_Y);
		lm.insert(userheadsprite,1);
		//显示用户的游戏时间
		if(timelayer == null){
			try {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -