📄 gamecanvas.java
字号:
package navigate;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.util.Random;
//import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.rms.RecordStore;
import com.nokia.mid.ui.FullCanvas;
public class GameCanvas extends FullCanvas implements Runnable {
/** 弹药资源 0是石弹,1是铅弹,2是铁弹,3是火弹 */
private int[] ammo = new int[4];
/** 绘制地图时记录地图图片的x,y标记 */
int x1, y1;
/** 记录玩家正常行驶时的x,y标记初始位置设定在屏幕中央位置 */
int x, y;
/**
* 玩家属性,power[0]代表玩家船体等级,power[1]代表玩家满HP,power[2]代表玩家攻击力,
* power[3]代表玩家防御力,power[4]代表机动性,power[5]代表幸运,power[6]拥有金钱,power[7]声望,power[8]负重,power[9]代表当前HP;
*/
private int[] power = new int[12];
/** 屏幕宽度和屏幕高度 */
int width, height;
/** direction为0时为向上,1时为向下,2时为向左,3时为向右 */
int direction = -1;
/** 游戏是否正常运行 */
private boolean isRuning = false;
/** 游戏是否结束(结束主线程) */
private boolean isOver = false;
/** 1~10级海盗船,0表示HP,1表示攻击,2表示防御,3表示可获得金钱,4表示机动性,5表示可获得声望 */
final int npcProperty[][] = { { 100, 2, 3, 100, 5, 1 },
{ 200, 5, 10, 150, 5, 1 }, { 300, 5, 15, 200, 10, 2 },
{ 400, 10, 15, 250, 10, 2 }, { 500, 20, 20, 300, 15, 3 },
{ 600, 25, 20, 350, 15, 3 }, { 700, 35, 30, 400, 20, 4 },
{ 800, 35, 35, 450, 20, 4 }, { 900, 40, 35, 500, 25, 5 },
{ 1000, 45, 40, 550, 30, 5 } };
/** 随机遭遇海盗船 0表示HP,1表示攻击,2表示防御,3表示可获得金钱,4表示机动性,5表示可获得声望 */
int tempNpc[] = new int[6];
/** 1~6级Boss,0表示HP,1表示攻击,2表示防御,3表示金钱,4表示机动性,5表示声望 */
final int boss[][] = { { 1000, 10, 10, 5000, 10, 50 },
{ 1500, 20, 25, 8000, 25, 100 }, { 2000, 25, 60, 10000, 50, 150 },
{ 2000, 40, 60, 13000, 80, 200 }, { 2500, 45, 70, 15000, 100, 250 } };
/** 计时器 */
int time;
/** 数组mainMapArray的x,y标记 */
int mx, my;
/**
* 界面状态-1为剧情状态,0为正常航行状态,1为对战状态,2为进入港口状态,
* 3为npc对话状态,4为跑商任务界面,5为游戏菜单界面,6查看船体属性界面, 7保存游戏状态,
* 8为查看当前任务界面,9代表交易界面,10为修理界面,11为升级提示,12修理提示界面,
* 13跑商任务具体信息提示,14完成跑商任务提示界面,15为战斗中提示弹药不足界面,16逃跑提示界面,
* 17为战斗结束界面,18战况界面,20无法进入隐藏地图提示界面,21,22,23,24,2530游戏结束界面
*/
private int scene;
/** 地图map_0为参与碰撞检测图,map_back为背景图 */
Image map_0;
/** 游戏中菜单图片 */
Image runningMenu;
/** 玩家船只图片 */
Image player;
/** 剧情背景图片 */
Image gutBack;
/** 选框图片 */
Image imageChoose;
/** 剧情文字内容 */
String gutString;
/** 游戏主地图 */
int mainMapArray[][] = {
{ 1, 1, 3, 1, 3, 2, 9, 13, 14, 12, 2, 3, 3, 3, 2, 3, 3, 2, 2, 2, 8,
13, 13, 12, 3, 2, 2, 2, 2, 2, 2, 2, 4, 2, 1, 1, 2, 8, 13,
13, 14, 12, 1, 1 },
{ 1, 3, 1, 2, 2, 10, 13, 13, 14, 12, 2, 2, 2, 2, 3, 3, 10, 11, 10,
2, 8, 13, 13, 11, 3, 3, 2, 2, 9, 11, 2, 4, 3, 9, 13, 12, 2,
2, 7, 13, 14, 12, 3, 3 },
{ 3, 1, 9, 16, 13, 13, 13, 13, 13, 11, 3, 3, 2, 2, 3, 9, 13, 13,
16, 11, 9, 13, 13, 13, 11, 2, 2, 9, 13, 13, 11, 10, 9, 15,
14, 12, 3, 3, 9, 13, 14, 11, 2, 1 },
{ 1, 8, 13, 13, 13, 13, 13, 13, 14, 13, 11, 10, 10, 10, 9, 13, 13,
13, 13, 13, 13, 14, 14, 14, 13, 11, 10, 14, 14, 14, 14, 16,
14, 14, 14, 11, 10, 10, 14, 14, 14, 14, 12, 1 },
{ 3, 8, 13, 13, 13, 13, 13, 13, 14, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 5, 7, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 5, 2, 1 },
{ 1, 1, 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 5, 7, 14, 14, 14, 14, 14, 14, 11, 9, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 5, 2, 2, 1 },
{ 1, 2, 2, 7, 13, 13, 13, 5, 6, 7, 13, 13, 13, 13, 13, 13, 13, 13,
13, 5, 2, 2, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 12, 2, 2, 2 },
{ 2, 2, 4, 4, 7, 13, 13, 12, 3, 9, 13, 13, 13, 13, 13, 13, 13, 13,
5, 2, 3, 2, 2, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 11, 2, 2, 2 },
{ 2, 4, 2, 2, 8, 13, 13, 11, 9, 13, 13, 13, 13, 13, 13, 13, 13, 13,
11, 2, 3, 3, 2, 9, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 11, 2, 3 },
{ 3, 4, 2, 2, 9, 13, 13, 13, 13, 13, 13, 5, 6, 7, 13, 13, 13, 13,
13, 11, 2, 2, 9, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 16, 12, 3 },
{ 2, 2, 2, 9, 13, 13, 13, 13, 13, 13, 13, 11, 3, 8, 13, 13, 13, 13,
13, 13, 11, 9, 14, 14, 14, 14, 14, 14, 14, 14, 14, 5, 6, 6,
7, 14, 14, 14, 14, 14, 14, 13, 12, 3 },
{ 2, 2, 9, 16, 13, 13, 13, 13, 13, 13, 13, 13, 11, 10, 13, 13, 13,
13, 13, 13, 13, 13, 13, 14, 14, 14, 5, 6, 7, 14, 5, 2, 2,
2, 2, 7, 14, 14, 5, 7, 13, 13, 12, 1 },
{ 2, 2, 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 14, 14, 14, 11, 10, 10, 14, 12, 2,
3, 3, 2, 8, 14, 14, 12, 8, 13, 13, 12, 1 },
{ 3, 2, 8, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 11, 3,
3, 3, 2, 9, 14, 14, 11, 9, 14, 13, 11, 3 },
{ 3, 2, 9, 13, 13, 13, 13, 13, 13, 13, 13, 13, 5, 6, 6, 6, 7, 13,
13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 11, 2,
2, 9, 14, 14, 14, 14, 14, 14, 13, 5, 3 },
{ 2, 8, 13, 13, 13, 13, 13, 13, 13, 13, 13, 5, 1, 2, 1, 3, 3, 7,
13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 13, 12, 2 },
{ 2, 8, 13, 13, 13, 13, 13, 13, 13, 13, 13, 11, 2, 2, 2, 2, 1, 8,
13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 13, 11, 2 },
{ 1, 8, 13, 13, 5, 7, 13, 13, 13, 13, 13, 13, 12, 3, 3, 3, 1, 10,
13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 13, 15, 11 },
{ 2, 8, 13, 13, 11, 9, 13, 13, 13, 13, 13, 13, 12, 2, 2, 10, 10,
13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 15, 15 },
{ 2, 8, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 11, 10, 9, 16, 13,
13, 13, 13, 13, 13, 13, 5, 7, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 5, 7, 14, 14, 14, 13, 15, 15 },
{ 2, 8, 13, 13, 13, 13, 13, 5, 6, 7, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 11, 9, 14, 14, 14, 5, 7, 14, 14,
14, 14, 14, 5, 4, 2, 7, 14, 14, 13, 15, 15 },
{ 2, 8, 13, 13, 13, 13, 13, 12, 2, 8, 13, 13, 13, 13, 13, 13, 13,
13, 5, 6, 6, 7, 13, 13, 13, 14, 14, 14, 11, 4, 7, 14, 14,
14, 14, 11, 10, 10, 9, 14, 14, 13, 15, 13 },
{ 1, 8, 13, 13, 13, 13, 13, 12, 2, 8, 13, 13, 13, 13, 13, 13, 13,
5, 2, 2, 2, 3, 7, 13, 13, 14, 14, 14, 14, 11, 2, 7, 14, 14,
14, 14, 13, 13, 14, 14, 14, 13, 5, 6 },
{ 1, 2, 7, 13, 13, 16, 5, 1, 2, 1, 7, 13, 13, 13, 13, 13, 5, 2, 2,
2, 3, 2, 2, 7, 13, 13, 13, 13, 16, 5, 2, 2, 7, 13, 13, 13,
13, 13, 13, 13, 13, 5, 4, 1 },
{ 1, 2, 2, 6, 6, 6, 1, 1, 1, 1, 1, 6, 7, 13, 13, 5, 2, 2, 3, 2, 2,
2, 2, 2, 6, 6, 6, 6, 6, 2, 2, 2, 2, 6, 6, 7, 13, 13, 5, 6,
6, 2, 2, 4 },
{ 1, 1, 1, 1, 2, 3, 3, 1, 1, 3, 3, 2, 8, 13, 13, 12, 3, 3, 2, 3, 2,
2, 3, 3, 3, 2, 2, 2, 3, 3, 2, 2, 1, 1, 1, 3, 6, 6, 4, 2, 2,
1, 4, 1 } };
/** 第一关隐藏地图 */
int map_1[][] = { { 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1 },
{ 1, 3, 1, 3, 1, 1, 9, 11, 10, 1, 1 },
{ 3, 1, 1, 1, 1, 10, 13, 13, 13, 11, 3 },
{ 1, 3, 1, 9, 14, 13, 13, 13, 13, 13, 12 },
{ 1, 1, 9, 13, 13, 13, 13, 13, 13, 13, 12 },
{ 1, 9, 13, 13, 13, 13, 13, 13, 5, 6, 3 },
{ 8, 13, 13, 13, 13, 13, 13, 13, 12, 3, 3 },
{ 8, 13, 13, 13, 13, 13, 13, 13, 12, 3, 3 },
{ 3, 7, 13, 13, 13, 13, 13, 13, 12, 1, 1 },
{ 3, 8, 13, 13, 13, 13, 13, 13, 12, 1, 1 },
{ 3, 9, 13, 13, 13, 13, 13, 5, 3, 1, 1 },
{ 8, 13, 13, 13, 13, 13, 5, 1, 1, 1, 3 },
{ 8, 13, 13, 13, 13, 5, 1, 3, 3, 3, 1 } };
/** 第二关隐藏地图 */
int map_2[][] = { { 1, 3, 1, 1, 8, 13, 13, 13, 11, 1, 3 },
{ 1, 2, 1, 1, 9, 13, 13, 15, 15, 12, 2 },
{ 4, 1, 4, 9, 13, 13, 13, 15, 5, 2, 1 },
{ 1, 3, 9, 15, 15, 13, 13, 15, 12, 2, 1 },
{ 1, 8, 13, 13, 13, 13, 13, 13, 12, 1, 1 },
{ 1, 8, 13, 13, 13, 15, 13, 13, 12, 3, 3 },
{ 2, 8, 13, 13, 13, 13, 13, 13, 12, 1, 3 },
{ 3, 8, 13, 13, 13, 13, 13, 13, 11, 1, 3 },
{ 2, 8, 13, 13, 13, 13, 13, 13, 13, 11, 1 },
{ 3, 8, 13, 13, 13, 13, 13, 13, 13, 13, 12 },
{ 2, 8, 13, 13, 13, 13, 13, 13, 13, 13, 12 },
{ 3, 8, 13, 13, 13, 13, 13, 13, 13, 5, 2 },
{ 1, 6, 6, 6, 6, 6, 6, 6, 6, 1, 3 } };
/** 第三关隐藏地图 */
int map_3[][] = { { 1, 1, 3, 1, 2, 2, 4, 4, 1, 1, 1 },
{ 1, 2, 2, 2, 10, 10, 10, 10, 12, 1, 1 },
{ 3, 2, 2, 9, 15, 15, 15, 13, 11, 1, 1 },
{ 1, 10, 9, 15, 15, 15, 13, 13, 13, 12, 1 },
{ 8, 15, 15, 15, 15, 15, 13, 13, 13, 12, 1 },
{ 8, 15, 15, 15, 15, 15, 13, 15, 15, 12, 3 },
{ 2, 7, 15, 15, 15, 15, 13, 15, 15, 12, 3 },
{ 2, 8, 15, 15, 15, 15, 13, 15, 15, 12, 3 },
{ 2, 8, 15, 15, 15, 15, 15, 13, 15, 12, 1 },
{ 2, 8, 15, 15, 15, 15, 15, 15, 15, 12, 1 },
{ 2, 8, 15, 15, 15, 15, 15, 15, 5, 1, 1 },
{ 2, 8, 15, 15, 13, 15, 15, 5, 3, 1, 3 },
{ 2, 9, 15, 13, 13, 5, 6, 6, 3, 3, 1 } };
/** 第四关隐藏地图 */
int map_4[][] = { { 8, 11, 10, 11, 10, 11, 10, 11, 1, 1, 1 },
{ 8, 13, 13, 13, 13, 15, 15, 13, 12, 1, 1 },
{ 3, 7, 14, 13, 15, 15, 15, 13, 11, 1, 1 },
{ 1, 8, 14, 15, 15, 13, 13, 13, 13, 12, 1 },
{ 1, 9, 14, 14, 15, 13, 13, 13, 13, 12, 1 },
{ 8, 13, 14, 13, 13, 15, 13, 13, 5, 2, 3 },
{ 8, 14, 13, 13, 5, 7, 13, 13, 12, 3, 3 },
{ 8, 14, 13, 13, 12, 8, 13, 13, 12, 3, 3 },
{ 8, 14, 13, 13, 11, 9, 13, 13, 12, 1, 1 },
{ 2, 7, 13, 13, 13, 13, 13, 13, 12, 1, 1 },
{ 2, 2, 7, 14, 13, 13, 13, 5, 1, 1, 1 },
{ 4, 4, 8, 14, 13, 15, 5, 1, 4, 1, 3 },
{ 2, 2, 9, 13, 15, 5, 1, 4, 4, 4, 1 } };
/** 第五关隐藏地图 */
int map_5[][] = { { 1, 3, 1, 1, 3, 1, 1, 9, 11, 1, 3 },
{ 11, 10, 10, 11, 9, 11, 9, 15, 15, 12, 2 },
{ 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 1 },
{ 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 1 },
{ 15, 13, 13, 13, 13, 13, 13, 13, 5, 1, 1 },
{ 7, 15, 13, 13, 13, 13, 13, 13, 12, 3, 3 },
{ 2, 7, 13, 13, 13, 13, 13, 13, 12, 1, 3 },
{ 3, 8, 13, 13, 13, 13, 13, 13, 11, 1, 3 },
{ 2, 8, 13, 13, 13, 13, 13, 13, 13, 11, 1 },
{ 3, 8, 13, 13, 13, 13, 13, 13, 13, 13, 12 },
{ 2, 8, 13, 13, 13, 13, 13, 13, 13, 13, 12 },
{ 3, 8, 13, 13, 5, 6, 7, 13, 13, 5, 2 },
{ 1, 1, 7, 5, 2, 3, 2, 6, 6, 3, 3 } };
/** 第六关隐藏地图 */
// int map_6[][] = { { 1, 1, 1, 4, 8, 13, 13, 13, 12, 3, 1 },
// { 1, 1, 1, 1, 8, 13, 13, 13, 12, 3, 1 },
// { 1, 1, 1, 4, 8, 13, 13, 13, 12, 1, 1 },
// { 1, 1, 3, 3, 9, 13, 13, 13, 12, 3, 3 },
// { 1, 1, 3, 9, 13, 13, 13, 5, 2, 2, 2 },
// { 1, 3, 9, 13, 13, 13, 5, 2, 2, 3, 2 },
// { 3, 8, 13, 13, 13, 13, 12, 2, 3, 3, 3 },
// { 1, 8, 13, 13, 13, 13, 12, 3, 2, 3, 2 },
// { 1, 8, 13, 13, 13, 13, 11, 2, 2, 3, 3 },
// { 3, 8, 13, 13, 13, 13, 13, 12, 2, 2, 3 },
// { 2, 2, 6, 7, 15, 13, 13, 12, 2, 2, 2 },
// { 3, 3, 2, 2, 2, 6, 6, 4, 2, 2, 1 },
// { 2, 3, 2, 2, 3, 3, 3, 2, 2, 1, 1 } };
/** 运行中菜单起始x,y位置 */
int runningMenuX = 49;
int runningMenuY = 56;
/** 当前运行菜单选项0表示继续游戏,1表示查看属性,2表示查看当前任务,3表示修理船只,4表示退出游戏 */
int runningMenuSelect;
/** 提示框图片 */
Image cueImage;
/** 任务内容 */
String[] task = new String[40];
/** 任务提示信息 */
String[] taskCue = new String[40];
/** 字体 */
Font f;
/** 提示框绘制y坐标 */
int cy;
/** 修理费用 */
int repairCharge;
/** 是否海上修理 */
boolean isSeaRepair;
/** 是否修理选项标记 */
int repairLabel;
/** 是否可以修理true为可以 */
boolean canRepair;
/** 选择框x坐标 */
int choosex = 2;
/** 选择框y坐标 */
int choosey = 2;
/** 交易升级图片 */
Image buy;
/** 对话图片 */
Image speak;
/** 键值 */
int action;
/** 保存界面坐标x标签 */
int sx;
int buychoosex;
/** 交易升级界面选择框Y坐标 */
int buychoosey = -1;
/** 提示的对话 */
String dm;
/** 状态ture为调试状态,false为正常状态 */
boolean debug = true;
/**
* 跑商任务runShangTask[0]为跑商状态0为无跑商任务状态, 1为有跑商任务状态,runShangTask[1]为对应提示信息下标,
* runShangTask[2]目的地港口,runShangTask[3]任务等级
*/
private int runShangTask[] = new int[4];
/**
* 主线任务进度,共5个主线任务,当mainTask[0]表示当前任务进度,mainTask[1]表示当前任务状态,
* 当mainTask[1]为0时,表示当前任务处于未触发状态,为1时表示当前任务处于触发状态,为2时,表示当前任务处于完成状态,
* 为5时,表示当前任务结束状态,(mainTask[0]++,mainTask[1] = 0);
*/
private int mainTask[] = new int[2];
/** 任务提示信息 */
private String[] mainTaskCue = new String[5];
/** 任务信息 */
private String[] mainTaskInfo = new String[23];
/** 升级需要金钱数量 */
int[][] Money = {
{ 0, 1000, 1200, 1500, 1800, 2200, 2600, 3000, 3500, 4000, 5000 },
{ 0, 1000, 1200, 1500, 1800, 2200, 2600, 3000, 3500, 4000, 5000 },
{ 0, 800, 1000, 1200, 1400, 1600, 1800, 2000, 2200, 2400, 3000,
3500 },
{ 0, 800, 1000, 1200, 1400, 1600, 1800, 2000, 2200, 2400, 3000,
3500 } };
int lvMoney[] = { 0, 10000, 15000, 20000, 25000, 30000, 35000, 40000,
45000, 50000, 60000 };
/** 记录当前升级需要的钱 */
int[] moenyindex = { 1, 1, 1, 1 };
/** 升级上限 */
int[] acMax = { 0, 10, 15, 20, 25, 30, 35, 45, 50, 55, 60 };
int[] dcMax = { 0, 10, 15, 20, 25, 30, 35, 45, 50, 55, 80 };
int[] hpMax = { 0, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200 };
/** 需要声望 */
int[] lvSound = { 0, 0, 200, 350, 350, 550, 800, 1100, 1500, 2100, 2600,
3200 };
int[] fxMax = { 0, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120 };
/** 选择攻击的提示框的标签,0为石弹攻击,1为铅弹攻击,2为铁弹攻击,3为火弹攻击 */
int acttckLable;
int acttcky = 163;
int LvOgre;
/** 主线任务中选择框X和Y坐标 */
int DialoChoosex;
int DialoChoosey = 1;
/** 船体属性图片 */
Image property;
/** 港口名称 */
String portName[] = { "", "爱丁堡", "斯里兰斯", "亚特兰帝斯", "卡利核特", "索各得拉", "马加撒",
"那霸", "得尔那特" };
/** 字体高度 */
int strHeight;
/** 字体宽度 */
int strWidth;
/** 是和否按钮图标 */
Image yes;
Image no;
/** 当前地图0为主地图 */
int mapIndex;
/** 进入隐藏地图后暂存主地图中船体x,y坐标 */
int x2, y2;
/** 是否绘制任务提示,进入界面时绘制 */
boolean draw = true;
/** 港口NPC头像 */
Image npcHead;
/** 当前港口序号一号港口序号为1 */
int portIndex = 1;
/** 剧情文字折行存储数组 */
String gutTemp[];
/** 主线任务提示信息折行数组 */
String mainTaskCueTemp[];
/** 跑商奖励金钱 */
int runShangMoney;
/** 跑商奖励声望 */
int runShangCredit;
/** 港口任务头像图片x 10坐标 */
int headX = 10;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -