Что бы создать что то не очень сложное, не обязательно быть программистом. Попробую в этой статье объяснить основные моменты.
1) Вам понадобится конструктор. http://qsp.su
Это сайт разрабов, там есть все что надо.
Или я залил на файлообменник конструктор.
http://www.fayloobmennik.net/2728179
2) Создаете новую игру. Создаете стартовую локацию, она должна быть в самом верху. Пишите там код. Весь код записываете в верхнее правое окошко с названием "Выполнить при посещении." Создание локаций F7 или зеленый крестик в меню.
KILLALL
USEHTML=1
SHOWSTAT 1
SHOWOBJS 1
$ONGLOAD='loadg'
$ONGSAVE='saveg'
$ONNEWLOC = 'LOCA'
$onobjsel = 'onobjsel'
showinput 0
$counter = 'counter'
$USERCOM='ОбработкаВвода'
debug=1
потом создаете локации
loadg
saveg
LOCA
onobjsel
counter
ОбработкаВвода
Вот вход в игру готов.
Создадим квартиру с двумя комнатами. Делаем две локации, назовем к примеру bedroom и sitroom
В стартовой локации пишем
act 'ИГРАТЬ':gt'bedroom'
!В локации bedroom пишем такой код.
'<center><B>Спальная</B></center>'
'Ваша спальная комната.'
act 'Идти в гостинную':gt'sitroom'
!В локации sitroom пишем такой код.
'<center><B>Гостинная</B></center>'
'Это гостинная комната, тут стоит диван, телевизор и стол.'
act 'Идти в спальную':gt'bedroom'
Вуаля. У вас есть игра с двумя комнатами между которыми можно перемещатся.
Если кому то будет интересно буду и дальше учить как из кирпичиков создать игру.
Если хотите что бы у вас отображалось и считалось время. То в локации комнат вставте такой код.
minut = minut + 1
clr
gs'stat'
Создайте новую локацию stat
и в нее вставте следующий код.
if minut >= 60:
:loopmin
set hour = hour + 1
set minut = minut - 60
if minut >= 60:
jump 'loopmin'
end
end
if hour >= 24:
:loop
set day = day + 1
set week = week + 1
set hour = hour - 24
if hour >= 24:
jump 'loop'
end
end
if minut < 10:set $nilmin = '0'
if minut >= 10:set $nilmin = ''
pl'Время <B><<hour>></B> часов <B><<$nilmin>><<minut>></B> минут'
Теперь у вас будет считатся и показыватся в окне дополнительного описания время. Стартовое время не заданно поэтому отсчет пойдет с 0 часов с 0 минут. Из подобных кирпичей можно собрать полноценную игру даже не задумываясь что делаешь.
Поймите, не надо сидеть вычесывать методы из головы, все уже есть. Берите кирпичи и сторойте, я подскажу.
Характеристики ГГ. Это вещь очень тонкая и щекотливая. Нельзя просто вставить какой нибудь параметр просто так. Параметры должны быть связаны между собой. И они должны заставлять игрока удовлетворять потребности, а не сидеть на месте.
Например здоровье, сон и голод. Если сон равен нулю то будет падать здоровье, если голод равен нулю то опять же будет падать здоровье. Если здоровье дойдет до нуля то конец игры.
Сделать все это не сложно.
Перепишите этот код в локации stat
if hour >= 24:
:loop
set day = day + 1
set week = week + 1
set hour = hour - 24
if hour >= 24:
jump 'loop'
end
end
следующим образом.
if hour >= 24:
:loop
set day = day + 1
set week = week + 1
set hour = hour - 24
son = son - 1
golod = golod - 1
if hour >= 24:
jump 'loop'
end
end
if son <0:set health = health - 1&set son = 0
if golod <0:set health = health - 1&set golod = 0
if health <= 0:
gt'GAMEOVER'
exit
end
!И в конце добавте строчки
pl'Здоровье <<health>>'
pl'Сон <<son>>'
pl'Голод <<golod>>'
Создайте локацию GAMEOVER в которой в скобочках напишите 'Кибздец котенку, вы щелнули ластами и вашу тушку закопали.'
Но теперь если вы войдете в игры вы сразу же откините копыта. Поэтому в начальной локации добавим код health = 100
Что бы повысить сон создайте кровать в локации bedroom вставив этот код.
'В небольшой комнате стоит ваша двухспальная <a href="exec:GT ''bed''">кровать</a>.'
Создайте саму кровать. Это будет локация bed
Вставте туда этот код.
clr
gs'stat'
'Вы лежите на кровати.'
if son > 10:
'Спать почему то не хочется.'
end
if son <= 10:
act 'Раздется и лечь спать':gt'bed2'
end
act 'Встать с кровати':gt'bedroom'
Создайте локацию bed2 и вставте туда этот код.
set health = health + 5
'Вы спите и вам ничего не снится.'
:loopson
set minut = minut + 1
set stime = stime + 1
if stime = 60:set stime = 0&set son = son + 3
clr
gs'stat'
if son > 23:
'Вы выспались'
act 'Встать с кровати':gt'bedroom'
else
jump 'loopson'
end
С голодом все гораздо проще.
Вставте эту кнопку в локацию sitroom
act 'Есть (15 мин)':
cla
set minut = minut + 15
if golod >= 20:
'Вы объелись и глядеть не можете на еду'
end
if golod < 20:
set golod = golod + 20
'Вы положили щей в тарелку и лихо их навернули.'
end
act 'Встать из за стола и вымыть посуду':gt'sitroom'
end
Пожалуйста, голод и сон готовы.
1) Вам понадобится конструктор. http://qsp.su
Это сайт разрабов, там есть все что надо.
Или я залил на файлообменник конструктор.
http://www.fayloobmennik.net/2728179
2) Создаете новую игру. Создаете стартовую локацию, она должна быть в самом верху. Пишите там код. Весь код записываете в верхнее правое окошко с названием "Выполнить при посещении." Создание локаций F7 или зеленый крестик в меню.
KILLALL
USEHTML=1
SHOWSTAT 1
SHOWOBJS 1
$ONGLOAD='loadg'
$ONGSAVE='saveg'
$ONNEWLOC = 'LOCA'
$onobjsel = 'onobjsel'
showinput 0
$counter = 'counter'
$USERCOM='ОбработкаВвода'
debug=1
потом создаете локации
loadg
saveg
LOCA
onobjsel
counter
ОбработкаВвода
Вот вход в игру готов.
Создадим квартиру с двумя комнатами. Делаем две локации, назовем к примеру bedroom и sitroom
В стартовой локации пишем
act 'ИГРАТЬ':gt'bedroom'
!В локации bedroom пишем такой код.
'<center><B>Спальная</B></center>'
'Ваша спальная комната.'
act 'Идти в гостинную':gt'sitroom'
!В локации sitroom пишем такой код.
'<center><B>Гостинная</B></center>'
'Это гостинная комната, тут стоит диван, телевизор и стол.'
act 'Идти в спальную':gt'bedroom'
Вуаля. У вас есть игра с двумя комнатами между которыми можно перемещатся.
Если кому то будет интересно буду и дальше учить как из кирпичиков создать игру.
Если хотите что бы у вас отображалось и считалось время. То в локации комнат вставте такой код.
minut = minut + 1
clr
gs'stat'
Создайте новую локацию stat
и в нее вставте следующий код.
if minut >= 60:
:loopmin
set hour = hour + 1
set minut = minut - 60
if minut >= 60:
jump 'loopmin'
end
end
if hour >= 24:
:loop
set day = day + 1
set week = week + 1
set hour = hour - 24
if hour >= 24:
jump 'loop'
end
end
if minut < 10:set $nilmin = '0'
if minut >= 10:set $nilmin = ''
pl'Время <B><<hour>></B> часов <B><<$nilmin>><<minut>></B> минут'
Теперь у вас будет считатся и показыватся в окне дополнительного описания время. Стартовое время не заданно поэтому отсчет пойдет с 0 часов с 0 минут. Из подобных кирпичей можно собрать полноценную игру даже не задумываясь что делаешь.
Поймите, не надо сидеть вычесывать методы из головы, все уже есть. Берите кирпичи и сторойте, я подскажу.
Характеристики ГГ. Это вещь очень тонкая и щекотливая. Нельзя просто вставить какой нибудь параметр просто так. Параметры должны быть связаны между собой. И они должны заставлять игрока удовлетворять потребности, а не сидеть на месте.
Например здоровье, сон и голод. Если сон равен нулю то будет падать здоровье, если голод равен нулю то опять же будет падать здоровье. Если здоровье дойдет до нуля то конец игры.
Сделать все это не сложно.
Перепишите этот код в локации stat
if hour >= 24:
:loop
set day = day + 1
set week = week + 1
set hour = hour - 24
if hour >= 24:
jump 'loop'
end
end
следующим образом.
if hour >= 24:
:loop
set day = day + 1
set week = week + 1
set hour = hour - 24
son = son - 1
golod = golod - 1
if hour >= 24:
jump 'loop'
end
end
if son <0:set health = health - 1&set son = 0
if golod <0:set health = health - 1&set golod = 0
if health <= 0:
gt'GAMEOVER'
exit
end
!И в конце добавте строчки
pl'Здоровье <<health>>'
pl'Сон <<son>>'
pl'Голод <<golod>>'
Создайте локацию GAMEOVER в которой в скобочках напишите 'Кибздец котенку, вы щелнули ластами и вашу тушку закопали.'
Но теперь если вы войдете в игры вы сразу же откините копыта. Поэтому в начальной локации добавим код health = 100
Что бы повысить сон создайте кровать в локации bedroom вставив этот код.
'В небольшой комнате стоит ваша двухспальная <a href="exec:GT ''bed''">кровать</a>.'
Создайте саму кровать. Это будет локация bed
Вставте туда этот код.
clr
gs'stat'
'Вы лежите на кровати.'
if son > 10:
'Спать почему то не хочется.'
end
if son <= 10:
act 'Раздется и лечь спать':gt'bed2'
end
act 'Встать с кровати':gt'bedroom'
Создайте локацию bed2 и вставте туда этот код.
set health = health + 5
'Вы спите и вам ничего не снится.'
:loopson
set minut = minut + 1
set stime = stime + 1
if stime = 60:set stime = 0&set son = son + 3
clr
gs'stat'
if son > 23:
'Вы выспались'
act 'Встать с кровати':gt'bedroom'
else
jump 'loopson'
end
С голодом все гораздо проще.
Вставте эту кнопку в локацию sitroom
act 'Есть (15 мин)':
cla
set minut = minut + 15
if golod >= 20:
'Вы объелись и глядеть не можете на еду'
end
if golod < 20:
set golod = golod + 20
'Вы положили щей в тарелку и лихо их навернули.'
end
act 'Встать из за стола и вымыть посуду':gt'sitroom'
end
Пожалуйста, голод и сон готовы.
Спасибо за урок. Ждём следующий))
ОтветитьУдалитьСкажите что интересует. И я дам киричики для постройки. Все на базе ЭТО и Завоевания, принцип у них одинаковый, разобраться в них будет не сложно. Я сам делаю игры по кирпичам. Только кирпичи сам собираю, а тут готовые решения выкладываю.
Удалитьну, если уж до конца голосования ещё неделя.. - будем проводить с пользой )
ОтветитьУдалитьДве комнаты у нас есть. Но нет ГГ!
- создаём - ? с парой характеристик - сон и голод..
Легко. Только вот что есть сон? И что есть голод? На что они влияют и что будет если сон и голод по нулям?
Удалитьаха. - как-то так.. пока )
Удалитьа в 11 часов раздался звонок в дверь. - это привезли холодильник, который мы заказали в интернет-магазине.
грузчики поставят холодильник в комнату и возьмут деньги за покупку.
в холодильнике будет храниться еда на ххх дней.
И в чем проблема? В локации стат пишите if hour = 11 and holodilnik = 0:set hokodilnik = 1&'в 11 часов раздался звонок в дверь. - это привезли холодильник, который мы заказали в интернет-магазине.
Удалитьгрузчики поставят холодильник в комнату и возьмут деньги за покупку.
в холодильнике будет храниться еда на ххх дней'
В локации sitroom вставить код
if hokodilnik = 1:'холодильник с запасом еды на ххх дней'
Отлично расписано, может тоже что нибудь текстовое написать.
ОтветитьУдалитьСпасибо большое за "кирпичики".
Небольшую базу данных на нем можно написать? Что по поводу лицензии на использование?
ОтветитьУдалитьБазы данных можно создавать массивами, я не умею пользоватся ими таким образом, делаю по другому. Просто храню данные в текстовых или числовых переменных. Лицензию даже не читал, но она есть на сайте разрабов. В посту самая первая ссылка.
УдалитьЭто все понятно - уже по ходу ковыряния в игре разобралась и со временем и с голодом и с предметами(тоже, кстати, отдельная песня). Но пожалуйста, подскажи по поводу массивов, а то уже столько раз непонятно из-за чего программки работают не так как хочется или, что бывает гораздо чаще - приходится лицезреть "белый экран". Методом научного тыка (путем многократного переделывания кода) выяснилось, что трабла именно в массивах, переходах на них и переходов из них, (по началу частенько забывала ставить $ перед args, если значение строчное (тоже надо бы уточнить для начинающих) - от сюда было немало багов, но многие задумки все ещё работают некорректно) а потому хотелось бы услышать советы и пояснения маэтро.
ОтветитьУдалитьУ меня тоже как раз с ними проблемы. Хотел сегодня задать, Этот вопрос, но ты опередила))
УдалитьМожно вопрос, а почему именно QSP?
ОтветитьУдалитьТолько поймите правильно, я не хочу разводить холливар о функционале и удобстве движков, или в чем-то вас убеждать. Просто сам я начал писать игрушку и выбрал Ren’Py, как простой, но гибкий (при желании, можно что угодно на Python сделать) и быстрый. Вот мне и интересно теперь, ваш выбор - это просто дело вкуса, или я что-то упускаю.
Почему, потому что он самый простой из всего что я видел, тот же инстед на питоне написанный по сравнению с куспом китайская грамота.
УдалитьСпасибо, понял. ) Удобство - вполне весомая причина.
УдалитьВау. А вот это интересно. Реально. Только есть такой вопрос, что нужно сделать, чтобы посмотреть "исходник" завоевания (ну или ЭТО, все равно). Или они являются чем-то отдельным и их нужно отдельно передавать? Если так, то буду признателен. Конечно если ты не держишь их в страшной тайне).
ОтветитьУдалитьКачай QGen:
Удалитьhttp://qsp.su/index.php?option=com_content&task=view&id=46&Itemid=56
И запускай через него игру (он на русском, так что проблем быть не должно) - увидишь весь код, как он есть. Паролей нет, все открыто - ползай хоть до посинения.
А как сделать, чтобы при выборе вещей в 'предметах', некий текст выводился в окно дополнительного описания?
ОтветитьУдалитьЯ делаю проще.
УдалитьВ стартовом меню пишеш
$onobjsel = 'onobj'
создаешь локацию onobj
в локации пишеш.
if $selobj='Навыки':
clr
gs'локация_с_описанием'
!или
pl'текст с описанием'
end
unselect
если текст с описанием вставил в предмет то локация с описанием не нужна. Или создаете локацию "локация_с_описанием" и туда вставляете pl'текст с описанием'
pl обозначает что текст будет выводится в дополнительном окне.
clr означает очистку дополнительного окна от всех описаний.
в одной локации пишешь
ОтветитьУдалитьusehtml = 1
addobj 'ч'
$onobjsel = 'ч'
другую называешь ч и пишешь внутри
if $selobj = 'ч':
unsel
pl 'tekst'
end
Спасибо! И сразу новый вопрос: как очистить это самое окно и заставить его обновляться после каждого перехода через локацию?
УдалитьЯ тупо в каждую локацию засовываю код с очисткой дополнительной локации и ссылку на дополнительную локацию в которой содержится описание.
Удалитьclr
gs'Локация_с_описанием'
Есть и другие способы, но по мне этот самый простой.
вопрос.почему когда я сохранаю игру мне выдаёт ошибку Инфо:ошибка записи
ОтветитьУдалитьа можно у вас видео курс по созданию игры заказать?
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьСпасибо, за урок. Только скажи, пожалуйста, как добавлять картинки к тексту? К примеру, заходишь в спальню и там её изображение.
ОтветитьУдалитькак с тобой связатся в вк или еще где? просто есть пару идей которые я никак реализовать не могу. уже весь плеш себе проел.
ОтветитьУдалить