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...
Question
xXxVSNxXx
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.
Agora, esse é o script modificado. Apenas foi removido as seguintes linhas: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 xXxVSNxXxLink 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.