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

📄 castlecanvas.java

📁 恶魔城-晓月圆舞曲 JAVA手機遊戲
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
			g.setClip(0,170,140,50);
			g.drawString("请选择要删除的存档。",10,179,imgLT);
	
		}
	}
	private void drawNewStart(Graphics g)
	{
		g.setClip(0,0,screenWidth,screenHeight);
		g.drawImage(newGame,0,0,imgLT);
		drawFire(g,(short)18,(short)8,(byte)127);
	}
	private void drawGameMain(Graphics g)
	{
		map.paint(g);
	}
	private void drawEnemy(Graphics g)
	{
		Enumeration v = enemy.elements();
		while(v.hasMoreElements())
		{
			Enemy em = (Enemy)(v.nextElement());
			em.paint(g);
		}
	}
	private void drawRole(Graphics g)
	{
		soma.paint(g);
	}
	private void drawAlphaBlack(Graphics g,Image img)//当主角死亡使屏幕渐渐变黑
	{
		if(soma.isDead())
		{
			int w = img.getWidth();
			int h = img.getHeight();
			int[] color = new int[w*h];
			img.getRGB(color,0,w,0,0,w,h);
			for(int i=0;i<color.length;i++)
			{
				int r = color[i] >> 16 & 255;//0x0000rr
				int gg = color[i] >> 8 & 255; //0x00rrgg
				int b = color[i] & 255;	   //0xrrggbb	
			
				color[i] =  alpha<<24 | r<<16 | gg<<8 | b;
			}
			alpha += 5;
			if(alpha>=248)
			{
				alpha = 255;
				gameState = GAME_OVER;
			}
			g.setClip(0,0,w,h);
			g.drawRGB(color,0,w,0,0,w,h,true);	
		}
	}
	private void drawGameOver(Graphics g)
	{
		g.setClip(0,0,dead.getWidth(),dead.getHeight());
		g.drawImage(dead,0,0,imgLT);
	}
	/***************paint();绘制屏幕图像*************/
	
	public void paint(Graphics g)
	{
		drawClearScreen(g,0xFFffffff);
		switch(gameState) 
		{
		case GAME_OVER:
			drawGameOver(g);
			break;
		case GAME_COM_LOGO:	
			loadImg = null;
			drawAlphaLogo(g,gameLogo,GAME_LOGO);
			break;
		case GAME_LOGO:
			gameLogo = null;
			drawAlphaLogo(g,konamiLogo,GAME_MENU);//GAME_MENU_EFFECT TODO
			break;
		case GAME_MENU_EFFECT:
			
			drawMenuEffect(g);
			break;
		case GAME_MENU:
			konamiLogo = null;
			drawMenu(g);
			break;
		case GAME_ANIMATION:
			break;
		case GAME_MENU_SELECT:
			drawMenuSelect(g);
			break;
		case GAME_SELECT_DATA:
			drawMenuSelectData(g);
			break;
		case GAME_COPY_DATA:
			drawMenuCopyData(g);
			break;
		case GAME_DELETE_DATA:
			drawMenuDeleteData(g);
			break;
		case GAME_WAIT_OTHER:
			
			break;
		case GAME_NEW_START:
			drawNewStart(g);
			break;
		case GAME_SAVE_LOAD:
			break;
		case GAME_MAIN:
			drawGameMain(g);
			drawEnemy(g);
			drawRole(g);
			drawAlphaBlack(g,dead);
			break;
		case GAME_MAP:
			break;
		case GAME_ROLE_STATE:
			sFace.paint(g);
			break;
		case GAME_GAIN_FETCH:
			break;
		case GUT_ONE:
			break;
		case GAME_SCENE_ONE:
			break;
		case GAME_LOADING:
			if(drawLoading(g))
				gameState = GAME_COM_LOGO; //切换到第一个LOGO
			break;
		case GAME_CONECT:
			drawMenuSelectData(g);
			break;
		}		
	}
	/*用1.0键缓冲处理菜单****************/
	public void keyPressed(int key_code)
	{	
		int key = getGameAction(key_code);
		switch(gameState)
		{
		case GAME_COM_LOGO:
			if(key!=0)
			{
				alphaLogo = false;
				gameState = GAME_LOGO;
				gameLogo = null;
			}
			break;
		case GAME_LOGO:
			if(key!=0)
			{
				gameState = GAME_MENU;//GAME_MENU_EFFECT TODO
				konamiLogo = null;
			}
			break;
		case GAME_MENU_EFFECT:
			if(key!=0)
			{
				gameState = GAME_MENU;
			}
			break;
		case GAME_MENU:
			if(key==UP)
			{
				menuIndex--;
				if(menuIndex<0)
					menuIndex=2;
			
			}
			else if(key==DOWN)
			{
				menuIndex++;
				if(menuIndex>2)
					menuIndex=0;
			}
			else if(key==FIRE)
			{
				switch(menuIndex)
				{
				case 0:
					gameSelect = 0;
					gameState = GAME_MENU_SELECT;
					break;
				case 1:
					gameSelect = 0;
					gameState = GAME_CONECT;
					break;
				case 2:
					CastlevaniaMIDlet.quitApp();
					break;
				}
			}
			break;
		case GAME_ANIMATION:
			break;
		case GAME_MENU_SELECT: //选择、复制、删除界面
			if(key==UP)
			{
				gameSelect--;
				if(gameSelect<0)
				{
					gameSelect = 2;
				}
			}
			else if(key==DOWN)
			{
				gameSelect++;
				if(gameSelect>2)
				{
					gameSelect = 0;
				}
			}
			else if(key==FIRE || key_code == -6)
			{
				if(gameSelect == 0)
				{
					gameSelect = 0;
					gameState = GAME_SELECT_DATA;
				}
				else if(gameSelect == 1)
				{
					gameSelect = 0;
					selectRight();
					gameState = GAME_COPY_DATA;
				}
				else if(gameSelect == 2)
				{
					gameSelect = 0;
					gameState = GAME_DELETE_DATA;
				}
			}
			else if(key_code == -7)
			{
				gameState = GAME_MENU_EFFECT;
			}
			break;
		case GAME_SELECT_DATA:            /**选择游戏存档界面***/
			if(key==LEFT)
			{
				gameSelect--;
				if(gameSelect<0)
				{
					gameSelect = 2;
				}
			}
			else if(key==RIGHT)
			{
				gameSelect++;
				if(gameSelect>2)
				{
					gameSelect = 0;
				}
			}
			else if(key==FIRE)
			{
				if(rmsExist[gameSelect])
				{
					/**
					 * 从存档继续游戏
					 * */
					menuCastle = null;
					menuTitle = null;
					menuSelect = null;
					menuCastle = null;
					menuMoon = null;
					menuMoonBack = null;
					selectData = null;
					selectFont = null;
					selectGameData = null;
					copyData = null;
					deleteData = null;
					newGame = null;
					menuBack = null;
					handFlag = null;
					System.gc();
					gameState = GAME_MAIN;
				}
				else
				{
					/**
					 * 重新开始游戏
					 * */
					gameState = GAME_NEW_START;
				}
			}
			else if(key_code == -7)
			{
				gameSelect = 0;
				gameState = GAME_MENU_SELECT;
			}
			break;
		case GAME_COPY_DATA: //存单复制界面
			if(key==LEFT)
			{
				if(isCopySure)
				{
					isNot--;
					if(isNot<0)
					{
						isNot = 0;
					}
				}
				else
				{
					gameSelect--;
					if(gameSelect<0)
					{
						gameSelect = 2;
					}
					selectLeft();//控制下标不能移动到没有存档的上面
				}
			}
			else if(key==RIGHT)
			{
				if(isCopySure)
				{
					isNot++;
					if(isNot>1)
					{
						isNot = 1;
					}
				}
				else
				{
					gameSelect++;
					if(gameSelect>2)
					{
						gameSelect = 0;
					}
					selectRight();//控制下标不能移动到没有存档的上面
				}
			}
			else if(key==FIRE)
			{
				if(!isCopySure)
				{
					if(isCopy)
					{
						rmsExist = getRms();
						isCopySure = true;
						isNot = 1;
					}
					else
					{
						copyIndex = gameSelect;
						switch(copyIndex)
						{
						case 0:
							rmsExist[0] = false;
							rmsExist[1] = true;
							rmsExist[2] = true;
							break;
						case 1:
							rmsExist[0] = true;
							rmsExist[1] = false;
							rmsExist[2] = true;
							break;
						case 2:
							rmsExist[0] = true;
							rmsExist[1] = true;
							rmsExist[2] = false;
							break;
						}
						isCopy = true;
						selectRight();
					}
				}
				else 
				{//从copyIndex 拷贝到 gameSelect
					if(isNot==0) //如果isNot==0,即下标指向YES,开始执行拷贝
					{
						
					}
					else
					{
						
					}
					copyIndex = -1;
 					isCopySure = false;
 					isCopy = false;
				}
			}
			else if(key_code == -7)
			{
				if(!isCopySure)
				{
					if(isCopy)
					{
						rmsExist = getRms();
						gameSelect = copyIndex;
						copyIndex = -1;
						isNot = 1;
						isCopy = false;
					}
					else
						gameState = GAME_MENU_SELECT;
				}
				gameSelect = 0;
			}
			break;
		case GAME_DELETE_DATA: //删除存档界面
			if(key==LEFT)
			{
				if(!isDelete)
				{
					gameSelect--;
					if(gameSelect<0)
					{
						gameSelect = maxSelect;
					}
				}
				else
				{
					isNot--;
					if(isNot<0)
						isNot = 0;
				}
			}
			else if(key==RIGHT)
			{
				if(!isDelete)
				{
					gameSelect++;
					if(gameSelect>maxSelect)
					{
						gameSelect = 0;
					}
				}
				else
				{
					isNot++;
					if(isNot>1)
					{
						isNot = 1;
					}
				}
			}
			else if(key==FIRE || key_code == -6)
			{
				deleIndex = gameSelect;
				if(!isDelete && rmsExist[gameSelect])
				{
					isDelete = true;
					isNot = 1;
					maxSelect = 2;
					
				}
				else
				{	
					if(isNot == 0)//开始删除
					{
						rmsExist = getRms();
					}
					isDelete = false;
				}
			}
			else if(key_code == -7)
			{
				if(!isDelete)
				{
					gameState = GAME_MENU_SELECT;
				
				}
				else
				{
					
				}
				gameSelect = 0;
			}
			break;
		case GAME_WAIT_OTHER:
			break;
		case GAME_NEW_START: 
			/*
			 * 按键 游戏 起名界面
			 * */
			if(key==UP)
			{
				
			}
			else if(key==DOWN)
			{
				
			}
			else if(key==LEFT)
			{
				
			}

⌨️ 快捷键说明

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