📄 snow.java
字号:
package game;
import javax.microedition.lcdui.Graphics;
import util.MathTool;
import java.util.Random;
import util.GraphicsTool;
//风的效果
//风对雪花的影响
public class Snow {
private int iGameWidth = 0;
private int iGameHeight = 0;
private int iTimes = 0;
private int winddirect = 0; //风向
private int downspeed = 0;
private int SnowNum = 0;
private int[] snowX = null;
private int[] snowY = null;
private int[] snowR = null;
private final int ChangeDirectTime = 500;
private final int STARTPOSITION = -30;
public Snow(int sw, int sh) {
setSnowScrenn(sw, sh);
downspeed = sh / 100;
SnowNum = sw * sh / 256;
snowX = new int[SnowNum];
snowY = new int[SnowNum];
snowR = new int[SnowNum];
for (int i = 0; i < SnowNum; i++) {
reset(i);
}
}
public void setSnowScrenn(int sw, int sh) {
iGameWidth = sw;
iGameHeight = sh;
}
public void draw(Graphics g) {
int clipx = g.getClipX();
int clipy = g.getClipY();
int clipwidth = g.getClipWidth();
int clipheight = g.getClipHeight();
// g.setColor(0xffffff);
for (int i = 0; i < SnowNum; i++) {
GraphicsTool.FillRect(g, 0xffffff, snowX[i], snowY[i], snowR[i], snowR[i]);
// g.fillArc(snowX[i], snowY[i], snowR[i], snowR[i], 0, 360);
}
GraphicsTool.ClipArea(g, clipx, clipy, clipwidth, clipheight);
}
public void update() {
iTimes++;
if (iTimes % ChangeDirectTime == 0) {
winddirect = MathTool.GetRandomNum(0, 2);
}
snowMove();
}
private void snowMove() {
for (int i = 0; i < SnowNum; i++) {
switch (winddirect) {
case 0:
snowX[i] += MathTool.GetRandomNum(-1, 4);
break;
case 1:
snowX[i] -= MathTool.GetRandomNum(-1, 4);
break;
case 2:
snowX[i] -= MathTool.GetRandomNum(-2, 2);
break;
}
snowY[i] += downspeed;
if (snowX[i] < STARTPOSITION || snowX[i] > iGameWidth + 10 ||
snowY[i] > iGameHeight + 5) {
reset(i);
}
}
}
private void reset(int id) {
snowX[id] = MathTool.GetRandomNum(STARTPOSITION, iGameWidth);
snowY[id] = MathTool.GetRandomNum(STARTPOSITION, iGameHeight);
snowR[id] = MathTool.GetRandomNum(1, 4);
}
public void destroy() {
snowX = null;
snowY = null;
snowR = null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -