Jump to content
Fórum Script Brasil
  • 0

AboutScreen.java


xXxVSNxXx

Question

Buenas! sou novo na área de programação, e me deparei com um problema de um script pronto, mas não sei nem por onde começar, então se alguém poder me ajudar, ficaria grato...

OBS.: Esse é o script original e está funcionando corretamente.

package com.ximad.pvn.screens;

import com.ximad.pvn.engine.*;
import com.ximad.pvn.game.Textures;
import java.util.Vector;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;

// Referenced classes of package com.ximad.pvn.screens:
//            HomeScreen

public class AboutScreen extends UiScreen
{
    class CustomTextBox extends Field
    {

        public void onPaint(Graphics g)
        {
            g.setColor(fontColor);
            g.setFont(Font.getFont(0, 0, 16));
            g.clipRect(left, top, width, height);
            for(int i = 0; i < strings.size(); i++)
            {
                int y = (top + i * fontHeight) - scrollPosition;
                if(y <= top + height && y + fontHeight >= top)
                {
                    String s = (String)strings.elementAt(i);
                    g.drawString(s, left, y, 20);
                }
            }

        }

        public void onIdle()
        {
            if(inertion && begin > 10)
            {
                if(delta > 0)
                    scrollPosition -= speed * 2;
                else
                if(delta < 0)
                    scrollPosition += speed * 2;
                if(scrollPosition < 0)
                    scrollPosition = 0;
                else
                if(scrollPosition > getMaxPosition())
                    scrollPosition = getMaxPosition();
                speed--;
                if(speed == 0)
                    inertion = false;
                repaint(left, top, width, height);
            }
        }

        public void append(String text)
        {
            strings.addElement(text);
        }

        private int getMaxPosition()
        {
            return fontHeight * strings.size() - height / 2;
        }

        public boolean touchEvent(int touchEventType, int eventX, int eventY)
        {
            boolean out = false;
            if(eventX < left || eventX > left + width || eventY < top || eventY > top + height)
                out = true;
            switch(touchEventType)
            {
            default:
                break;

            case 2: // '02'
                if(out)
                    return false;
                SCROLL = true;
                lastEventY = eventY;
                begin = eventY;
                inertion = false;
                break;

            case 1: // '01'
                SCROLL = false;
                if(delta > 1 || delta < -1)
                {
                    inertion = true;
                    speed = 10;
                }
                begin = eventY - begin;
                if(begin < 0)
                    begin *= -1;
                break;

            case 3: // '03'
                if(!SCROLL)
                    return false;
                delta = eventY - lastEventY;
                scrollPosition -= delta;
                lastEventY = eventY;
                if(scrollPosition < 0)
                    scrollPosition = 0;
                else
                if(scrollPosition > getMaxPosition())
                    scrollPosition = getMaxPosition();
                repaint(left, top, width, height);
                break;
            }
            return !out;
        }

        private Vector strings;
        private int fontHeight;
        private int fontColor;
        private boolean SCROLL;
        private int lastEventY;
        private int scrollPosition;
        private int delta;
        private int speed;
        private int begin;

        private CustomTextBox(int width, int height, int textColor)
        {
            strings = new Vector();
            this.width = width;
            this.height = height;
            fontHeight = Font.getDefaultFont().getHeight();
            fontColor = textColor;
        }

    }


    public AboutScreen()
    {
        inertion = false;
        CustomButton btBack = new CustomButton(Textures.back, 0, 1) {

            protected void touchAction()
            {
                Application.setScreen(HomeScreen.getInstance());
            }

        }
;
        lbAbout = new CustomTextBox(490, 200, 0x56290f);
        append();
        append("    There's an old feud between Angry  and");
        append("Pork,   so old that no one remembers");
        append();
        append("                             what started it");
        append();
        append("    Regardless, the fighting rages on to this");
        append("day,  and  it's  brought  to  your  Symbian");
        append("device  by  Arkantoz Angry Birds  in  their");
        append("struggle  (because  they  are  cuter  than");
        append("Pork)   ");
        append("    Command  Angry   and  destroy  the");
        append("camps of ruthless Pork  killers to defend");
        append("Angry ' homeland.");
        append();
        append("    Game objective:");
        append();
        append(" - Complete each level by clearing it of all");
        append("Pork    with  minimal  number  of  shots!");
        append(" - Earn top score for accuracy and minimal");
        append("number  of  shots  used  and  you  will  be");
        append("awarded  the  Gold  Medal  of  Honor after");
        append("each level!");
        append();
        append("    Controls:");
        append();
        append("- Drag back the Big Angry. The more you");
        append("drag  it,  the  farther  it  will  throw   the");
        append("Little  Angry  (strongest when Big Angry");
        append("is red with rage).");
        append("- And  if  you  drag  Big  Angry  back just a");
        append("little,  little,  Big  Angry's   face  will  not");
        append("be as angryand not as red, and the throw");
        append("will be weaker.");
        append("- Pay attention to arrows that appear after");
        append("dragging   Big   Angry  -  they   show   the");
        append("trajectory of your future shot (adjust the");
        append("trajectory by dragging up or down).");
        append("- View the Pork  camp and return back to");
        append("Angry  by  Arkantoz S60 screen back and");
        append("forth.");
        append();
        append(" Angry Birds!");
        append();
        append("                                      ---    ");
        append("                         Angry  Birds    ");
        append();
        append("                                Arkantoz ");
        append();
        append("                               Version 2.0");
        add(btBack, 257, 310);
        add(lbAbout, 70, 105);
    }

    public final void append(String s)
    {
        lbAbout.append(s);
    }

    public final void append()
    {
        append("");
    }

    public void onPaint(Graphics g)
    {
        Textures.mainMenuBackground.draw(g, 0, 0);
        Textures.selectScenarioMainBackground.draw(g, 33, 0);
        Textures.aboutCaption.drawFlag(g, 321, 72, 3);
        super.onPaint(g);
        Textures.aboutTop.draw(g, 70, 105);
        Textures.aboutDown.draw(g, 70, 290);
    }

    public static AboutScreen getInstance()
    {
        if(instance == null)
            instance = new AboutScreen();
        return instance;
    }

    public void onIdle()
    {
        if(lbAbout != null)
            lbAbout.onIdle();
        sleep(30L);
    }

    private static AboutScreen instance;
    private boolean inertion;
    private CustomTextBox lbAbout;


}
Agora, esse é o script modificado.
package com.ximad.pvn.screens;

import com.ximad.pvn.engine.*;
import com.ximad.pvn.game.Textures;
import java.util.Vector;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;

// Referenced classes of package com.ximad.pvn.screens:
//            HomeScreen

public class AboutScreen extends UiScreen
{
    class CustomTextBox extends Field
    {

        public void onPaint(Graphics g)
        {
            g.setColor(fontColor);
            g.setFont(Font.getFont(0, 0, 16));
            g.clipRect(left, top, width, height);
            for(int i = 0; i < strings.size(); i++)
            {
                int y = (top + i * fontHeight) - scrollPosition;
                if(y <= top + height && y + fontHeight >= top)
                {
                    String s = (String)strings.elementAt(i);
                    g.drawString(s, left, y, 20);
                }
            }

        }

        public void onIdle()
        {
            if(inertion && begin > 10)
            {
                if(delta > 0)
                    scrollPosition -= speed * 2;
                else
                if(delta < 0)
                    scrollPosition += speed * 2;
                if(scrollPosition < 0)
                    scrollPosition = 0;
                else
                if(scrollPosition > getMaxPosition())
                    scrollPosition = getMaxPosition();
                speed--;
                if(speed == 0)
                    inertion = false;
                repaint(left, top, width, height);
            }
        }

        public void append(String text)
        {
            strings.addElement(text);
        }

        private int getMaxPosition()
        {
            return fontHeight * strings.size() - height / 2;
        }

        public boolean touchEvent(int touchEventType, int eventX, int eventY)
        {
            boolean out = false;
            if(eventX < left || eventX > left + width || eventY < top || eventY > top + height)
                out = true;
            switch(touchEventType)
            {
            default:
                break;

            case 2: // '02'
                if(out)
                    return false;
                SCROLL = true;
                lastEventY = eventY;
                begin = eventY;
                inertion = false;
                break;

            case 1: // '01'
                SCROLL = false;
                if(delta > 1 || delta < -1)
                {
                    inertion = true;
                    speed = 10;
                }
                begin = eventY - begin;
                if(begin < 0)
                    begin *= -1;
                break;

            case 3: // '03'
                if(!SCROLL)
                    return false;
                delta = eventY - lastEventY;
                scrollPosition -= delta;
                lastEventY = eventY;
                if(scrollPosition < 0)
                    scrollPosition = 0;
                else
                if(scrollPosition > getMaxPosition())
                    scrollPosition = getMaxPosition();
                repaint(left, top, width, height);
                break;
            }
            return !out;
        }

        private Vector strings;
        private int fontHeight;
        private int fontColor;
        private boolean SCROLL;
        private int lastEventY;
        private int scrollPosition;
        private int delta;
        private int speed;
        private int begin;

        private CustomTextBox(int width, int height, int textColor)
        {
            strings = new Vector();
            this.width = width;
            this.height = height;
            fontHeight = Font.getDefaultFont().getHeight();
            fontColor = textColor;
        }

    }


    public AboutScreen()
    {
        inertion = false;
        CustomButton btBack = new CustomButton(Textures.back, 0, 1) {

            protected void touchAction()
            {
                Application.setScreen(HomeScreen.getInstance());
            }

        }
;
        lbAbout = new CustomTextBox(490, 200, 0x56290f);
        append();
        append("    There's an old feud between Angry  and");
        append("Pork,   so old that no one remembers");
        append();
        append("                             what started it");
        append();
        append("    Regardless, the fighting rages on to this");
        append("day,  and  it's  brought  to  your  Symbian");
        append("device  by  Arkantoz Angry Birds  in  their");
        append("struggle  (because  they  are  cuter  than");
        append("Pork)   ");
        append("    Command  Angry   and  destroy  the");
        append("camps of ruthless Pork  killers to defend");
        append("Angry ' homeland.");
        append();
        append("    Game objective:");
        append();
        append(" - Complete each level by clearing it of all");
        append("Pork    with  minimal  number  of  shots!");
        append(" - Earn top score for accuracy and minimal");
        append("number  of  shots  used  and  you  will  be");
        append("awarded  the  Gold  Medal  of  Honor after");
        append("each level!");
        append();
        append("    Controls:");
        append();
        append("- Drag back the Big Angry. The more you");
        append("drag  it,  the  farther  it  will  throw   the");
        append("Little  Angry  (strongest when Big Angry");
        append("is red with rage).");
        append("- And  if  you  drag  Big  Angry  back just a");
        append("little,  little,  Big  Angry's   face  will  not");
        append("be as angryand not as red, and the throw");
        append("will be weaker.");
        append("- Pay attention to arrows that appear after");
        append("dragging   Big   Angry  -  they   show   the");
        append("trajectory of your future shot (adjust the");
        append("trajectory by dragging up or down).");
        add(btBack, 257, 310);
        add(lbAbout, 70, 105);
    }

    public final void append(String s)
    {
        lbAbout.append(s);
    }

    public final void append()
    {
        append("");
    }

    public void onPaint(Graphics g)
    {
        Textures.mainMenuBackground.draw(g, 0, 0);
        Textures.selectScenarioMainBackground.draw(g, 33, 0);
        Textures.aboutCaption.drawFlag(g, 321, 72, 3);
        super.onPaint(g);
        Textures.aboutTop.draw(g, 70, 105);
        Textures.aboutDown.draw(g, 70, 290);
    }

    public static AboutScreen getInstance()
    {
        if(instance == null)
            instance = new AboutScreen();
        return instance;
    }

    public void onIdle()
    {
        if(lbAbout != null)
            lbAbout.onIdle();
        sleep(30L);
    }

    private static AboutScreen instance;
    private boolean inertion;
    private CustomTextBox lbAbout;


}
Apenas foi removido as seguintes linhas:
append("- View the Pork  camp and return back to");
        append("Angry  by  Arkantoz S60 screen back and");
        append("forth.");
        append();
        append(" Angry Birds!");
        append();
        append("                                      ---    ");
        append("                         Angry  Birds    ");
        append();
        append("                                Arkantoz ");
        append();
        append("                               Version 2.0");

E não compila... se eu modifica com o Cavaj da erro na hora de executar o jogo e com o NetBeans nem chega a compilar, tentei também compilar com o javac pelo Prompt, da erro...

Edited by xXxVSNxXx
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...