📄 canvasflowers.java
字号:
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.TiledLayer;
public class CanvasFlowers extends GameCanvas implements Runnable{
private Graphics g;
public TiledLayer layer_back, layer_hua, layer_mogu;
private LayerManager layermanager;
public int columns, rows, d;
private Player player;
private Apple apple;
private Flowers chirenflowers;
protected CanvasFlowers(boolean arg0) {
super(arg0);
player = new Player();
apple = new Apple();
chirenflowers = new Flowers();
g = this.getGraphics();
columns = 17;
rows = 12;
d = 16;
layer_back = new TiledLayer(columns, rows, ImageAll.img_back, d, d);
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
layer_back.setCell(j, i, Map.map_back[i][j]);
}
}
layer_hua = new TiledLayer(columns, rows, ImageAll.img_huachao, d, d);
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
layer_hua.setCell(j, i, Map.map_hua[i][j]);
}
}
layer_mogu = new TiledLayer(columns, rows, ImageAll.img_huachao, d, d);
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
layer_mogu.setCell(j, i, Map.map_mogu[i][j]);
}
}
layermanager = new LayerManager();
layermanager.append(layer_back);
layermanager.append(layer_hua);
layermanager.append(layer_mogu);
player.setPosition(32, 80);
layermanager.append(player);
apple.setPosition(172, 112);
layermanager.append(apple);
chirenflowers.setPosition(128, 96);
layermanager.append(chirenflowers);
new Thread(this).start();
}
public void goP()
{
int k = this.getKeyStates();
if((k&this.UP_PRESSED) != 0){
player.moveP(0);
player.stopPlayer(layer_back, chirenflowers);
if(player.collidesWith(layer_hua, false))
eatUpHua();
tuiApple(0);
}
if((k&this.DOWN_PRESSED) != 0){
player.moveP(1);
player.stopPlayer(layer_back, chirenflowers);
if(player.collidesWith(layer_hua, false))
eatDownHua();
tuiApple(1);
}
if((k&this.LEFT_PRESSED) != 0){
player.moveP(2);
player.stopPlayer(layer_back, chirenflowers);
if(player.collidesWith(layer_hua, false))
eatLiftHua();
tuiApple(2);
}
if((k&this.RIGHT_PRESSED) != 0){
player.moveP(3);
player.stopPlayer(layer_back, chirenflowers);
if(player.collidesWith(layer_hua, false))
eatRightHua();
tuiApple(3);
}
chirenflowers.kaiHuaZhenTing(player);
chirenflowers.chiRenZhenTing(player);
}
public void clearThis()//清屏幕
{
g.setColor(0xffffff);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
}
public void run() {//线程
while(true)
{
clearThis();
goP();
chirenflowers.kaiHua();
chirenflowers.chiRen();
chiRen();
layermanager.paint(g, 0, 0);
this.flushGraphics();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void chiRen()
{
if(chirenflowers.getIsChiRen() == true)
player.setPosition(-50, -50);
}
//推苹果
public void tuiApple(int i)
{
if(player.collidesWith(apple, false))
apple.moveApple(i);
if(apple.collidesWith(layer_back, false) || apple.collidesWith(layer_hua, false) || apple.collidesWith(chirenflowers, false)){
apple.stopApple(i);
player.moveStop();
}
}
//向上吃花
public void eatUpHua()
{
int px = player.getX();
int py = player.getY();
int hx = px/16;
int hy = py/16;
layer_hua.setCell(hx, hy, 0);
}
// 向下吃花
public void eatDownHua()
{
int px = player.getX();
int py = player.getY();
int hx = px/16;
int hy = py/16 + 1;
layer_hua.setCell(hx, hy, 0);
}
// 向左吃花
public void eatLiftHua()
{
int px = player.getX();
int py = player.getY();
int hx = px/16;
int hy = py/16;
layer_hua.setCell(hx, hy, 0);
}
// 向右吃花
public void eatRightHua()
{
int px = player.getX();
int py = player.getY();
int hx = px/16 + 1;
int hy = py/16;
layer_hua.setCell(hx, hy, 0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -