Игра "Кости"

Content on this page requires a newer version of Adobe Flash Player.

Информация
Автор/переводчик: 
Я

Добрый день. Хочу представить вашему вниманию урок по созданию игры «Кости». Сразу хочу сказать, что я не крутой программист и возможно у меня не правильный подход, но тем не менее все прекрасно работает. Давайте приступим.

Объекты:
На картинке изображены все объекты проекта и написаны их instance name’ы.

На сцене у меня есть:
3 текстовых поля:
yourMoney_txt – динамическое текстовое поле, в которое выводится общее кол-во денег.
message_txt – динамическое текстовое поле, в которое выводятся разные сообщения.
rate_txt – поле для ввода текста. Сюда игрок вводит свою ставку.
Если вы используете нестанадртные шрифты, не забывайте их внедрять в ролик!

6 символов типа MovieClip:
4 кубика (you1, you2, banker1, banker2) – 2 игрока и 2 банкира. В кубиках по 6 кадров.
makeRate_btn – по нажатию на этот символ происходит проверка ставки.
startGame_btn – игроки бросают кости.

Задачи проекта:
Давайте разберемся, что мы будем пытаться сделать. И так:
1) В самом начале игры игроку дается 100 ед. игровой валюты.
2) В поле yourMoney_txt выводится кол-во средств на счету игрока.
3) Делаем так, что бы в поле ставки нельзя было вводить любые символы кроме цифр.
4) Игрок должен сделать ставку. Игрок не может кинуть кости до того, пока не сделает допустимую ставку.
5) Что бы сделать ставку, игрок должен ввести ее в поле ставки.
6) После нажатия на кнопку makeRate_btn проверяется правильность ставки.
7) Если ставка превышает обще кол-во денег на счету игрока, то в поле message_txt выводиться сообщение «Недостаточно средств», если игрок вводит ставку равную 0, то выводится сообщение «Недопустимая ставка».
8) Если ставка подходит, то с счета игрока списывается сумма равная ставке и игрока появляется способность бросить кости.
9) После нажатия кнопки startGame_btn случайным образом выбирается победитель. Символы с кубиками переходят на определенные кадры. Если победил игрок, ему возвращается удвоенная ставка, выводится сообщение «Вы выиграли», если побеждает банкир, то выводится сообщение «Вы проиграли», если ничья, то игроку возвращается ставка и выводится сообщение «Ничья».

Код:

import flash.events.MouseEvent;
//останавливаем воспроизведение клипов
banker1.stop();
banker2.stop();
you1.stop();
you2.stop();
//////
 
startGame_btn.visible = false;// Делаем невидимой кнопку начала игры
 
var rate:Number;//объявляем переменную 
var yourMoney:Number = new Number(100);//Переменная, которая содержит все деньги игрока. Начальный капитал 100
 
yourMoney_txt.text = String(yourMoney);//Это текстовое поле, которое отображает все деньги игрока.
 
rate_txt.text = "";//Делаем поле для ввода ставки пустым
rate_txt.restrict = "0-9";//Разрешаем ввод в поле для ставки только цифры
 
 
//Добавляем нужные слушатели
makeRate_btn.addEventListener(MouseEvent.CLICK, checkRate_fun);
startGame_btn.addEventListener(MouseEvent.CLICK, startGame_fun);
/////
 
 
//Описываем функцию, котора проверяет ставку
function checkRate_fun(e:MouseEvent):void
{
	rate = Number(rate_txt.text);//Передаем в переменную значение текстового поля ставки
 
//Проверяем ставку
	if (rate == 0)  //если ставка равна 0
	{
		message_txt.text = "Недопустимая ставка";
 
	}
	else if (rate>yourMoney)//если ставка больше всех средств игрока
	{
		message_txt.text = "Недостаточно средств";
	}
	else if (rate<yourMoney)//если ставка меньше всех средств игрока
	{
		yourMoney = yourMoney - rate;//отнимаем от всех средств ставку
		yourMoney_txt.text = String(yourMoney);//выводим в текстовое поле количество денег игрока
		startGame_btn.visible = true;//делаем кнопку для начала игры видимой
		makeRate_btn.visible = false;//делаем кнопку ставок невидимой
 
 
	}
 
}
 
//Описываем функцию начала игры
function startGame_fun(e:MouseEvent):void
{
	startGame_btn.visible=false;//делаем кнопку начала игры невидимой
	makeRate_btn.visible=true;//делаем кнопку ставок невидимой
 
	//Эти переменные принимают случайное значение от 1 до 6. То есть каждая переменная отвечает за какой-то кубик
	var b_1:Number = Math.round(Math.random() * 5)+1;
	var b_2:Number = Math.round(Math.random() * 5)+1;
	var y_1:Number = Math.round(Math.random() * 5)+1;
	var y_2:Number = Math.round(Math.random() * 5)+1;
	//////
	//Плюсуем значения переменных.
	var B:Number = b_1 + b_2;
	var Y:Number = y_1+y_2;
//////
//Переключаем каждый кубик а нужный кадр
	banker1.gotoAndStop(b_1);
	banker2.gotoAndStop(b_2);
	you1.gotoAndStop(y_1);
	you2.gotoAndStop(y_2);
////
 
//Сравниваем результат игрока и банкира
	if (B>Y)
	{
		message_txt.text = "Вы проиграли";
 
	}
	else if (B<Y)
	{
		message_txt.text = "Вы выиграли";
		yourMoney=yourMoney+(rate*2);
		yourMoney_txt.text = String(yourMoney);
 
	}
	else if (B==Y)
	{
		message_txt.text = "Ничья";
		yourMoney=yourMoney+rate;
	yourMoney_txt.text = String(yourMoney);
	}
 
}

вот и все. Надеюсь урок был полезен.

Исходник: 

Комментарии

Аватар пользователя aidalexeyaid

это же все очень просто вся суть в Math.round(Math.random() * 5)+1; но разве это сложно?

Аватар пользователя Vetalos

сложно не сложно, но для новичков неплохо, респект за старания

Аватар пользователя olgasrdk

А как скачать исходник? Кликнув на bones.fla у меня открывается страница с кракозябрами.

Аватар пользователя ProcXel.A

olgasrdk, кракозябры - это и есть исходник.)))) У вас браузер неправильно просто работает. Нажмите правой кнопкой по ссылке и выберите пункт напободие "сохранить по ссылке как...".

True Love