Результаты поиска
| |
DinamoPower | Дата: Вторник, 09 Декабря 2014, 17:34 | Сообщение # 1 | Тема: Вопрос - Ответ (Game Maker) |
был не раз
Сейчас нет на сайте
| Кто может посоветовать пример, где (к примеру) после настройки персонажа(цвет волос, форма тела), при переходе в другую комнату, там где этот персонаж есть, все его характеристики оставались? Меня интересуют именно процесс сохранения данных между комнатах. Я возможно неправильно изъяснился.
|
|
| |
DinamoPower | Дата: Понедельник, 08 Декабря 2014, 18:27 | Сообщение # 2 | Тема: Вопрос - Ответ (Game Maker) |
был не раз
Сейчас нет на сайте
| LunarPixel, похоже я что-то неправильно делал, в любом случае спасибо!
|
|
| |
DinamoPower | Дата: Понедельник, 08 Декабря 2014, 18:08 | Сообщение # 3 | Тема: Вопрос - Ответ (Game Maker) |
был не раз
Сейчас нет на сайте
| LunarPixel, держите Yandex.disk
|
|
| |
DinamoPower | Дата: Понедельник, 08 Декабря 2014, 17:56 | Сообщение # 4 | Тема: Вопрос - Ответ (Game Maker) |
был не раз
Сейчас нет на сайте
| LunarPixel, а откуда взялось Цитата LunarPixel ( ) alarm[0]=-1 ? Я в коде такого не видел, на том месте где alarm[0]=-1 - (hsp==0). В любом случае уже пробовал вписывать смену спрайта в условие sprPlayerStand..
|
|
| |
DinamoPower | Дата: Понедельник, 08 Декабря 2014, 17:19 | Сообщение # 5 | Тема: Вопрос - Ответ (Game Maker) |
был не раз
Сейчас нет на сайте
| Anthem, даже без alarm'a анимация не хочет работать... Я походу уже разочаровался...
|
|
| |
DinamoPower | Дата: Понедельник, 08 Декабря 2014, 16:25 | Сообщение # 6 | Тема: Вопрос - Ответ (Game Maker) |
был не раз
Сейчас нет на сайте
| Цитата Anthem ( ) после такого кода ничего уже не запустится А как сделать так, чтобы и анимация была и alarm работал?
|
|
| |
DinamoPower | Дата: Воскресенье, 07 Декабря 2014, 21:58 | Сообщение # 7 | Тема: Вопрос - Ответ (Game Maker) |
был не раз
Сейчас нет на сайте
| jayreck, не помогло. Я думаю, стоит просто забить и пойти по более сложному пути: если игрок нажимает (KEY_ACTION) и при этом он рядом с objVirtyHelmet, появляется объект с той анимацией, которая нужна, он удаляется(игрок), а при завершении анимации в доп. объекте снова появляется игрок. Но я думаю, что есть наиболее простой способ(чтобы проиграть эту анимацию) и не такой тупой, но я не знаю в чем проблема ...
Добавлено (07 декабря 2014, 21:58) --------------------------------------------- Точней, если присмотреться, то за долю секунды, если кнопка движения(KEY_RIGHT) или (KEY_LEFT) зажаты и при этом нажата кнопка (KEY_ACTION) и если игрок рядом с objVirtyHelmet можно увидеть эту анимацию(если не менять код, а оставить как было). Из этого следует вывод, что что-то мешает этой анимации
Сообщение отредактировал DinamoPower - Воскресенье, 07 Декабря 2014, 22:24 |
|
| |
DinamoPower | Дата: Воскресенье, 07 Декабря 2014, 21:05 | Сообщение # 8 | Тема: Вопрос - Ответ (Game Maker) |
был не раз
Сейчас нет на сайте
| jayreck, ах да забыл сказать, скорость ставил, не помогало.(в create скорость изначально 1 стоит, ничего не менял) Дело в том, что лично мое предположение такое: из-за того, что objPlayer соприкасается с землей(objBlock), у него, в неподвижном состоянии стоит спрайт/анимация sprPlayerStand и тем самым другая анимация не воспроизводится, возможно что-то другое.
|
|
| |
DinamoPower | Дата: Воскресенье, 07 Декабря 2014, 15:16 | Сообщение # 9 | Тема: Вопрос - Ответ (Game Maker) |
был не раз
Сейчас нет на сайте
| Всем привет! В инете нашел код для качественного платформера: objPlayer = > Create Код //Set up some variables for certain speeds walksp=4; //Walking speed (4 pixels per frame) jumpsp=-14; //Jumping speed (negative because it goes up) grav=1; //Gravity strength (usually a small value) //These variables are actually used to move the player hsp=0; //Horizontal speed vsp=0; //Vertical speed ground=1; //Whether the player is on the ground
objPlayer = > step Код //Keyboard constants //We use these so we can just type the variables //instead of "keyboard_check(*)"
KEY_RIGHT=keyboard_check(vk_right); KEY_LEFT=keyboard_check(vk_left); KEY_JUMP=keyboard_check_pressed(vk_up); //This one's for variable jump height: KEY_FALL=keyboard_check_released(vk_up); //Now check if the player pressed left or right and move if (KEY_RIGHT) { hsp=walksp; //Walk right image_xscale=1; //Face right } if (KEY_LEFT) { hsp=-walksp; //Walk left image_xscale=-1; //Face left } //Stop moving when no keys are pressed if (!KEY_RIGHT and !KEY_LEFT) hsp=0; //Make sure we don't hit a wall if (place_meeting(x+hsp,y,objBlock)) { //Move until contact with the wall if (hsp!=0) while (!place_meeting(x+sign(hsp),y,objBlock)) x+=sign(hsp); hsp=0; } //Because we don't use hspeed, we got to move ourselves x+=hsp; //Now for vertical motion (jumping and falling) //Is the player in the air? if (place_meeting(x,y+1,objBlock)) grounded=1; else grounded=0; //Jump with the up key when on the ground if (KEY_JUMP and grounded) { vsp=jumpsp; } //If we're in air moving up and jump key is released, we remove //upward motion (so we fall and get variable jump height) if (KEY_FALL and !grounded and vsp<-1) vsp=-1; //Fall with gravity if (!grounded) vsp+=grav; //Now it's more complicated. //When hitting the ceiling, vertical speed must stop. //The if statement says, "if we hit the ceiling and are moving up" if (place_meeting(x,y+vsp,objBlock) && vsp<0) { //We must move up until contact with the ceiling while (!place_meeting(x,y+sign(vsp),objBlock)) y+=sign(vsp); vsp=0; } //But if we are moving down and hit the floor, we have to land if (place_meeting(x,y+vsp,objBlock) and vsp>0) { //Move so we hit the ground var cc; cc=vsp+1; //A counter, so we don't get an infinite loop //Move down until we hit the floor while (!place_meeting(x,y+1,objBlock) and cc>=0) y+=1; //Now ground the player grounded=1; vsp=0; } //Again, we're not using vspeed, so we have to move ourselves y+=vsp; //Animation - check what our sprite's state is and set accordingly if (grounded) //If we're grounded { if (hsp==0) //Then if we're not moving, change to stand sprite { sprite_index=sprPlayerStand; image_speed=0; //Don't animate } else //But if we are moving, change to walk sprite { //Reset image index if just now switching to walk sprite if (sprite_index!=sprPlayerWalk) image_index=0; sprite_index=sprPlayerWalk; image_speed=0.5; //Change this to whatever works for you } } else //If we're not grounded, change to in air sprite { sprite_index=sprPlayerInAir; image_speed=0; //Don't animate } На всякий случай - objBlock - солид, блок., sprPlayerInAir - анимация в воздухе., sprPlayerStand - анимация на месте., sprPlayerWalk - анимация движения. (это не "усовершенствованный" мною код, а оригинал) Потом добавил в create переменную Motion(не знаю почему я её так назвал), она отвечает за выключение действия кнопок KEY_RIGHT, KEY_LEFT, KEY_JUMP. То есть если motion=1 - персонаж может двигаться, если motion=0 - не может. И вот эта переменная мне понадобилась. Суть: если персонаж дотрагивается до определенного объекта, при нажатии на кнопку E (Я её добавил и назвал KEY_ACTION), он не сможет определенное время двигаться и проигрывается анимация, а потом снова сможет выполнять действия. Написал я этот код вот так: Код if place_meeting(x,y,objVirtyHelmet) // а это объект к которому нужно дотронуться { if (KEY_ACTION) { motion=0 sprite_index=sprHelmetAnim // это нужная анимация alarm[0]=30 } } В результате - нужное время двигаться не могу(то есть все верно), а анимация никак не проигрывается, подскажите, что делать? (Если что, могу скинуть полный код, но с моими дополнениями)(возможно неясно изложил проблему)
Сообщение отредактировал DinamoPower - Воскресенье, 07 Декабря 2014, 15:27 |
|
| |
|