рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдпрд╣рд╛рдВ рдПрдВрдбреНрд░реЙрдЗрдб рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рдХрд╛ рд╕рд┐рд▓рд╕рд┐рд▓рд╛ рдЬрд╛рд░реА рд╣реИ рдЬреЛ рдХрд┐
рдПрдВрдбрдЧреНрд░реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рдмрд╣реБрдд рд╕рд░рд▓
рдирд╣реАрдВ рд╣реИ ред
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреА?
рднрд╛рдЧ 1рднрд╛рдЧ реирддреЛ рдЪрд▓рд┐рдП рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред
рдЖрдЬ рд╣рдо рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдирдХреНрд╢реЗ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред рд╡рд╣ рдХреНрдпрд╛ рд╣реИ? 13x7 рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд╕рд░рдгреАред рдЖрдХрд╛рд░ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИ, рд▓реЗрдХрд┐рди 64x64 рдХреЗ рд╕реЗрд▓ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдпрд╣ рдХрд╛рдлреА рддрд╛рд░реНрдХрд┐рдХ рд▓рдЧрдиреЗ рд▓рдЧрддрд╛ рд╣реИред
рдЪрд░рдг 1. рд╣рдо рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдФрд░ рдХреНрд╖реЗрддреНрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
public class GameObjectsMap {
public static final int HEIGHT = 7;
public static final int WIDTH = 13;
public static final float CELL_SIZE_X = 64f;
public static final float CELL_SIZE_Y = 64f;
public static final int LASER_LAYER = 0;
public static final int GAME_OBJECTS_LAYER = LASER_LAYER + 1;
private GameObject[][] mMap = new GameObject[WIDTH][HEIGHT];
private Textures mTextures;
GameObjectsMap(final Textures textures) {
mTextures = textures;
}
}
* This source code was highlighted with Source Code Highlighter .
рдЪрд░рдг 2. рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ред
рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
public void add(Type type, final int posH, final int posW, final int angle) {
GameObject object = null ;
switch (type) {
case lasergun:
object = new LaserGun(posH, posW, angle, mTextures
.getLaserGun());
break ;
case mirror:
break ;
case target:
break ;
default :
break ;
}
mMap[posH][posW] = object ;
}
* This source code was highlighted with Source Code Highlighter .
рдЪрд░рдг 3. рдкреНрд░рджрд░реНрд╢рди рд╡рд╕реНрддреБрдУрдВред
рдПрдХ рдЪреМрдХрд╕ рдкрд╛рдардХ EnO рдкреНрд░рдХрд╛рд░ рдХреЛ GameObject рд╡рд░реНрдЧ рдХреЗ рд╡рд░реНрдгрди рдореЗрдВ рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ред рдРрдб рдореЗрдердб рдореЗрдВ, рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░, рдЙрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рд░реЛрдЯреЗрд╢рди рдХреЛрдг рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рд╣рдорд╛рд░реЗ рдПрд░реЗ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЦреЗрд▓ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
public void addToScene(Scene scene) {
for ( int i = 0; i < mMap.length; i++) {
for ( int j = 0; j < mMap[i].length; j++) {
GameObject o = mMap[i][j];
if (o != null ) {
o.attachTo(scene);
}
}
}
}
* This source code was highlighted with Source Code Highlighter .
рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ред рдареАрдХ рд╣реИ, рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ:
public void clear() {
for ( int i = 0; i < mMap.length; i++) {
Arrays.fill(mMap[i], null );
}
}
* This source code was highlighted with Source Code Highlighter .
рдЕрдм рд╣рдо рджреГрд╢реНрдп рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
mGameObjectsMap.add (Type.lasergun, 0, 0, 3);
рдЪрд░рдг 4. рдЯрдЪ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧред
рд╕рднреА рд╕рдорд╛рди, рд╣рдо рдЧреЗрдо рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рдмрд┐рдирд╛, рд╣рдо рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд╛рдирдХ рд╣реИрдВрдбрд▓рд░ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗред
scene.setOnSceneTouchListener (mGameObjectsController);
рдЬрд╣рд╛рдБ mGameObjectsController IOnSceneTouchListener рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп OnTouchListener рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рдФрд░ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
public boolean onSceneTouchEvent(final Scene pScene, TouchEvent pSceneTouchEvent) {
if (pSceneTouchEvent.isActionDown()) {
float x = pSceneTouchEvent.getX();
float y = pSceneTouchEvent.getY();
int cellNumX = ( int ) ((x - x % GameObjectsMap.CELL_SIZE_X)
/ GameObjectsMap.CELL_SIZE_X);
int cellNumY = ( int ) ((y - y % GameObjectsMap.CELL_SIZE_X)
/ GameObjectsMap.CELL_SIZE_X);
DynamicGameObject object = (DynamicGameObject)mMap.getMap()[cellNumX][cellNumY];
if ( object != null ) {
//
}
}
return false ;
}
* This source code was highlighted with Source Code Highlighter .
рд╣рд╛рдВ, рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рдЖрдк рд╕реЗрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИред
рдЖрдЬ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдЖрдк рдореЗрд░реА рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ
рдпрд╣рд╛рдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рд╢реНрди, рд╕реБрдЭрд╛рд╡ рдФрд░ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдХрд╛ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
PS рд╕реНрд░реЛрдд рдХреЛрдб рдЕрднреА рднреА
рд╣реИ ред
рдкреАрдкреАрдПрд╕
рдЬрд╛рд░реА рд░рдЦрд╛ред