Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ²Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 18

Автор Майкл ΠœΠΎΡ€Ρ€ΠΈΡΠΎΠ½

public void keyPressed(int keyCode) {

// Get the game action from the key code

int action = getGameAction(keyCode);

// Process the left and right buttons

switch (action) {

case LEFT:

if (–curSlide < 0) //ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ послСднСму слайду, Ссли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½

curSlide = slides.length – 1;

repaint();

break;

case RIGHT:

if (++curSlide >= slides.length) //ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ слайду, Ссли послСдний ΡƒΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½

curSlide = 0;

repaint();

break;

}

}

ΠœΠ΅Ρ‚ΠΎΠ΄ keyPressed() ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Ρ‹ программирования ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… ΠΌΠΈΠ΄Π»Π΅Ρ‚ΠΎΠ² – ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… событий. Π˜Π³Ρ€ΠΎΠ²ΠΎΠ΅ событиС – это особоС событиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ассоциировано с клавишами, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π² ΠΈΠ³Ρ€Π°Ρ…. Бмысл Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ дСйствия ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ клавишам, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс. Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ keyPressed() с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° getGameAction() опрСдСляСтся ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ событиС, ассоциированноС с клавишами. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ LEFT ΠΈ RIGHT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для описания Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ клавиш со стрСлками Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ action совпадаСт со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· констант, Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ слайда увСличиваСтся ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ, Π° Π·Π°Ρ‚Π΅ΠΌ отобраТаСтся Π½ΠΎΠ²Ρ‹ΠΉ слайд. Листинг 4.3. Π’Π°ΠΊ выглядит класс SSCanvas, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠ΄Π»Π΅Ρ‚Π° Slideshow. Π’ листингС 4.3 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ этого класса:

import javax.microedition.lcdui.*;

import java.io.*;

public class SSCanvas extends Canvas {

private Display display;

private Image[] slides;

private String[] captions = { "Love Circle Bowl", "Double Wide Spine", //Π˜Π½Π΄Π΅ΠΊΡΡ‹ массива ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ изобраТСниям

"Flume Zoom Over-vert", "Kulp De Sac Bowl",

"Louie\'s Ledge" };

private int curSlide = 0;

public SSCanvas(Display d) {

super();

display = d;

// Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ изобраТСния

try {

slides = new Image[5];

slides[0] = Image.createImage("/LoveCircle.jpg");

slides[1] = Image.createImage("/DoubleWide.jpg");

slides[2] = Image.createImage("/FlumeZoom.jpg");

slides[3] = Image.createImage("/KulpDeSac.jpg");

slides[4] = Image.createImage("/LouiesLedge.jpg");

}

catch (IOException e) {

System.err.println("Failed loading images!");

}

}

void start() {

display.setCurrent(this);

repaint();

}

public void keyPressed(int keyCode) {

// ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ событиС

int action = getGameAction(keyCode);

// ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ наТатия клавиш

switch (action) {

case LEFT:

if (–curSlide < 0)

curSlide = slides.length – 1;

repaint();

break;

case RIGHT:

if (++curSlide >= slides.length)

curSlide = 0;

repaint();

break;

}

}

public void paint(Graphics g) {

// ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ экран

g.setColor(255, 255, 255); // Π±Π΅Π»Ρ‹ΠΉ

g.fillRect(0, 0, getWidth(), getHeight());

// вывСсти Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

g.drawImage(slides[curSlide], getWidth() / 2, getHeight() / 2,

Graphics.HCENTER | Graphics.VCENTER);

// ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚

Font f = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD,

Font.SIZE_MEDIUM);

g.setFont(f);

// вывСсти Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ содСрТаниС

g.setColor(0, 0, 0); // Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ

g.drawString(captions[curSlide], getWidth() / 2, 0,

Graphics.HCENTER | Graphics.TOP);

}

}

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ холст Π² ΠΌΠΈΠ΄Π»Π΅Ρ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса SSCanvas Π² классС SlideshowMIDlet:

private SSCanvas canvas;

Π—Π°Ρ‚Π΅ΠΌ Π² конструкторС класса SlideshowMIDlet эта пСрСмСнная инициализируСтся. ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΈΠ΄Π»Π΅Ρ‚Π° Slideshow ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 4.4. Листинг 4.4. Код ΠΌΠΈΠ΄Π»Π΅Ρ‚Π° Slideshow

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class SlideshowMIDlet extends MIDlet implements CommandListener {

private SSCanvas canvas; //ИспользованиС настраиваСмого холста – это ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΌΠΈΠ΄Π»Π΅Ρ‚Π°

public void startApp() {

if (canvas == null) {

canvas = new SSCanvas(Display.getDisplay(this));

Command exitCommand = new Command("Exit", Command.EXIT, 0);

canvas.addCommand(exitCommand);

canvas.setCommandListener(this);

}

// Start up the canvas

canvas.start();

}

public void pauseApp() {}

public void destroyApp(boolean unconditional) {}

public void commandAction(Command c, Displayable s) {

if (c.getCommandType() == Command.EXIT) {

destroyApp(true);

notifyDestroyed();

}

}

}

Как Π²Ρ‹, вСроятно, Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, этот ΠΊΠΎΠ΄ практичСски ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ классу ΠΌΠΈΠ΄Π»Π΅Ρ‚Π° Olympics, созданного Π½Π°ΠΌΠΈ Ρ€Π°Π½Π΅Π΅. Π­Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ большая Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²ΠΎΠ·Π»ΠΎΠΆΠ΅Π½Π° Π½Π° класс, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ ΠΎΡ‚ Canvas.

ВСстированиС Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ прилоТСния

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ΄Π»Π΅Ρ‚ Slideshow собран, Π²Ρ‹ Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² J2ME-эмуляторС. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π’Π»Π΅Π²ΠΎ ΠΈ Π’ΠΏΡ€Π°Π²ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ слайд-ΡˆΠΎΡƒ. На рис. 4.6 ΠΏΠΎΠΊΠ°Π·Π°Π½ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠ΄Π»Π΅Ρ‚Π° Slideshow.

Рис. 4.6. ΠœΠΈΠ΄Π»Π΅Ρ‚ Slideshow Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ слайд-ΡˆΠΎΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ выводятся ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ описаниС

РСзюмС

Π’ этой Π³Π»Π°Π²Π΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π² MIDP API. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π³Π»Π°Π²Ρ‹ Π±Ρ‹Π»Π° посвящСна ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Graphics ΠΈ Canvas, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просты Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ. Π’Ρ‹ познакомились с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½Ρ‹ΠΌΠΈ систСмами ΠΈ ΠΈΡ… использованиСм Π² ΠΌΠΈΠ΄Π»Π΅Ρ‚Π°Ρ…. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ графичСскиС ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹, Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π°Π½ΠΊΠ΅Ρ€Ρ‹. НаконСц, Π³Π»Π°Π²Π° Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ рассмотрСниСм Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Но, вСроятно, самоС Π²Π°ΠΆΠ½ΠΎΠ΅ Π² этой Π³Π»Π°Π²Π΅ – написаниС Π΄Π²ΡƒΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… всС ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ.

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ ΡƒΠΆΠ΅ Π½Π°Π΄ΠΎΠ΅Π»Π° эта ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°, ΠΈ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ созданию ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ рассматриваСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ваТная Ρ‚Π΅ΠΌΠ°, относящаяся ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ³Ρ€, β€“ спрайтовая анимация.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Бамая большая Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡΡ‚ΡŒ, стоящая ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠ³Ρ€ – это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большим числом ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств с экранами Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ². Если Π² своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, Π½Π΅Ρ‚ нСобходимости Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ΠœΠΈΠ΄Π»Π΅Ρ‚ Olympics – Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ изобраТСния Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² экрана. Как Π²Ρ‹, вСроятно, Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, ΠΌΠΈΠ΄Π»Π΅Ρ‚ рисуСт олимпийский символ фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² экрана. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ шаги, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ олимпийский символ Π·Π°Π½ΠΈΠΌΠ°Π» всС свободноС мСсто Π½Π° экранС Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° экрана:

1. Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ getWidth() ΠΈ getHeight() ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ эк Ρ€Π°Π½Π°;

2. Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅ Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ окруТности символа ΠΊΠ°ΠΊ ΠΎΠ΄Π½Ρƒ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΡƒΡŽ высоты экрана устройства;

3. ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° paint() Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ окруТности ΠΈΠΌΠ΅Π»ΠΈ вычислСнный Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ ΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Π»ΠΈΡΡŒ соотвСтствСнно, всС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ;

4. ΡΠΎΠ±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ запуститС ΠΌΠΈΠ΄Π»Π΅Ρ‚ Π² эмуляторС J2ME. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ эмулируСмоС устройство Π½Π° QwertyDevice ΠΈ посмотритС, ΠΊΠ°ΠΊ символ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π½Π° экранС.

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ дСмонстрируСт Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ изобраТСния Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² экрана. Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСгда Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΈΠ΄Π»Π΅Ρ‚ для любого Ρ‚ΠΈΠΏΠ° экрана, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ графичСский ΠΌΠΈΠ΄Π»Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π» это.

Π“Π»Π°Π²Π° 5 ИспользованиС спрайтовой Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ

...

Архив Аркад

