1. 程式人生 > >java常用語法--遊戲開發基礎

java常用語法--遊戲開發基礎

1 基礎語句

  • 設定標題和視窗大小
GameCore.pause(2000);
		GameCore.setGameTitle("我的第一個遊戲引擎");//更改標題
		GameCore.setGameSize(300, 300);//設定大小
		GameCore.pause(2000);//暫停
		GameCore.setGameSize(500, 500);
		GameCore.setGameTitle("切換標題");
        GameCore.pause(2000);
  • 設定視窗寬和高
public void run()
	{
	int  h=GameCore.getGameHeight();//獲取高
	int
w=GameCore.getGameWidth();//獲取寬度 System.out.println("高是:"+h+"寬是"+w); GameCore.pause(2000); GameCore.setGameSize(300, 300);//重新設定寬、高 System.out.println("設定高是"+GameCore.getGameHeight()+"寬是"+GameCore.getGameWidth()); GameCore.pause(2000); }
  • 方法首字母小寫,之後每個單詞的首字母大寫 如:createText ;setTextPosition;
public void run
() { GameCore.createText(1, "美團網");//建立文字 GameCore.setTextPosition(1, 300, 300);//設定位置 GameCore.setTextFontSize(1, 30);//設定大小 do { GameCore.showText(1); GameCore.pause(500); GameCore.hideText(1); GameCore.pause(500); }while(true); }
  • 建立多個文字
public void run()
	{
	GameCore.createText(1, "美團網");//建立文字
GameCore.setTextPosition(1, 300, 300);//設定位置 GameCore.setTextFontSize(1, 30);//設定大小 GameCore.createText(2, "京東網"); GameCore.setTextColor(2, Color.BLUE); GameCore.setTextPosition(2, 400, 400); GameCore.pause(3000); }

-建立圖片等操作

public void run()
	{
		//設定背景
		GameCore.loadBgView("大片草地.png");
		//建立圖片
		GameCore.createImage(0, "落葉.jpg");
		//設定圖片位置
		GameCore.setImagePosition(0, 200, 200);
		GameCore.pause(10000);
	}

  1. 精靈操作
public void run()
	{
		//建立精靈
		GameCore.createSprite(0, "mario");
		//設定座標
		GameCore.setSpritePosition(0, 100, 100);
		//執行動作
		GameCore.playSpriteAnimate(0, "walk");
		GameCore.pause(2000);
		//X軸翻轉
		GameCore.setSpriteFlipX(0, true);
		GameCore.pause(10000);
	}
  1. 獲取按鍵 注意持續按鍵 獲取按鍵值 要寫在迴圈裡面。
	public void run()
   {
   while(true)
   {
   	//獲取按鍵數值
   	int i=GameCore.getPressedKeyCode();	
   	// 進行比較
   	switch(i)
   	{
   	case KeyEvent.VK_UP:
   	case KeyEvent.VK_W:
   	System.out.println("上鍵 或者W鍵");
   	break;
   	
   	case KeyEvent.VK_DOWN:
   	case KeyEvent.VK_S:
   	System.out.println("下鍵 或者S鍵");
   	break;
   	
   	
   	case KeyEvent.VK_LEFT:
   	case KeyEvent.VK_A:
   	System.out.println("左鍵 或者A鍵");
   	return; //左鍵退出程式

   	case KeyEvent.VK_RIGHT:
   	case KeyEvent.VK_D:
   	System.out.println("右鍵 或者D鍵");
   	break;
   	
   	
   	default:
   	System.out.println("未知按鍵");
   	break;
   	
   	}	
   }
   	}
  1. 一個網上常見的死迴圈小程式
public void run()
	{
    boolean b=GameCore.confirm("你喜歡我嗎?");
    while(true)
    {
    if (b==false)
    	b=GameCore.confirm("你喜歡我嗎?");
    else
    	return;
    }
	}
  1. 設定遊戲啟動畫面小程式
public void run()
	{
		//設定背景,建立文字
		GameCore.loadBgView("大片草地.png");
		GameCore.createText(0, "超級瑪麗");
		String[] s= {"1 - 單人遊戲","2 - 多人遊戲","3 -遊戲演示"};
		for (int i=1;i<=3;i++)
		{
		GameCore.createText(i, s[i-1]);
		GameCore.setTextPosition(i, 300, 200+i*50);
		GameCore.setTextColor(i, Color.white);
		}
		//設定細節
		
		GameCore.setTextFontSize(0, 50);
		GameCore.setTextColor(0, Color.YELLOW);
		GameCore.setTextPosition(0, 300, 100);
		
		
		GameCore.pause(10000);
	
	}
  1. 實現呼吸字型
	public void run()
	{
		int num=0;
		GameCore.createText(num, "超級瑪麗");
		int i=GameCore.getTextFontSize(num);
		System.out.println(i);
		GameCore.setTextPosition(num, 300, 300);
		
		//死迴圈
		for(;;)
		{
			//放大
		for(int fontSize=30;fontSize<=50;fontSize++)
		{
			GameCore.setTextFontSize(0, fontSize);
			GameCore.pause(200);
		}
		
		//縮小
		for(int fontSize=50;fontSize>=30;fontSize--)
		{
			GameCore.setTextFontSize(0, fontSize);
			GameCore.pause(200);
		}
		}
	
	}
	
  1. 倒計時效果 方法1:比較笨拙,想複雜了,不可取
  2. 錯誤思想: 一個文字就行,無需重複建立。。
public void run()
	{
		for(int i=0,j=10;i<=10&& j>=0;i++,j-- )
		{
			GameCore.createText(i, Integer.toString(j));
			GameCore.setTextPosition(i, 300, 300);
			GameCore.pause(1000);
			GameCore.hideText(i);
		}
		
		GameCore.pause(10000);
  1. 倒計時效果 方法2:ok
public void run()
	{
		int num=0;
		GameCore.createText(num, "10");
		GameCore.setTextPosition(num, 300, 300);

		for(int i=10;i>=0;i-- )
		{
			GameCore.setText(num, Integer.toString(i));
			GameCore.pause(1000);
		}
		
		GameCore.pause(10000);
	
	}
  1. 實現彈幕效果
public void run()
	{
		String[]  s= {"歸來仍是少年","加油努力","美團屏芯"};
		//建立文字
		for(int i=0;i<=s.length-1;i++)
		{
			GameCore.createText(i, s[i]);
			GameCore.setTextPosition(i, 200+50*i, 200+50*i);
		}
		
		for(int i=0;i<=500;i++)
		{
			//左移動
			GameCore.setTextPosition(0, GameCore.getTextX(0)-1, GameCore.getTextY(0));
			//左移動
			GameCore.setTextPosition(1, GameCore.getTextX(1)-1, GameCore.getTextY(1));
			//向上移動
			GameCore.setTextPosition(2, GameCore.getTextX(2), GameCore.getTextY(2)-1);

			GameCore.pause(10);
		}
		
		GameCore.pause(10000);
	
	}
  1. 實現汽車旋轉:用多張圖片輪番播放
public void run()
	{
		int num=0;
		GameCore.createImage(num, "1.png");
		
		for(int i=1;i<=36;i++)
		{
			String s=i+".png";
			GameCore.setImageSource(num,s);
			GameCore.pause(100);
			//用if實現死迴圈
			if(i==36)
				i=1;
		}
  • 鍵盤控制精靈移動
  1. switch case後 無需要加{}
	public void run() {

		int num = 0;
		GameCore.createSprite(num, "mario");
		GameCore.playSpriteAnimate(num, "walk");
		int x = 0;
		int y = 0;
		while (true) {
			//持續鍵盤輸入
			int key = GameCore.getPressedKeyCode();

			switch (key) {
			//左
			case KeyEvent.VK_LEFT:
			case KeyEvent.VK_A:
				x--;
				break;
			//右
			case KeyEvent.VK_RIGHT:
			case KeyEvent.VK_D:
				GameCore.setSpriteFlipX(num, true);
				x++;
				break;
		  //上
			case KeyEvent.VK_UP:
			case KeyEvent.VK_W:
				y--;
				break;
           //下
			case KeyEvent.VK_DOWN:
			case KeyEvent.VK_S:				
				y++;
				break;

			default:
				break;
			}

			GameCore.setSpritePosition(num, x, y);
			//移動速度暫停
			GameCore.pause(10);

		}

	}