Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Подсчёт очков (http://www.flasher.ru/forum/showthread.php?t=202633)

Anabel 30.07.2013 08:01

Подсчёт очков
 
Есть игра, на несколько уровней, после прохождения каждого показываеться кол-во очков (те что набрал на уровне + те что были на предидущих). Есть взять просто вывод за уровень, то это можно решить таким кодом:
Код AS3:

import flash.text.TextField;
 
var t:TextField = new TextField(); // экземпляр класса
 
var point:Number=60; // очки
 
t.text = String(point); // присваиваем  значение
 
addChild(t);// добавляем на сцену

А вот как сделать, что бы додавались очки с предидущих уровней к тем, которые набрал? Пробовал переменную перевести назад из String в Number, потом додать и опять в String, но не получаеться. Может кто-то сталкивался, знает как решить.

KumoKairo 30.07.2013 08:44

Можно решить двумя способами (самыми, на мой взгляд, простыми)
Первый - хранить очки в статическом поле какого-либо класса и обращаться к нему из любого места программы:
Код AS3:

...
public class ScoreHelper
{
    public static var point:Number;
}

Код AS3:

...
t.text = ScoreHelper.point.toString();

Можно сделать поле private и обращаться через set и get, это как хочется
Это способ "в лоб" и его обычно стараются не использовать, но для тестового проекта вполне сойдет

Второй способ - создать где-нибудь объект, хранящий значение счета, и перекидывать его туда-сюда между уровнями.

====
Fogflasher, и правда опечатка. Спасибо, исправил)
caseyryan, это не я писал с утра, это братик маленький за компом баловался, чеснослово!
Надо взять за правило не отвечать на вопросы с утра пораньше) Прошу прощения за смуту)

Fogflasher 30.07.2013 09:13

KumoKairo, второй код странный, нигде нет слова point, разве не должно быть:

Код AS3:

t.text = ScoreHelper.point.toString();

Или в вашем написании какие-то умолчальные фишки используются.

Anabel 30.07.2013 15:21

Спасибо, попробую реализировать.

caseyryan 30.07.2013 23:10

Цитата:

Fogflasher, и правда опечатка. Спасибо, исправил)
ну тогда и
Код AS3:

public class ScoreHelper
{
    public static point:Number;
}

надо бы исправить на
Код AS3:

public class ScoreHelper
{
    public static var point:Number;
}

;)

Плюс у Number значение по умолчанию NaN. Надо бы сразу инициализировать нулем. А вообще, я бы лучше int использовал.


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

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.