📄 enginekey.java
字号:
package engine.kernel;
/**
* 按键类<br>
* 本引擎需要从资源文件里面获取机器按键的布局映射定义,该文件采用ANSI编码存储,通过{@link engine.kernel.EngineMIDlet#EngineMIDlet(boolean, int, int, boolean, int, int, int, String, int, int, boolean) EngineMIDlet(boolean continueAfterException, int scrWidthAdjust, int scrHeightAdjust, boolean isDoubleBuffered, int fps, int reservedScreenNormalCapacity, int backgroundCapacity, String keyMapURL, int maxCombineKey, int tbkh, boolean appendCommandSoftX)}的参数keyMapURL把文件路径传入引擎。<br>
* 该文件的创建方法如下:用十六进制写入键值,要求前面的八位必须按照如下顺序定义:无效按键,游戏行为的“上”、“下”、“左”、“右”、“开火”,左软键,右软键。该数据在被读出来的时候采用byte数组的形势存储在运行程序里面。<br>
* 按键布局定义参考表:<br>
* <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
* <TR BGCOLOR="#9988cc">
* <TD WIDTH="20%"><FONT SIZE="+1"><B>编号</B></FONT></TD>
* <TD WIDTH="20%"><FONT SIZE="+1"><B>键位</B></FONT></TD>
* <TD WIDTH="20%"><B><FONT SIZE="+1">键值</FONT><br><FONT SIZE="-1">(每个键值都必须各不相同)</FONT></B></TD>
* <TD WIDTH="20%"><B><FONT SIZE="+1">键值对应的十六进制</FONT><br><FONT SIZE="-1">(写入按键布局文件的数据)</FONT></B></TD>
* </TR>
* <TR BGCOLOR="#FFFF00">
* <TD COLSPAN=4 WIDTH="100%"><FONT SIZE="-1"><B>以下是固定数据,顺序不可以改变,键值需要根据具体的硬件数据而定。</FONT></B></TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">0</TD><TD WIDTH="20%">InvalidKey</TD><TD WIDTH="8%">0</TD><TD WIDTH="20%">00</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">1</TD><TD WIDTH="20%">Action_Up</TD><TD WIDTH="8%">1</TD><TD WIDTH="20%">01</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">2</TD><TD WIDTH="20%">Action_Down</TD><TD WIDTH="8%">6</TD><TD WIDTH="20%">06</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">3</TD><TD WIDTH="20%">Action_Left</TD><TD WIDTH="8%">2</TD><TD WIDTH="20%">02</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">4</TD><TD WIDTH="20%">Action_Right</TD><TD WIDTH="8%">5</TD><TD WIDTH="20%">05</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">5</TD><TD WIDTH="20%">Action_Fire</TD><TD WIDTH="8%">8</TD><TD WIDTH="20%">08</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">6</TD><TD WIDTH="20%">SOFT1</TD><TD WIDTH="8%">-6</TD><TD WIDTH="20%">FA</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">7</TD><TD WIDTH="20%">SOFT2</TD><TD WIDTH="8%">-7</TD><TD WIDTH="20%">F9</TD>
* </TR>
* <TR BGCOLOR="#FFFF00">
* <TD COLSPAN=4 WIDTH="100%"><FONT SIZE="-1"><B>以下是可选数据,顺序可以由使用本引擎的开发人员自己定义,键值仍然是根据具体的硬件数据定义。现在给出一个示例。</FONT></B></TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">8</TD><TD WIDTH="20%">KEY_NUM0</TD><TD WIDTH="8%">48</TD><TD WIDTH="20%">30</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">9</TD><TD WIDTH="20%">KEY_NUM1</TD><TD WIDTH="8%">49</TD><TD WIDTH="20%">31</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">10</TD><TD WIDTH="20%">KEY_NUM2</TD><TD WIDTH="8%">50</TD><TD WIDTH="20%">32</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">11</TD><TD WIDTH="20%">KEY_NUM3</TD><TD WIDTH="8%">51</TD><TD WIDTH="20%">20</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">12</TD><TD WIDTH="20%">KEY_NUM4</TD><TD WIDTH="8%">52</TD><TD WIDTH="20%">34</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">13</TD><TD WIDTH="20%">KEY_NUM5</TD><TD WIDTH="8%">53</TD><TD WIDTH="20%">35</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">14</TD><TD WIDTH="20%">KEY_NUM6</TD><TD WIDTH="8%">54</TD><TD WIDTH="20%">36</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">15</TD><TD WIDTH="20%">KEY_NUM7</TD><TD WIDTH="8%">55</TD><TD WIDTH="20%">37</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">16</TD><TD WIDTH="20%">KEY_NUM8</TD><TD WIDTH="8%">56</TD><TD WIDTH="20%">38</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">17</TD><TD WIDTH="20%">KEY_NUM9</TD><TD WIDTH="8%">57</TD><TD WIDTH="20%">39</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">18</TD><TD WIDTH="20%">*</TD><TD WIDTH="8%">42</TD><TD WIDTH="20%">2A</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">19</TD><TD WIDTH="20%">#</TD><TD WIDTH="8%">35</TD><TD WIDTH="20%">23</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">20</TD><TD WIDTH="20%">↑</TD><TD WIDTH="8%">-1</TD><TD WIDTH="20%">FF</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">21</TD><TD WIDTH="20%">↓</TD><TD WIDTH="8%">-2</TD><TD WIDTH="20%">FE</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">22</TD><TD WIDTH="20%">←</TD><TD WIDTH="8%">-3</TD><TD WIDTH="20%">FD</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">23</TD><TD WIDTH="20%">→</TD><TD WIDTH="8%">-4</TD><TD WIDTH="20%">FC</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">24</TD><TD WIDTH="20%">SELECT</TD><TD WIDTH="8%">-5</TD><TD WIDTH="20%">FB</TD>
* </TR>
* </TABLE>
* <br>
* 按键的操作使用如下方法:{@link engine.kernel.EngineKey#pressAnyKey pressAnyKey()}、{@link engine.kernel.EngineKey#pressKey(int) pressKey(int key)}、{@link engine.kernel.EngineKey#holdAnyKey holdAnyKey()}、{@link engine.kernel.EngineKey#holdKey(int) holdKey(int key)}、{@link engine.kernel.EngineKey#combineKey(int[]) combineKey(int[] keys)}、{@link engine.kernel.EngineKey#repeatKey(int, int) repeatKey(int key, int times)}、{@link engine.kernel.EngineKey#clrAllKeyState clrAllKeyState()}、{@link engine.kernel.EngineKey#setHoldKeyTimeout setHoldKeyTimeout(int tbkh)}、{@link engine.kernel.EngineKey#browserKeyMap browserKeyMap()}。
* @author 贾永明
* @version 2.8.0
* @since HuoHouStudioEngine1.0
*/
public final class EngineKey{
/**
* constructor。<br>不可以产生EngineKey的实例。
*/
private EngineKey(){
}
/**
* 机器键值布局,由{@link engine.kernel.EngineMIDlet#EngineMIDlet(boolean, int, int, boolean, int, int, int, String, int, int, boolean) EngineMIDlet(boolean continueAfterException, int scrWidthAdjust, int scrHeightAdjust, boolean isDoubleBuffered, int fps, int reservedScreenNormalCapacity, int backgroundCapacity, String keyMapURL, int maxCombineKey, int tbkh, boolean appendCommandSoftX)}的参数keyMapURL传入引擎。要求前面的八位必须按照如下顺序定义:无效按键,游戏行为的“上”、“下”、“左”、“右”、“开火”,左软键,右软键。<br>
* 按键布局定义参考表:<br>
* <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
* <TR BGCOLOR="#9988cc">
* <TD WIDTH="20%"><FONT SIZE="+1"><B>编号</B></FONT></TD>
* <TD WIDTH="20%"><FONT SIZE="+1"><B>键位</B></FONT></TD>
* <TD WIDTH="20%"><B><FONT SIZE="+1">键值</FONT><br><FONT SIZE="-1">(每个键值都必须各不相同)</FONT></B></TD>
* <TD WIDTH="20%"><B><FONT SIZE="+1">键值对应的十六进制</FONT><br><FONT SIZE="-1">(写入按键布局文件的数据)</FONT></B></TD>
* </TR>
* <TR BGCOLOR="#FFFF00">
* <TD COLSPAN=4 WIDTH="100%"><FONT SIZE="-1"><B>以下是固定数据,顺序不可以改变,键值需要根据具体的硬件数据而定。</FONT></B></TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">0</TD><TD WIDTH="20%">InvalidKey</TD><TD WIDTH="8%">0</TD><TD WIDTH="20%">00</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">1</TD><TD WIDTH="20%">Action_Up</TD><TD WIDTH="8%">1</TD><TD WIDTH="20%">01</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">2</TD><TD WIDTH="20%">Action_Down</TD><TD WIDTH="8%">6</TD><TD WIDTH="20%">06</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">3</TD><TD WIDTH="20%">Action_Left</TD><TD WIDTH="8%">2</TD><TD WIDTH="20%">02</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">4</TD><TD WIDTH="20%">Action_Right</TD><TD WIDTH="8%">5</TD><TD WIDTH="20%">05</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">5</TD><TD WIDTH="20%">Action_Fire</TD><TD WIDTH="8%">8</TD><TD WIDTH="20%">08</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">6</TD><TD WIDTH="20%">SOFT1</TD><TD WIDTH="8%">-6</TD><TD WIDTH="20%">FA</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">7</TD><TD WIDTH="20%">SOFT2</TD><TD WIDTH="8%">-7</TD><TD WIDTH="20%">F9</TD>
* </TR>
* <TR BGCOLOR="#FFFF00">
* <TD COLSPAN=4 WIDTH="100%"><FONT SIZE="-1"><B>以下是可选数据,顺序可以由使用本引擎的开发人员自己定义,键值仍然是根据具体的硬件数据定义。现在给出一个示例。</FONT></B></TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">8</TD><TD WIDTH="20%">KEY_NUM0</TD><TD WIDTH="8%">48</TD><TD WIDTH="20%">30</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">9</TD><TD WIDTH="20%">KEY_NUM1</TD><TD WIDTH="8%">49</TD><TD WIDTH="20%">31</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">10</TD><TD WIDTH="20%">KEY_NUM2</TD><TD WIDTH="8%">50</TD><TD WIDTH="20%">32</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">11</TD><TD WIDTH="20%">KEY_NUM3</TD><TD WIDTH="8%">51</TD><TD WIDTH="20%">20</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">12</TD><TD WIDTH="20%">KEY_NUM4</TD><TD WIDTH="8%">52</TD><TD WIDTH="20%">34</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
* <TD WIDTH="20%">13</TD><TD WIDTH="20%">KEY_NUM5</TD><TD WIDTH="8%">53</TD><TD WIDTH="20%">35</TD>
* </TR>
* <TR BGCOLOR="#CCCCFF">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -