📄 testp.java.bak
字号:
import javax.microedition.midlet.MIDlet;
import java.io.*;
import java.util.Random;
import java.util.Vector;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
public class testP extends MIDlet {
PlayerCanvas test;
public testP() {
// TODO Auto-generated constructor stub
test = new PlayerCanvas();
Display.getDisplay(this).setCurrent(test);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
}
class PlayerCanvas extends Canvas implements Runnable{
Player one,two;
StreamConnection sc;
Vector vc1;
Random rnd= new Random();
public MIDlet tempMIDlet;
public HttpConnection httpconnect;
public Player player;
public static final int UP_D = 2;
public static final int DOWN_D = 8;
public static final int LEFT_D = 4;
public static final int RIGHT_D = 6;
short test_map0[]=new short[400];
public Image image1, BuffImage, BufferImage2;
public Thread thread;
public InputStream is;
public Image tempImage[];
public boolean keypress2, keypress3,keypress4,keypress5;
public int player_x, view_x, buffer_x,player_y;
int imagex,imagey,tilex,tiley,bufferx,buffery,offsetx,offsety,directx,directy;
Monster testMonster;
Vector Mons = new Vector();
public byte tempindex[] = new byte[50];
int collsionLayer[] = {165};
public PlayerCanvas(){
keypress2 = keypress3 = false;
player_x = view_x = 0;
// testMonster = new Monster(20, 30,11,"Bird",getWidth(),getHeight());
// tempMIDlet = a;
try {
InputStream is = this.getClass().getResourceAsStream("/map.bin");
DataInputStream dis = new DataInputStream(is);
System.out.println("test.........");
int temp2 = is.available();
System.out.println("test.........");
for(int i=0;i<temp2/2;i++)
test_map0[i] = dis.readShort();
System.out.println("test.........");
dis.close();
is.close();
System.out.println("test.........");
BuffImage = Image.createImage(16 * 20, 16*20);
BufferImage2 = Image.createImage(getWidth() + 16, 16);
System.out.println("test.........");
MapCellConstruct("/map2.png", 480, 256, 16, 16);
System.out.println("test.........");
} catch (Exception e) {
}
finally {
}
for (int i = 0; i < 20; i++) {
for(int j=0; j< 20; j++)
BuffImage.getGraphics().drawImage(tempImage[test_map0[j*20+i]-1], i * 16, j*16, 20);
}
one = new Player("a"+rnd.nextInt());
vc1 = new Vector();
vc1.addElement(one);
//two = new Player(null);
try {
sc = (StreamConnection)Connector.open("socket://127.0.0.1:9999");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
new ConnecttoS(one,vc1,sc,Mons).start();
new Thread(this).start();
}
public int collsionWithLayer(int iDir,int iPositionx,int iPositiony,int offset,int spritewidth,int spriteheight,
int frameWidth,int frameHeight,int mapWidth,int mapHeight,int colums,int rows){
switch(iDir){
case RIGHT_D:
iPositionx += offset;
if(iPositionx >= mapWidth - spritewidth){
iPositionx = mapWidth - spritewidth-offset;
}
for(int i = iPositiony/frameHeight; i<=(iPositiony+spriteheight)/frameHeight;i++){
if(tools.ArraySearch(test_map0[(i*colums+(iPositionx+spritewidth)/frameWidth)],collsionLayer)){
iPositionx = (iPositionx+spritewidth)/frameWidth*frameWidth-spritewidth;
// System.out.println("collstion true "+offset);
}
}
if(iPositionx >= mapWidth - spritewidth){
iPositionx = mapWidth - spritewidth-offset;
}
return iPositionx;
case LEFT_D:
iPositionx -= offset;
if(iPositionx < 0){
iPositionx = 0;
}
for(int i = iPositiony/frameHeight; i<=(iPositiony+spriteheight)/frameHeight;i++){
if(tools.ArraySearch(test_map0[(i*colums+(iPositionx)/frameWidth)],collsionLayer)){
iPositionx = (iPositionx)/frameWidth*frameWidth+spritewidth;
}
}
return iPositionx;
case DOWN_D:
iPositiony += offset;
if(iPositiony >= mapHeight - spriteheight){
iPositiony = mapHeight -spriteheight-offset;
}
for(int i = iPositionx/frameWidth; i<=(iPositionx+spritewidth)/frameWidth;i++){
if(tools.ArraySearch(test_map0[((iPositiony+spriteheight)/frameHeight*colums+i)],collsionLayer)){
iPositiony = (iPositiony+spriteheight)/frameHeight*frameHeight - spriteheight ;
// System.out.println("collstion true "+offset);
}
}
return iPositiony;
case UP_D:
if(iPositiony >= offset)
iPositiony-= offset;
for(int i = iPositionx/frameWidth; i<=(iPositionx+spritewidth)/frameWidth;i++){
if(tools.ArraySearch(test_map0[((iPositiony)/frameHeight*colums+i)],collsionLayer)){
iPositiony= (iPositiony)/frameHeight*frameHeight+ spriteheight;
// System.out.println("collstion true "+offset);
}
}
return iPositiony;
}
return -1;
}
public void movemap(){
if(player_x > getWidth()/2 && player_x < BuffImage.getWidth() - getWidth()/2){
bufferx = getWidth()/2 - player_x;
}
if(player_y > getHeight()/2 && player_y < BuffImage.getHeight() - getHeight()/2){
buffery = getHeight()/2 - player_y;
}
}
void MapCellConstruct(String mapFilePath, int mapImageWidth, int mapImageHigth, int CellW, int CellH) {
tempImage = new Image[(mapImageWidth * mapImageHigth) / (CellW * CellH)];
try {
Image mapImage = Image.createImage(mapFilePath);
for (int i = 0; i < mapImageWidth / CellW; i++) {
for (int j = 0; j < mapImageHigth / CellH; j++) {
tempImage[(j * mapImageWidth / CellW) + i] = Image.createImage(CellW, CellH);
tempImage[(j * mapImageWidth / CellW) + i].getGraphics().drawImage(mapImage, -i * CellW, -j * CellH, 0);
}
}
} catch (Exception e) {
}
}
public void keyPressed(int keyCode) {
if (keyCode == 54)
keypress2 = true;
else if(keyCode == 52)
keypress3 = true;
else if(keyCode == 50){
keypress4 = true;
}else if(keyCode == 56){
keypress5 = true;
}
}
public void keyReleased(int keyCode) {
if (keyCode == 54)
keypress2 = false;
else if(keyCode == 52)
keypress3 = false;
else if(keyCode == 50){
keypress4 = false;
}else if(keyCode == 56){
keypress5 = false;
}
//offset = 0;
}
public void paint(Graphics g){
g.setColor(255);
g.fillRect(0, 0, 250, 250);
g.drawImage(BuffImage, bufferx, buffery, 0);
g.setColor(255,0,0);
g.fillRect(player_x+bufferx,player_y+buffery,24,32);
for(int i=1;i<vc1.size();i++){
g.setColor(rnd.nextInt()>>>1%65535);
Player temp = (Player)vc1.elementAt(i);
if(temp.name != null)
g.drawString(temp.name,temp.x+bufferx,buffery+temp.y-8,20);
g.fillRect(temp.x+bufferx, buffery+temp.y, 16, 16);
}
for(int i=0;i<Mons.size();i++){
Monster tem = (Monster)Mons.elementAt(i);
tem.piant(g,bufferx,buffery);
}
// testMonster.piant(g);
}
public void run(){
while(true){
// testMonster.run(0,0,getWidth(),getHeight());
if (keypress2) {
player_x = collsionWithLayer(RIGHT_D,player_x,player_y,4,24,32,16,16,BuffImage.getWidth(),BuffImage.getHeight(),20,20);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -