Фильмы от Dark Dragons - обмен и обсуждение Фильмы от Dark Dragons - обмен и обсуждение

Вернуться   Фильмы от Dark Dragons - обмен и обсуждение > Web Design > Уроки > Flash
Имя
Пароль
Основные правила форума | Галерея
Помните! Форум - место для общения, а не файловый архив фильмов!
Регистрация Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Flash Обсуждение всех вопросов, связанных с Flash

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.02.2005   #1
Talik
Солнышко
 
Аватар для Talik
 
Регистрация: 16.11.2004
Адрес: Тель-Авив
Сообщения: 1,260
Поблагодарил(а): 156
Поблагодарили 329 раз(а) в 219 сообщениях
Вес репутации: 15Talik is on a distinguished road
Страна:
Отправить сообщение для  Talik с помощью ICQ Отправить сообщение для Talik с помощью Skype™
Создавать игру мы начинаем с рисования компонентов.

Вы рисуете поле, где и будут располагаться наши пятнашки. Поле с размерами 225.6 на 225.6 insert/New symbol/назовите board и поставьте галочку Graphic, цвет выберете по желанию.



Нарисуйте мувик с поздравлением, если человек выигрывает. Insert/New symbol/назовите Congratulations и поставьте галочку Movie clip.



Далее мы нарисуем пятнашку. Insert/New symbol/назовите Piece и галочка Movie Clip. Она состоит из двух слоёв. В Piece Number впишите цифру 1, а в Piece Graphic нарисуйте квадрат. Не надо рисовать 15 таких мувиков, а только один.



Теперь в сцену надо добавить всё , что мы нарисовали ранее. Сцена состоит из двух слоёв и одного фрейма в каждом слое. Первый слой называется Buttons and actions. В этом слое всё и будет происходить. Добавьте в него поле и пятнашку. Поле расположите по середине, а чтобы расположить пятнашку нажмите Windows/Panels/info. После вы увидите там две оси X и Y. Ось X будет 56.8, а ось Y- 47.5. Нажмите на нашу пятнашку и в окошке Instance/в закладке Instance/Behevior/поставьте Movie Clip/и в поле instanse name напишите p0.



Далее скопируите и вставить во фрейм слоя Buttons and actions этот скрипт -

if (!initialized) {
Initialize();
initialized = true;
}

function PieceX(col)
{
return xBase + col * xSpace;
}

function PieceY(row)
{
return yBase + row * ySpace;
}

// Subroutine Initialize
// Puzzle Initialization Code
function Initialize()
{
Congratulations.stop();
// Set dimensions of game grid
numRows = 4;
numCols = 4;
numCells = numRows*numCols;

xBase = p0._x;
yBase = p0._y;
xSpace = p0._width * 1.07;
ySpace = p0._height * 1.07;

// Create pieces
var c = 1;
var r = 0;
for (var i=1; i<numCells-1; i++) {
var name = "p" + i;
p0.duplicateMovieClip(name, i);
var newPiece = eval(name);
newPiece._x = PieceX&copy;;
newPiece._y = PieceY&reg;;
newPiece.PieceNumber = i+1;
if (++c >= numCols) {
c = 0;
r++;
}
}

// Set initial positions of each cell, including empty space
posArray = [];
for (i=0; i<numCells-1; i++) {
posArray[i] = i;
}
empty = numCells-1;
}

// Subroutine Winner
// Tests whether the current piece positions is a winning position (that is, every piece in sequence)
function isWinner()
{
for (var i = 0; i<numCells-1; i++) {
if (posArray[i] != i) {
return false;
}
}
return true;
}

// Subroutine Click
// Puzzle click handler.When a piece is clicked, determine if it is adjacent to the empty space. if it is, move it into the empty space.
// Check if this is a winner
function Click(clicked)
{
clicked--;

if (isWinner()) {
// Start a new game
shuffle();
// Get rid of the congratulations message
Congratulations.gotoAndStop(1);
} else {
// Get the position of the clicked piece
pos = posArray[clicked];
// Get row, column of empty spot
emptyRow = Math.floor(empty/numCols);
emptyCol = empty-emptyRow*numCols;
// Get row, column of clicked piece
clickedRow = Math.floor(pos/numCols);
clickedCol = pos-clickedRow*numCols;
// Test adjacency
// adjacent(i, j) = i is above j or i is below j, or i is left of j or i is right of j
rowDiff = Math.abs(clickedRow-emptyRow);
colDiff = Math.abs(clickedCol-emptyCol);
adjacent = (rowDiff+colDiff) == 1;
if (adjacent) {
// Move the movie clip for the piece
var piece = eval("/p" + clicked);
piece._x = PieceX(emptyCol);
piece._y = PieceY(emptyRow);
// Swap the clicked piece with the empty space
posArray[clicked] = empty;
empty = pos;
// If this is a winner, start the winning movie clip
if (isWinner()) {
Congratulations.play();
}
}
}
}

function Shuffle()
{
// We want to arrange the cells in a random
// order. We do this by generating a random
// number r(i) for each cell i, and sorting
// the pairs (i, r(i)) using r(i) as the key.

// Comparison function for the sort
var cf = function (x, y) {
if (x[1] < y[1]) {
return -1;
} else if (x[1] > y[1]) {
return 1;
} else {
return 0;
}
}
var i;
var cell = [];
for (i=0; i<numCells; i++) {
cell.push([i, Math.random()]);
}
cell.sort(cf);

// We've sorted the ordered pairs...
// Now position the pieces according
// to the new order.
var r = 0, c = 0;
for (i=0; i<numCells; i++) {
var piece = cell[i][0];
if (piece == numCells-1) {
empty = i;
} else {
posArray[piece] = i;
var p = eval("/p" + piece);
p._x = PieceX&copy;;
p._y = PieceY&reg;;
}
if (++c >= numCols) {
c = 0;
r++;
}
}
}


Второй слой называется Congratulations Movie. В нём вы должны вставить мувик с поздравлением. После того, как вы его вставили, в окошке Instance/в закладке Instance/Behevior/поставьте Movie Clip/и в поле instanse name напишите Congratulations.

З.Ы. картинки взяты из Flash 6, в Flash 2004 работает точно так же только Instanse name находится на панели Properties
Talik вне форума   Ответить с цитированием
Реклама
Наташа
Старый 10.08.2008   #2
blood48
Ghost
 
Регистрация: 10.08.2008
Возраст: 45
Сообщения: 10
Поблагодарил(а): 0
Поблагодарили 3 раз(а) в 2 сообщениях
Вес репутации: 0blood48 is an unknown quantity at this point
Страна:
Скажите, а квесты на флешке возможны?
blood48 вне форума   Ответить с цитированием
Реклама
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать ссылки в флэш Talik Flash 9 06.09.2006 22:02


Часовой пояс GMT +4, время: 08:13.


vBulletin v3.6.0, Copyright ©2000-2018, Jelsoft Enterprises Ltd
Лицензия Dark Dragons
FILMS