Вниз  Java-программирование (1-ые посты)
- 17.12.2013 / 00:32
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Naik, Никак. Но ты можешь задать g.translate(dx, dy) на нужную позицию. Работает почти также.
__________________
 let live
- 17.12.2013 / 05:44
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
moDorks, вот сам класс(прикреплен в конце поста), создаешь обьект этого класса, передавая в конструктор необходимые параметры, с разницей лишь в том,что он принимает массив индексов и всю работу по заполнению карты делает за тебя, вот сам конструктор:
  Map(int cols,int rows,Image image,int tileWidth,int tileHeight,int[] indexes)-конструктор,где indexes-массив индексов.
В связи с тем что класс Map наследован от TiledLayer, то прорисовывать также через метод paint(g);
вот пример:

import java.io.*;
import javax.microedition.lcdui.*;

public class Canva extends Canvas{
private Map map; //карта
private int[] indexes={
0,0,0,0,
0,0,0,0}; //массив индексов

public Canva(){
try{
map=new Map(4,2,Image.createImage("/tiles.png"),32,32,indexes);
}catch(Exception e){}
}

public void paint(Graphics g){
map.paint(g);
repaint();
}

}

Изменено samodelkin (17.12 / 05:49) (всего 4 раза)


Прикрепленные файлы:
Map.java (0.97 кб.) Скачано 568 раз
- 17.12.2013 / 05:59
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Naik, первоначально любой спрайт имеет опорный пиксель в левом верхнем углу, чтобы изменить опорный пиксель существует метод defineReferencePixel(x,y) ,который позволяет определить опорный пиксель даже за границами слоя.

Изменено samodelkin (17.12 / 06:02) (всего 2 раза)
- 17.12.2013 / 09:20
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Скажите в чем причина того что неверно сохраняет метод "савеРекорд":


import javax.microedition.lcdui.*;
import java.io.*;
import javax.microedition.rms.*;
import java.util.Calendar;

public class RecordCanvas extends Canvas{
private RecordStore rs;
private Image table;
     public RecordCanvas(){
     rs=null;
     try{
     table=Image.createImage("/table.png");
     }catch(Exception e){}
     }
    
     public void play(Display d){
      d.setCurrent(this);
     }
    
     public void paint(Graphics g){
     g.drawImage(table,0,0,20);
     g.setColor(0, 0, 0);
     g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL));
     g.drawString("Последний рекорд", 40, 20, 20);
     if (this.getRecord()>0) g.drawString(this.getDateRecord()+" набрано "+this.getRecord()+" очков",50,35,20);
     repaint();
     }
    
     public void keyPressed(int keyCode){
     Main.link.menuCanvas.play(Main.link.d);
     }
    
    
     public void saveRecord(int score){
     try{
     rs=RecordStore.openRecordStore("records", true);
     if (rs.getNumRecords()==2){
     rs.deleteRecord(1);
     rs.deleteRecord(2);
     }
     rs.addRecord(this.getDate().getBytes(),0,this.getDate().getBytes().length); //первая запись хранит дату и время
     rs.addRecord(Integer.toString(score).getBytes(),0,Integer.toString(score).getBytes().length); //вторая запись хранит рекорд
     rs.closeRecordStore();
     }catch(Exception e){}
     }
    
     public int getRecord(){
     int record=0;
     try{
     rs=RecordStore.openRecordStore("records", true);
     record=Integer.parseInt(new String(rs.getRecord(2)));
     rs.closeRecordStore();
     }catch(Exception e){}
     return record;
     }
    
     public String getDateRecord(){
     String date="";
     try{
     rs=RecordStore.openRecordStore("records", true);
     date=new String(rs.getRecord(1));
     rs.closeRecordStore();
     }catch(Exception e){}
     return date;
     }
    
     //получить время и дату
     private String getDate(){
     Calendar c=Calendar.getInstance();
     String date=""+c.get(Calendar.HOUR)+":"+c.get(Calendar.MINUTE)+","+c.get(Calendar.DAY_OF_MONTH)+"."+c.get(Calendar.MONTH)+"."+c.get(Calendar.YEAR);
     return date;
     }
    
}
- 17.12.2013 / 10:29
Naik
  Пользователь

Naik 
Сейчас: Offline
aNNiMON, samodelkin (17.12.2013/05:59)Naik, первоначально любой спрайт имеет опорный пиксель в левом верхнем углу, чтобы изменить опорный пиксель существует метод defineReferencePixel(x,y) ,который позволяет определить опорный пиксель дада все работает через defineReferencePixel(x,y) это либа на андроид неправильная :gg:
- 17.12.2013 / 10:31
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Naik, а на андроиде разве есть либы?
- 17.12.2013 / 10:37
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Вспомнил, есть, но все-равно я никогда больше не перейду с j2me, мне достаточно летающей пшеницы.
- 17.12.2013 / 10:39
Naik
  Пользователь

Naik 
Сейчас: Offline
samodelkin, я в AIDE пишу для J2ME с пом. либы AndroidMIDPShell иногда.
- 17.12.2013 / 10:58
Its_Your_Soul
  Пользователь

Its_Your_Soul 
Сейчас: Offline
Naik, Какое извращение :gy:
- 17.12.2013 / 14:10
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Naik (17.12.2013/10:39)samodelkin, я в AIDE пишу для J2ME с пом. либы AndroidMIDPShell иногда.Я бы не ушел с андроида, если не летающая пшеница, мне она все желание испортила, не думал что андроид так подведет.
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)