Единогласно признанная классикой ΠΏΠΎΡ‡Ρ‚ΠΈ всСми ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊΠ°ΠΌΠΈ Π°Ρ€ΠΊΠ°Π΄ ΠΈΠ³Ρ€Π° Battlezone Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° Π² 1980 Π³ΠΎΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Atari. Π’ этой ΠΈΠ³Ρ€Π΅ примСняСтся фрСймовая вСкторная Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. Π˜Π³Ρ€ΠΎΠΊ Π²ΠΈΠ΄Π΅Π» ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Π΅Ρ€Π΅Π· Π²ΠΈΠ΄ΠΎΠΈΡΠΊΠ°Ρ‚Π΅Π»ΡŒ, ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΠΉ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ±ΠΎΡ€ Ρ‚Π°Π½ΠΊΠ°. ВрСхмСрная пСрспСктива Π² Battlezone Π±Ρ‹Π»Π° Π½ΠΎΠ²ΠΈΠ½ΠΊΠΎΠΉ для ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² Π²ΠΎ врСмя ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Π±ΡƒΠΌΠ°. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Battlezone Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»Π°ΡΡŒ для Π²ΠΎΠ΅Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€ Π±ΠΎΠ΅Π²ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Bradley, Π±Ρ‹Π²ΡˆΠ΅ΠΉ Π½Π° Π²ΠΎΠΎΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Ρƒ БША. Π₯отя ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ подтвСрТдСния этому Π½Π΅Ρ‚ Π½ΠΈ со стороны Atari, Π½ΠΈ со стороны Π²ΠΎΠ΅Π½Π½Ρ‹Ρ…, воСнная вСрсия ΠΈΠ³Ρ€Ρ‹ со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ мСстом Π±Ρ‹Π»Π° выставлСна Π² Atari Π³ΠΎΠ΄Ρ‹ спустя послС Π·Π΅Π½ΠΈΡ‚Π° славы Battlezone.

Π‘Π΅Ρ€Π΄Ρ†Π΅ ΠΏΠΎΡ‡Ρ‚ΠΈ любой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ – это анимация. Π‘Π΅Π· Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π½Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ двиТСния, ΠΈ ΠΌΡ‹ Π±Ρ‹ Ρ‚Π°ΠΊ ΠΈ ΠΈΠ³Ρ€Π°Π»ΠΈ Π² тСкстовыС ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹. Π’ этой Π³Π»Π°Π²Π΅ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠΌΠΈ концСпциями Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠ³Ρ€Π°Ρ…, спрайтовой Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ создания Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спрайты Π² MIDP 2.0 API. Π Π΅Ρ‡ΡŒ ΠΎ спрайтовой Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΈ Π΄Π°Π»Π΅Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² этой Π³Π»Π°Π²Π΅ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с основами Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠ³Ρ€Π°Ρ… ΠΈ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Из этой Π³Π»Π°Π²Ρ‹ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅:

β–Ί ΠΎΠ± основах Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹;

β–Ί ΠΎΠ± отличиях 2D– ΠΈ BD-Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΉ;

β–Ί ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… 2D-Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, ΠΎ Ρ‚ΠΎΠΌ ΠΊΠΎΠ³Π΄Π° цСлСсообразно ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄;

β–Ί ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ MIDP-класс Sprite для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΌΠΈΠ΄Π»Π΅Ρ‚ΠΎΠ²;

β–Ί ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ класс GameCanvas для обСспСчСния ΠΏΠ»Π°Π²Π½ΠΎΠΉ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΌΠΈΠ΄Π»Π΅Ρ‚Π΅.

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΎΠ± Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊ части мобильной ΠΈΠ³Ρ€Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡΠ½ΠΈΡ‚ΡŒ основы. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ вопроса: Β«Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ анимация?Β» Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ просто, анимация – это иллюзия двиТСния. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ вся анимация, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, β€“ всСго лишь иллюзия? ИмСнно Ρ‚Π°ΠΊ! И, вСроятно, самая ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ иллюзия, Π·Π°Ρ…Π²Π°Ρ‚ΠΈΠ²ΡˆΠ°Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π·Π°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ появлСния ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², β€“ это Ρ‚Π΅Π»Π΅Π²ΠΈΠ΄Π΅Π½ΠΈΠ΅. Когда Π²Ρ‹ смотритС Ρ‚Π΅Π»Π΅Π²ΠΈΠ·ΠΎΡ€, Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΡ‚Π΅ мноТСство Π²Π΅Ρ‰Π΅ΠΉ, ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠΎ экрану. Но Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ воспринимаСтС ΠΊΠ°ΠΊ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, β€“ лишь Ρ‚Ρ€ΡŽΠΊ, Ρ€Π°Π·Ρ‹Π³Ρ€Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρƒ вас Π½Π° Π³Π»Π°Π·Π°Ρ….

Анимация ΠΈ частота обновлСния ΠΊΠ°Π΄Ρ€ΠΎΠ²

Π’ случаС тСлСвидСния иллюзия двиТСния создаСтся Π·Π° счСт быстрой смСны ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. Π§Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΈΠ·-Π·Π° Π½ΠΈΠ·ΠΊΠΎΠΉ остроты зрСния воспринимаСт эти измСнСния ΠΊΠ°ΠΊ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅. Наши Π³Π»Π°Π·Π° ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΠΌΠ°Π½ΡƒΡ‚ΡŒ ΠΈ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π² иллюзию Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ. Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, Ρ‚ΠΎ чСловСчСский Π³Π»Π°Π· воспринимаСт смСну ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ, Ссли измСнСния происходят Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 12 Ρ€Π°Π· Π² сСкунду. ΠΠ΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ минимально для большСй части ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ. Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ измСряСтся Π² ΠΊΠ°Π΄Ρ€Π°Ρ… Π² сСкунду (fps, frames per second).