![]() |
Re: Задачка!!!
Я незнаю или чтолибы ето меняет!!! Но в игре заставки токо вначяле, и в случяе проиграша!!! Тоесть невсегда, но вконце!!! Игра будет автоматически выключяться в случяе проиграша!!! И еше, для чево нужно указывать
while movieplaying(movie) and keydown(57)=0 Получяецца, заставка будет играть пока нажат пробел!!! |
Re: Задачка!!!
получается что затавку можно будет пропустить нажав пробел, или она сама кончится.
|
Re: Задачка!!!
Знаешь! Говорят, "Как хорошо помагать людям!!!", А я скажу, что "Как харашо, когда помагают тебе!!!!" !!!!!!!!
|
Re: Задачка!!!
В учебнике Скавена(?) был описан способ организации именно с заставками, только там подразмевалось не физическое выделение N буферов, а селекция алгоритма рисования на основе флага. Т.е. при флаг=1 рисуем квадрат, при флаг=2 рисуем круг и т.п.
Правда мне больше нравится вызов функций. Хотя с другой стороны это накладывает свои трудности: необходимо следить за адекватным возвращением и организовать логику так, чтобы это не повлекло переполнение стека возвратов, утерянные модели и разнообразный мусор. Мою привычку объясняет любовь к С++ и отсутствие лит-ры по b3d в то время, когдя я его изучал. |
Re: Задачка!!!
А у меня ешо вопросы!!!! Гы!!!
1.А хотите я вам покажу свою игру??? 2.А если я вложу две маленькие песенки (до 50КВ вместе) в формате миди, хтоныть может их перефоратить на МР3 ??? 3.Как сделать ефект взрива, если есть несколько его кадров в одном рисунке??? |
Re: Задачка!!!
1. Ессено хотим!
2. ХЗ 3. уточнить нада, 2д, 3д режим? select режим case 2д загружаем анимированный рисунок loadanimimage() рисуем рисунок изменяя кадр drawimage explode,x,y,frame case 3д загружаем анимированную текстуру loadanimtexture() создаем спрайт в главном цикле натягиваем на спрайт(billboard) текстуру изменяя фраме entitytexture spr,expl,frame текстуру желательно грузить добавляя к флагу 256 end select подробнее скажу только как узнаю режим игры(2d, 3d). |
Re: Задачка!!!
Вложений: 1
Игра в 3Д стиле!!! Сюжет такой!!! Ти ставишь мину, какойто парень наривается и БАХ!!! Ето то чем я хотел пользоваться:
If entitycillided() Then ........ EndIf Токо ефект недолжен повторяться!!! Раз, и ждет колизии!!! Здесь песенки и аним.текстура!!! :-) |
Re: Задачка!!!
Еще, баг!!! Достали блин!!! Я незнаю как дклать так, чтоб по окончании звука, он повторялся!!! И если ето недолго, может раскажите, как делать меню??? Обичное!!!
|
Re: Задачка!!!
ну стандартно
[blitz] Graphics 640,480,32,2 SetBuffer BackBuffer() [/blitz] создаем массив под пункты меню: название пункта и цвет [blitz] Graphics 640,480,32,2 SetBuffer BackBuffer() Dim item$(10) Dim iColor(10) [/blitz] заполняем пункты, инициализируем необходимые переменные и грузим шрифт. [blitz] item(0)="New Game" item(1)="Options" item(2)="About" item(3)="Exit" ttmi=3 SetFont LoadFont("Courier New Cyr",24,1) [/blitz] ttmi - количество пунктов. ну и собственно [blitz] While 1 Cls y=50 si=0 For i=0 To ttmi If iColor(i)<255 Then iColor(i)=iColor(i)+24 If iColor(i)>255 Then iColor(i)=255 If Abs(MouseX()-320)<100 And Abs(MouseY()-y)<10 Then si=i:iColor(i)=iColor(i)-32 If iColor(i)<0 Then iColor(i)=0 Color 255,iColor(i),iColor(i) Text 320,y,item(i),1,1 y=y+24 Next If MouseDown(1) Select si Case 0 Exit Case 3 End End Select EndIf Color 0,255,0 Text 10,10,item(si) Flip Wend [/blitz] цикл, 1 - оно всегда 1, такчто цикл будет крутиться вечно отчищаем экран, задаем Y - позиция пункта меню по оси Y, присваиваем переменной SI значение 0. переменная SI означает выбранный пункт меню. запускаем цикл, где перебираем все пункты. там: увеличиваем значение цвет пункта на 24 проверяем не превысило ли оно 255, если превысило то присваиваем 255 [blitz] If Abs(MouseX()-320)<100 And Abs(MouseY()-y)<10 Then si=i:iColor(i)=iColor(i)-32 [/blitz] ето означает что выбран I-тый пункт. уменьшаем значение цвета I-того пункта на 32. выбранный пункт становится i-тым (переменную si помниш?) далее: [blitz] Color 255,iColor(i),iColor(i) Text 320,y,item(i),1,1 y=y+24 [/blitz] устанавливаем цвет пункта, чем меньше цвет тем пункт краснее. рисуем пункт, увеличиваем y на 24 (щтоб следующий пункт рисовался ниже). [blitz] If MouseDown(1) Select si Case 0 Exit Case 3 End End Select EndIf [/blitz] по нажатию на мыш, проверяем выбранный пункт, и в зависимости от значения Si делаем что, то, например если si равно трем (выход) то завершаем работу программы. [blitz] Color 0,255,0 Text 10,10,item(si) [/blitz] ну это просто чтоб показать что работает. весь код: [blitz] Graphics 640,480,32,2 SetBuffer BackBuffer() Dim item$(10) Dim iColor(10) item(0)="New Game" item(1)="Options" item(2)="About" item(3)="Exit" ttmi=3 xit=0 SetFont LoadFont("Courier New Cyr",24,1) While 1 Cls y=50 si=0 For i=0 To ttmi If iColor(i)<255 Then iColor(i)=iColor(i)+24 If iColor(i)>255 Then iColor(i)=255 If Abs(MouseX()-320)<100 And Abs(MouseY()-y)<10 Then si=i:iColor(i)=iColor(i)-32 If iColor(i)<0 Then iColor(i)=0 Color 255,iColor(i),iColor(i) Text 320,y,item(i),1,1 y=y+24 Next If MouseDown(1) Select si Case 0 Exit Case 3 End End Select EndIf Color 0,255,0 Text 10,10,item(si) Flip Wend [/blitz] |
Re: Задачка!!!
Спасибо!!! Но как делать звук!!! Я вставляю песню, она играет! А когда она кончяется, я хочю её снова проиграть!!! И некак неполучяется!!! А с тем взривом, тож нелади!!!
Explo=LoadAnimTexture("boomstrip.jpg",256,64,64,0, 39) BomSprite=CreateSprite() А в главном цикле пишу EntityTexture Explo,BomSprite,39 А оно мне ошыбку выдаёт!!! |
Re: Задачка!!!
песня:
chMusic=PlayMusic("Ghost live score.mp3") в главном цикле if ChannelPlaying(chMusic)=0 then chMusic=PlayMusic("Ghost live score.mp3") взрыв: ессено он тебе будет ошибку выдавать, 39-ого кадра нет. 0..38 - как раз 39 (параметр функции лоаданимтекстуре) в главном цикле надо ихменять значемине от 0 до 38. ночью скину пример. |
Re: Задачка!!!
Спасибо! Окей!!!
От после етого! Зделаю заставки!!! Повтыкаю!!! И выложу игру!!! От я конечно попробую всё сжать, но сейчяс весит около 9МВ!!! Моя первая игра!!! С вашими советами и моими усилиями!!! УРААА!!!! |
Re: Задачка!!!
А где пример??? :( !!
Я уж повсякому пробовал!!! Но сейчяс спрайт есть, а текстуры на нём нет!!! Белый такой квадратик!!! |
Re: Задачка!!!
Вложений: 2
извиняй, вот:
|
Re: Задачка!!!
Спасибо! Попробую разобраться!!!
|
Часовой пояс GMT +4, время: 04:30. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot