ايران ويج

نسخه‌ی کامل: اشکال در لودImage
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4
نه اولین برنامه sprite که توی شروع game گفته شده را می گم. برنامه عین کتابه ولی sprite ها رو نش.ن نمیده. میشه شما هم یه امتحان بکنید؟
الان که کتاب پیشم نیست
کد ها رو هم باید توی پروژه بهم بدی یه پروزه ساختم اینا رو سر هم کردم بعد دیدم دو تا فایل کنار هم کد هاشو گذاشتی
اگه خواستی کل پروزه رو با عکسش بده ببینم مشکل کجاست اینجوری کلی باید عکس بسازم و ... ولی اونجوری سریع تر می شه جواب داد
اولی کد وربوط به میدلت اصلی و کد game canvas دومی هست :



[/code]
کد:
* mainlMidlet.java
*
* Created on August 26, 2007, 11:44 AM
*/

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
*
* @author Leila
*/
public class mainlMidlet extends MIDlet {
    private Display display;
    private ExampleGameCanvas gameCanvas;
    
    /** Creates a new instance of mainlMidlet */
    public mainlMidlet() {
        
    }
    
// --- This section is auto-generated by NetBeans IDE. Do not modify or you may lose your changes.//<editor-fold id="MVDMethods" defaultstate="collapsed" desc="This section is auto-generated by NetBeans IDE.">                      
    /**
     * This method initializes UI of the application.
     */
    private void initialize() {
    }
    
// --- This is the end of auto-generated section.//</editor-fold>                    
    
    public void startApp() {
        try{
          
            display=Display.getDisplay();
            gameCanvas =new  ExampleGameCanvas();
            gameCanvas.start();
            display.setCurrent(gameCanvas);
        }
        catch(Exception ex){
            System.out.println(ex);
        }
    }
    
    public void pauseApp() {
    }
    public Display getDisplay(){
        return display;
    }
    public void destroyApp(boolean unconditional) {
        notifyDestroyed();
    }
  
********************************************************
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;

/**
*
* @author Leila
*/
  public class ExampleGameCanvas extends GameCanvas implements Runnable {

    private boolean isPlay;
    private long delay;
    private int currentX,currentY;
    private int width,height;
    private Sprite sprite;
    private Sprite tempsprite;
    Image image;
    public ExampleGameCanvas(mainlMidlet main) throws Exception {
        super(true);
        
        width=getWidth();
        height=getHeight();
        currentX=width/2;
        currentY=height/2;
        delay=20;
        //Load Images to sprite
        
        image=Image.createImage("/1.PNG" );
        Image temp=Image.createImage("/2.PNG");
        sprite=new Sprite(image, 32, 32);
        tempsprite=new Sprite(temp,32, 32);
    }
    //Automatically start thread for game loop
    public void start(){
        isPlay=true;
        Thread  t = new Thread(this);
        t.start();
    }
    public void stop(){
        isPlay=false;
    }
    public void run(){
        Graphics g=getGraphics();
        while(isPlay==true){
            input();
            drawScreen(g);
            try{
                Thread.sleep(delay);
            }
            catch(InterruptedException ie){}
        }
    }
    private void input(){
        int keyState=getKeyStates();
        sprite.setFrame(0);
        if((keyState & LEFT_PRESSED)!=0){
             currentX=Math.max(0,currentX-1);
             sprite.setFrame(1);
        }
         //right
         if((keyState & RIGHT_PRESSED)!=0)
             if(currentX+14<width){
                currentX=Math.min(width,currentX+1);
                sprite.setFrame(3);
         }
         //up
         if((keyState & UP_PRESSED)!=0){
             currentY=Math.max(0,currentY-1);
             sprite.setFrame(2);
         }
         //down
         if((keyState & DOWN_PRESSED)!=0)
             if(currentY+14<height){
                currentY=Math.min(height,currentY+1);
                sprite.setFrame(4);
             }
    }
    
    private void drawScreen(Graphics g){
         g.setColor(255, 0, 0);
         g.fillRect(0,0, getWidth(), getHeight());
         g.setColor(0,0, 255);
         //display sprites
         sprite.setPosition(currentX, currentY);
         sprite.setFrame(0);
         sprite.setVisible(true);
         sprite.paint(g);
         tempsprite.paint(g);
         flushGraphics();
    }
}

عکسا رو هم به میلتون میفرستم.
<ha_60@yahoo.com>
میشه بگید این ارور مال چیه؟
Application descriptor does not declare any MIDlet. Direct execution is not allowed.
یه چنین چیزی یادت رفته تعریف کنی

کد:
public class mainlMidlet extends MIDlet {
می گه میدلت اصلی نداری
جواب سوال قبلیم را ندادید. Sprite رو نمی تونم نشون بدم
برنامه رو براتون گذاشتم عکس رو هم به میلتون فرستادم.
ببین سورس رو کپی می کنی اینجا فایده نداره فولدر رو باید کولش رو زیپ کنی یه جا آپ لود کنی نه این که بچسبونی به هم من دوباره پروزه تعریف کنم این کد ها رو تیکه تیکه بجشبونم توش
مشکلت توی سایز عکس هاست باید همونی باشه که توی برنامه نوشتی 32*32 نه 40*40
دفعه بعد هم کل فولدر برنامه رو بفرست
کل فایل رو براتون فرستادم.
http://www.iranled.com/Download/sprite2.rar
اولا سایز عکس درست نبود
کد:
sprite=new Sprite(image, 32, 54);
        tempsprite=new Sprite(temp,40, 40);
ثانیا لایر منیجر رو تا وقتی یه شئی ازش نسازی نمی تونی استفاده کنی من کلا حذفش کردم
کد:
sprite.setVisible(true);
         sprite.paint(g);
         //layerManager.paint(g, 10, 30);
ممنون از کمکتون. ولی توی کتاب همین جوری نوشته بود.
سلام . من بازم تو لود عکس مشکل پیدا کردم. برنامه ای که دارم می نویسم جای عکسش مثل عکس دلار توی لیست مثال TeleTransfer هست. توی این مثال هم نتونسته بودم عکسش رو لود کنم. مثالش رو به میلتون میفرستم.
لطفا کمکم کنید...
صفحه‌ها: 1 2 3 4