Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.02.2009, 20:46
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 11  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Цитата:
Сообщение от DarkLight Посмотреть сообщение
Не сказал бы что сложнее
Код AS1/AS2:
prevscore=score%1000;
score+=100;
life+=1*((score-prevscore)%1000);
даже if-а не нужно, если очки только вверх прибавляются
И что получится с таким кодом?

Допустим, было 100 очков, прибавили 100. 1*((200-100)%1000) будет 100.

Старый 25.02.2009, 20:49
shaltay вне форума Посмотреть профиль Отправить личное сообщение для shaltay Посетить домашнюю страницу shaltay Найти все сообщения от shaltay
  № 12  
Ответить с цитированием
shaltay
 
Аватар для shaltay

Регистрация: May 2006
Сообщений: 162
Отправить сообщение для shaltay с помощью ICQ
Мне надо именно для каждой тысяче прибавлять жизнь. Вот мой код:
Код AS1/AS2:
if (score==5000 or score==10000 or score==15000){
	life=life+1; score=score+10; 
}
if (score==20000 or score==25000) {
	life=life+2; score=score+10;
}
Прибавляю +10 каждый раз потому, что при наборе X000 очков жизни будут прибавляться со скоростью милисикунд до тех пор, пока не пополню счет. Если кто-то знает, как от этого избавиться, пишите )

Добавлено через 2 минуты
Цитата:
Сообщение от VVall Посмотреть сообщение
Зачем floor?
Код AS1/AS2:
prevscore=score;
score+=100;
if(prevscore<1000&&score>=1000) life+=1;
ZIK68, в вашем варианте после набора 1000 очков любое увеличение счёта будет прибавлять попытку.
А куда вставить этот код??

Старый 25.02.2009, 20:58
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 13  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Цитата:
И что получится с таким кодом?
Забыл убрать деление в 1ой строке, исправлено)
__________________
4am is time to rock

Старый 25.02.2009, 21:05
shaltay вне форума Посмотреть профиль Отправить личное сообщение для shaltay Посетить домашнюю страницу shaltay Найти все сообщения от shaltay
  № 14  
Ответить с цитированием
shaltay
 
Аватар для shaltay

Регистрация: May 2006
Сообщений: 162
Отправить сообщение для shaltay с помощью ICQ
А что такое вообще %1000??

Старый 25.02.2009, 21:13
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 15  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Целочисленный остаток от деления 1го числа на 2ое. Кстати он в этом случае не в тему, сделал вариант с Math.floor
__________________
4am is time to rock

Старый 25.02.2009, 21:17
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 16  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Цитата:
Сообщение от shaltay Посмотреть сообщение
А куда вставить этот код??
Туда, где вы прибавляете очки. Я рекомендую сделать функцию прибавления очков, в которой будет выполняться собственно прибавление и эта проверка.

Старый 25.02.2009, 21:36
shaltay вне форума Посмотреть профиль Отправить личное сообщение для shaltay Посетить домашнюю страницу shaltay Найти все сообщения от shaltay
  № 17  
Ответить с цитированием
shaltay
 
Аватар для shaltay

Регистрация: May 2006
Сообщений: 162
Отправить сообщение для shaltay с помощью ICQ
Цитата:
Сообщение от VVall Посмотреть сообщение
Туда, где вы прибавляете очки. Я рекомендую сделать функцию прибавления очков, в которой будет выполняться собственно прибавление и эта проверка.
А как должна выглядеть эта функция, напишите пожалуйста, функции создаю оч. коряво, обычно скрипты просто беру откуда-то..

Добавлено через 5 минут
Цитата:
Сообщение от DarkLight Посмотреть сообщение
Не сказал бы что сложнее
Код AS1/AS2:
prevscore=score;
score+=100;
life+=1*(Math.floor((score-prevscore)/1000));
даже if-а не нужно, если очки только вверх прибавляются
Вы можете всунуть правильно этот код в мой
Код AS1/AS2:
if ((getl(posx,posy)==".") and _root["chkdot"+posx+posy]<>".") {_root["Dot"+posx+posy].removeMovieClip(); _root.dot--
 _root["chkdot"+posx+posy]=".";
 _root.score+=10;
 }
 
 if ((getl(posx,posy)==",") and _root["chkdot"+posx+posy]<>",") {
 _root["chkdot"+posx+posy]=",";
 _root.score+=100;
Добавлено через 10 минут
Код AS1/AS2:
 if ((getl(posx,posy)==",") and _root["chkdot"+posx+posy]<>",")  {
_root.prevscore=_.root.score;
_root.score+=100;
life+=1*(Math.floor((_root.score-_root.prevscore)/1000));
};
Очки прибавляются, а жизни нет..


Последний раз редактировалось shaltay; 25.02.2009 в 21:49.
Старый 25.02.2009, 21:47
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 18  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Ну так надо научиться создавать функции и вообще понимать элементарнейший код, типа примеров в этой теме, прежде чем писать игры.

Я AS2 не знаю, приблизительно функция будет выглядеть так:

Код AS1/AS2:
function addPoints(amount:int):void
{
   var prevscore:int=score%1000;
   score+=amount;
   if(prevscore>(score%1000)) life+=1;
}
И всюду в коде игры вместо score=score+число; нужно вызывать функцию addPoints(число);

Старый 26.02.2009, 10:17
NoCD вне форума Посмотреть профиль Отправить личное сообщение для NoCD Найти все сообщения от NoCD
  № 19  
Ответить с цитированием
NoCD
 
Аватар для NoCD

Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
За каждые 50 очков будет начисляться бонус в размере 1 очка.
setInterval не люблю, поэтому сделал через onEnterFrame счетчик.
Здесь же показано как используется функция

Код AS1/AS2:
var timer=0
var score=0
var bonus_up=0
this.onEnterFrame=function()
{if(timer<10){timer++}else{
score+=10
timer=0
calc()
}}
 
function calc(){bonus_up=Math.floor(score/50)}
---------------------------------------------
Цитата:
Т.е если потратить жизни получаеш очки и они возвращаются :O
чего???
Вложения
Тип файла: zip calc.zip (4.4 Кб, 56 просмотров)


Последний раз редактировалось NoCD; 26.02.2009 в 11:10.
Старый 26.02.2009, 11:04
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 20  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Т.е если потратить жизни получаеш очки и они возвращаются :O

Создать новую тему Ответ Часовой пояс GMT +4, время: 07:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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