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

📄 basketball.java

📁 game for basketball. Midlet,support MIDP2.0
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.util.*;
import java.lang.*;
import java.io.*;
//import javax.microedition.media.*;
import com.nokia.mid.ui.DeviceControl;
public class Basketball extends MIDlet
{
	static public Display myDisplay;
	static public bhCanvas myCanvas;
	static public Random rand;
	public static long m_iFreeMemory;
	public static int iHomeTeam;
	public static int iAwayTeam;
	public static int iTeamSel;
	public static int iPlayerSel;
	public static int iStatSel;
	public static int iQuarterlength;
	public static boolean bUpdate;
	public static boolean bQuickGame;
	public static boolean bSoundOn;
	public static boolean bSelTeam1;
	public static boolean bSavedGames;
	public static boolean bVibrationON;
	public static boolean bLoadSaveStart = false;
	public static boolean bComingFromEndQtr;
	public static boolean bComingFromGame;
	public static int iOverallRating[];
	public static int iOffenseRating[];
	public static int iDefenseRating[];
	public static byte pHomeRemaps[][][];
	public static byte pAwayRemaps[][][];
	public static byte pPlayerStats_iSpeed[][];
	public static byte pPlayerStats_i2ptShotRating[][];
	public static byte pPlayerStats_i3ptShotRating[][];
	public static byte pPlayerStats_iDunkRating[][];
	public static byte pPlayerStats_iReboundRating[][];
	public static byte pPlayerStats_iBlockRating[][];
	public static byte pPlayerStats_iDribPassRating[][];
	public static String pPlayerStats_pFirstName[][];
	public static String pPlayerStats_pLastName[][];
	public static String pTeamName[];
	public static String pTeamCity[];
	public static String pNickName[];
	public static String pHomeTeamName;
	public static String pAwayTeamName;
	public static String pTeamOvrRat;
	public static String pTeamOffRat;
	public static String pTeamDefRat;
	public static String pStatHeader1;
	public static String pStatHeader2;
	public static String pPlayerNames[];
	public static String pPlayerStat[][];
	public static int iSaveState;
	public static Game hGameWnd;
	public static FrontEnd hMenuWnd;
	public static Image pButton;
	public static Image pFrontEndArt;
//	public static javax.microedition.media.Player pSndJingle;
	public static int iSelType;
	public static byte m_pStatBuf[];
	public static byte m_pRsgBuf[];
	static public byte intfFontSizes[]=
	{
		5, 8, 10, 6, 11, 8, 3, 8, 8, 11, 11, 3, 8, 4, 6, 8, 6, 8, 8, 8, 8, 8, 8, 8, 8, 4, 3, 5, 7, 5, 8, 8,
		10, 8, 8, 8, 8, 7, 9, 9, 5, 8, 8, 7, 10, 8, 9, 8, 9, 8, 8, 8, 8, 10, 12, 8, 8, 7,
		8, 8, 8, 8, 8, 6, 8, 8, 4, 6, 7, 4, 10, 8, 8, 8, 8, 6, 8, 6, 8, 9, 12, 8, 8, 7,
	};
	static public byte intfFontSizesSM[]=
	{
		2, 4, 7, 8, 8, 7, 2, 8, 8, 8, 8, 3, 4, 3, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 2, 3, 5, 6, 5, 5, 8,
		6, 5, 6, 6, 5, 5, 6, 6, 2, 3, 6, 5, 6, 6, 7, 5, 7, 5, 5, 6, 6, 6, 6, 6, 6, 6,
		5, 5, 4, 5, 5, 5, 5, 5, 2, 3, 5, 2, 6, 5, 5, 5, 5, 4, 4, 4, 5, 6, 6, 6, 6, 5,
	};
	public void startApp()
	{
		if(null != myDisplay)
		{
			myCanvas.resumeApp();
			resumeApp();
			return;
		}
		TouchEmAll();
		myDisplay = Display.getDisplay(this);
		myCanvas = new bhCanvas(this);
		rand = new Random();
		win.setFontFileAndStats("/fs.png", 8, 9, 0, intfFontSizesSM, "/fb.png", 11, 11, - 1, intfFontSizes);
		Basketball.hGameWnd = null;
		Basketball.hMenuWnd = null;
		Basketball.iHomeTeam = 12;
		Basketball.iAwayTeam = 7;
		Basketball.iTeamSel = 0;
		Basketball.bSelTeam1 = true;
		Basketball.bQuickGame = false;
		Basketball.m_pRsgBuf = GetFileBuf("/Basketball.rsg");
		if(Basketball.m_pRsgBuf == null)
			destroyApp(true);
		Basketball.m_pStatBuf = GetFileBuf("/bball.stats");
		if(Basketball.m_pStatBuf == null)
			destroyApp(true);
		if(!AllocStaticArrays())
		{
			destroyApp(true);
		}
		if(!LoadMenuImages())
		{
			destroyApp(true);
		}
		System.gc();
		System.out.println("StartApp() GC");
		if(LoadUserPrefs()== false)
		{
			Basketball.hMenuWnd = new FrontEnd(32);
			myDisplay.setCurrent(myCanvas);
			return;
		}
		else
		{
			Basketball.hMenuWnd = new FrontEnd(0);
			myDisplay.setCurrent(myCanvas);
			return;
		}
	}
	private void TouchEmAll()
	{
		FrontEnd.Touch();
		Game.Touch();
		RenderObj.Touch();
		Player.Touch();
		win.Touch();
		bhFont.Touch();
		png.Touch();
		bhCanvas.Touch();
	}
	public void pauseApp()
	{
//		StopAllSounds();
		if(Basketball.hGameWnd == win.getFocus()&& Basketball.hGameWnd.ChkGameReady())
		{
			Basketball.hGameWnd.PauseGame();
		}
		if(null != myCanvas)
		{
			myCanvas.pauseApp();
		}
		UnLoadFrontEndOnlyJingle();
		System.gc();
		return;
	}
	public void resumeApp()
	{
		if(Basketball.hGameWnd == null)
		{
			System.out.println("Trying to load jingle BasketballJava ResumeApp()");
//			Basketball.Play(Basketball.pSndJingle, - 1);
		}
		else
			System.out.println("resumeApp gamewnd not null");
	}
	public void destroyApp(boolean unconditional)
	{
		myCanvas.stop();
		SaveUserPrefs();
		UnLoadMenuImages();
		Basketball.hMenuWnd = null;
		Basketball.hGameWnd = null;
		System.gc();
		System.out.println("destroyApp() GC");
	}
	public void exitApp()
	{
		destroyApp(false);
		notifyDestroyed();
	}
	public static Image getImage(String name)
	{
		Image finalImage;
		try
		{
			finalImage = Image.createImage(name);
		}
		catch(Throwable e)
		{
			long iMem = Runtime.getRuntime().freeMemory();
			myDisplay.setCurrent(
				new Alert(
				"ERROR",
			"Sorry - Not enough memory to continue",
			null,
			AlertType.ERROR));
			return null;
		}
		return finalImage;
	}
	private static void SetUserDefaults()
	{
		Basketball.bSavedGames = false;
		Basketball.iQuarterlength = 180000;
//		Basketball.bVibrationON = true;
//		Basketball.bSoundOn = true;
	}
	private static boolean LoadUserPrefs()
	{
		if(win.BufferOpen("savegame.dat", false)== false)
		{
			SetUserDefaults();
			if(win.BufferOpen("savegame.dat", true)== false)
				return false;
		}
		else
		{
			try
			{
				byte pBuf[]= new byte[7];
				win.BufferSeek(0, 2155);
				win.BufferRead(pBuf, 7);
				ByteArrayInputStream pBS = new ByteArrayInputStream(pBuf);
				DataInputStream pDI = new DataInputStream(pBS);
				Basketball.bSavedGames = pDI.readBoolean();
				Basketball.bSoundOn = pDI.readBoolean();
				Basketball.bVibrationON = pDI.readBoolean();
				Basketball.iQuarterlength = pDI.readInt();
				pDI.close();
			}
			catch(Exception e)
			{
				SetUserDefaults();
			}
			if(Basketball.iQuarterlength < 180000)
			{
				SetUserDefaults();
			}
		}
		win.BufferClose();
		/*if(Basketball.bSoundOn)
			Basketball.SetSoundON(true);
		else
			Basketball.SetSoundON(false);*/
		return true;
	}
	public static void SaveUserPrefs()
	{
		if(win.BufferOpen("savegame.dat", false)== false)
		{
			if(win.BufferOpen("savegame.dat", true)== false)
				return;
		}
		try
		{
			ByteArrayOutputStream pBS = new ByteArrayOutputStream(7);
			DataOutputStream pDI = new DataOutputStream(pBS);
			pDI.writeBoolean(Basketball.bSavedGames);
			pDI.writeBoolean(Basketball.bSoundOn);
			pDI.writeBoolean(Basketball.bVibrationON);
			pDI.writeInt(Basketball.iQuarterlength);
			win.BufferSeek(0, 2155);
			win.BufferWrite(pBS.toByteArray(), 7);
			pDI.close();
		}
		catch(Exception e)
		{
		}
	}
	public static boolean LoadMenuImages()
	{
		System.out.println("LoadMenuImages!!!!!");
		if(Basketball.pButton == null)
			Basketball.pButton = Basketball.getImage("/button.png");
		else
			System.out.println("No Menu image unloaded needed");
		if(Basketball.pButton == null)
			return false;
		if(FrontEnd.LoadFrontEndOnlyArt()== false)
			return false;
		return true;
	}
	public static boolean LoadFrontEndOnlyJingle()
	{/*
		if(Basketball.pSndJingle == null){
				Basketball.pSndJingle = Basketball.LoadSnd("/theme.mid", "audio/midi");
			System.out.println("LoadedSnd LoadFrontEndOnlyJingle() + Repeat " + - 1);
		}
		Basketball.Play(pSndJingle, - 1);*/
		System.out.println("Play LoadFrontEndOnlyJingle()");
		return true;
	}
	public static void UnLoadMenuImages()
	{
		UnLoadFrontEndOnlyJingle();
		FrontEnd.UnLoadFrontEndOnlyArt();
		Basketball.pButton = null;
	}
	public static void UnLoadFrontEndOnlyJingle()
	{
		/*if(Basketball.pSndJingle == null)
			return;*/
//		Basketball.Stop();
	}
	public static int sqrtN(int a)
	{
		int g = 1;
		int ng = 0;
		int og = 0;
		while(g != ng && g != og)
		{
			og = ng;
			ng = g;
			g =((a / ng)+ ng)/ 2;
		}
		return(g);
	}
	public static int ABS(int x)
	{
		if(x < 0)
			return - x;
		return x;
	}
	static final int BUTTON_LAYOUT[][]=
	{
		{ 0, 0, 80, 16 },
		{ 0, 16, 80, 16 },
		{ 0, 32, 80, 16 },
		{ 80, 0, 50, 16 },
		{ 80, 16, 50, 16 },
		{ 80, 32, 50, 16 },
	};
	private static final String PLAYNAMES[]=
	{
		/*"Isolation",
		"High Screen",

⌨️ 快捷键说明

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