-
Postów
15 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez SimianVirus8
-
Kreator wyglądu oraz pliki .ini
SimianVirus8 odpowiedział(a) na SimianVirus8 temat w Pytania początkujących
Więc próbowałem to zrobić na tablicach, ale bez zmiennych globalnych się nie obeszło. Chciałem użyć tablic globalnych ale pojawiał się błąd, prawdopodobnie dlatego, że oPlayer nie mógł zczytać wartości. Kod działa, ale wygląda pogmatwanie i znając moje sposoby "programowania", można go skrócić o ładne pare linijek, co wpłynie także na optymalizacje. Wykorzystałem: zmienne globalne, tablice. oSuwakButtonColorR: step GML if place_meeting(x,y,oMouse) and mouse_check_button(mb_left){ x = mouse_x; } wyrownanie=x //zmienna pomocnicza, zeby wyrownac do 0; bez tego, pozycja x=168 global.colorR=wyrownanie-168 global.color[0]=global.colorR if global.colorR>255 then x = oSuwakColorR.x+263 //Zabezpieczenie przed wyjechaniem znacznika if global.colorR<0 then x = oSuwakColorR.x+8 //Zabezpieczenie przed wyjechaniem znacznika if global.colorR<0 then global.colorR=0 //ustawienie granic koloru if global.colorR>255 then global.colorR=255 //ustawienie granic koloru oSuwakColorR: step GML image_blend=make_colour_rgb(global.colorR,0,0) oPlayer: step GML //kolor global.color[0]=global.colorR global.color[1]=global.colorG global.color[2]=global.colorB image_blend= make_color_rgb(global.color[0],global.color[1],global.color[2]) //Kolor skory Zdjęcie pomocnicze, ze względu na występowane obiekty: http://zapodaj.net/images/a08bee80e877e.png Pytanie, a raczej prośba. Mógłby ktoś pomóc, lub wskazać co można tutaj zmienić. -
Kreator wyglądu oraz pliki .ini
SimianVirus8 odpowiedział(a) na SimianVirus8 temat w Pytania początkujących
Dobra, dzięki za szybkie wytłumaczenie. Myśle, że wykorzystam do tego wszystkiego tablice albo listy. -
Witam. Chcę zrobić kreator postaci. Jestem na samym początku, czyli planowanie w czym trzymać wartości. Rozmyślałem nad zmiennymi globalnymi, tablicami oraz plikami .ini. To ostatnie podoba mi się najbardziej. Mam dwa pytania: a ) W czym najlepiej to zrobić, chodzi mi o waszą opinię. b ) Jak dodawać liczbę do wartości, która istnieje w pliku .ini . Mam to: GML ini_open( 'ModCharColor.ini' ) ini_write_real('Color','colorr',255); ini_write_real('Color','colorg',155); ini_write_real('Color','colorb',125); ini_close(); I chciałbym aby wartość "155" z GML ini_write_real('Color','colorg',155); zwiększyła się np. o 5. Próbowałem z GML ini_write_real('Color','colorg',+5); // Zamieniło "155" na "5" ini_write_real('Color','colorg',+=5); // Wywaliło błąd Jeszcze jedno pytanie, żeby nie robić kolejnego postu. Czy można zrobić tablice w taki sposób jak w C++ czyli tab1={2,5,4,7}; . Zamiast robić definiować każdą wartość osobno, czyli: tab1[0]=2 tab1[1]=5 tab1[2]=4 tab1[3]=7
-
Animacja oraz kilka pytań
SimianVirus8 odpowiedział(a) na SimianVirus8 temat w Pytania początkujących
Dzięki za wyjaśnienia, z pewnością ułatwi mi to pare rzeczy :) -
Animacja oraz kilka pytań
SimianVirus8 odpowiedział(a) na SimianVirus8 temat w Pytania początkujących
Dzięki. Po 30-40 minutowym wytężeniu mózgu osiągnąłem pożądany efekt. Zrobiłem tak ja radziłeś, czyli własna zmienna. Jeśli ktoś by miał też z tym kłopot, to prosze bardzo. GML if cooldown=0 { anim360 += 1 // dodawanie po jednej klatce cooldown=1 // szybkosc obracania } cooldown=max(0,cooldown-1) // Magiczna komenda Threefa, działa i tak ma byc if anim360 = 60 { // Gdy osiagnie 60 klatke zacznij od nowa anim360 = 0 } if mouseenter = 0 { // wyzerowanie animacji anim360 = 0 } Jeszcze raz dzięki za pomoc :) -
Witam. Problem główny: Mam sprite, który jest animacją złożoną z 60 klatek. Chcę ją wywołać dzięki komendzie draw_[...]. Niestety gdy używam draw_sprite to pozostaje na subimg=1 i się nie rusza. Moje pytanie jest następujące. Jakiej komendy użyć aby narysować sprite wraz z animacją. Najmądrzejszym moim posunięciem [według mnie] było GML draw_sprite(sKabanLogo,1/60,self.x-230,self.y) no ale koniec końców, nie zadziałało. Pytania mnie nurtujące od dawna: 1.Czy używając komendy "instance_destroy()" w step, można zdefiniować obiekt, coś w deseń "instance_destroy(other)" ? 2.Czy istnieje komenda odpowiadająca bloczkowi "Mouse enter" i "Mouse leave"? Ponieważ za każdym razem kiedy chce użyć ją w step, musze zdefiniować własną zmienną "mouseenter = 1" i "mouseenter = 0" 3.Czy istnieje komenda, odwołująca się do myszki np. "Left pressed", która będzię działać dopiero gdy myszka jest na obiekcie, a nie globalnie? Gdy używam mb_left, bądź mouse_check_button_pressed to działa ona globalnie, nawet poza obiektem. 4.Czy istnieje komenda, odpowiadająca bloczkowi "Animation End", którą będę mógł wykorzystać w Step ? Z góry dziękuje za poświęcony czas :)
-
Sprawdzanie czy obiekt istnieje
SimianVirus8 odpowiedział(a) na SimianVirus8 temat w Pytania początkujących
Dzięki, ta komenda rozwiąże połowe moich problemów :) [instance_exists()]. -
Witam. Zwięźle i krótko. Czy istnieje komenda, dzięki której będę mógł sprawdzić czy w roomie, istnieje dany obiekt ? Chodzi mi o to, że jeśli nacisne "1" to tworzy mi się "M9". Wszystko git gdyby nie to, że moge ich sobie natworzyć ile dusza zapragnie. Mniej więcej coś takiego: 1.Sprawdź czy jest obiekt -> 2.Jeśli tak -> 3.Nie twórz ponownie
-
Ograniczone pole celowania
SimianVirus8 odpowiedział(a) na SimianVirus8 temat w Pytania początkujących
ANtY dobra wiadomość, nie masz raka mózgu, twój skypt działa jak należy, choć nie do końca go jeszcze rozumiem. Próbowałem pokombinować z każdym skryptem jaki mi napisaliście ale ANtY'iego spisał się rewelacyjnie. Dzięki za pomoc chłopaki, pewnie jeszcze nie raz tu wróce :P. -
Ograniczone pole celowania
SimianVirus8 odpowiedział(a) na SimianVirus8 temat w Pytania początkujących
Jak narazie przerobiłem troche skrypt ANtY'iego, mianowicie na taki: GML if(image_angle <= 90) image_angle = point_direction (x,y,mouse_x,mouse_y) oraz zmieniłem sprite ręki: http://zapodaj.net/948f102e906b6.png.html , bo Threef miał racje, co do minusowego "angle", którego nie idzie ustawić, więc stopień 0, musiałem ustawić poprzez sprite. Mniej więcej oto mi chodzi w tym zdaniu: Początkowy sprite: http://zapodaj.net/65a453b4910fc.png.html Po zmianie: http://zapodaj.net/a1679dd5e8215.png.html I tu kolejny błąd, którego nie udało mi się rozwiązać. Kiedy sprite broni wyjedzie poza 90 stopni, skrypt GML image_angle = point_direction (x,y,mouse_x,mouse_y) przestaje działać, co uniemożliwia powrót do miejsca, gdzie wolno celować. Co do "angle_difference()", nie mam pojęcia jak się z tym obchodzić, powpisywałem pare liczb, ale nic się nie działo, z radami pod "F12" też ciężko. -
Witam. Przydałaby mi się mała pomoc, mianowicie jak zrobić granice w celowaniu, żeby ręka nie latał wokół postaci. Lepiej załącze obrazek, bo z mojego ględzienia i tak nic pewnie nie wiadomo. http://zapodaj.net/6216e118df206.png.html Nie mam pojęcia od czego zacząć, żeby takową granice utworzyć. Oczywiście ręka jest już "przyspawana" do postaci i podąża za kursorem. Step w broni GML // Przyspawanie do postaci x=oKaban.x+36 y=oKaban.y-49 // Obrot w strone pola widzenia bohatera image_angle = point_direction (x,y,mouse_x,mouse_y) // Strzelanie if mouse_check_button(mb_left) and ammo>=1 { if alarm[0] = -1 then alarm[0] = 10; }
-
Odtwarzanie animacji na "solid"
SimianVirus8 odpowiedział(a) na SimianVirus8 temat w Pytania początkujących
Użyłem twojego kodu GML // Animacje if(Jan.sprite_index==Jan_right) { sprite_index=Miecz1_right; image_speed = .2; image_xscale = 1; } if(Jan.sprite_index==Jan_up) { sprite_index=Miecz1_up; image_speed = .2; image_xscale = 1; } if(Jan.sprite_index==Jan_down) { sprite_index=Miecz1_down; image_speed = .2; image_xscale = 1; } if(Jan.sprite_index==Jan_left) { sprite_index=Miecz1_left; image_speed = .2; image_xscale = 1; } if(Jan.sprite_index==Jan_stand) { sprite_index=Miecz1_stand; image_speed = .2; image_xscale = 1; } -
Odtwarzanie animacji na "solid"
SimianVirus8 odpowiedział(a) na SimianVirus8 temat w Pytania początkujących
Ooo, dzięki koleś, o to chodziło, cud, miód i orzeszki. -
Odtwarzanie animacji na "solid"
SimianVirus8 odpowiedział(a) na SimianVirus8 temat w Pytania początkujących
Wpadłem na pomysł, by napisać kod, że jeśli Miecz napotka "solid" to ma ustawiony sprite na standardowy, tak jak tutaj GML if((!keyboard_check(ord("D")) && !keyboard_check(ord("A")) && !keyboard_check(ord("S")) && !keyboard_check(ord("W") ))) { image_speed = 0; sprite_index = Miecz1_stand; } Próbuje już od pół godziny i nadal nie wiem jak napisać tą komende, próbowałem już z GML !place_free GML place_meeting ale nie wychodzi -
Witam. Po dwóch latach, postanowiłem znowu zacząć się bawić w gm i znowu napotykam problemy na początku tworzenia. Ostatnio pomógł mi użytkownik z Czech Ereg, za co mu serdecznie dziękuje, bo z jego przykładów korzystam do dziś. Mianowicie buguje mi się miecz [niepoprawne animacje] na obiekcie z włączonym "solid", a bohater, na którym użyłem identycznej komendy, działa jak należy. Przesyłam film dla lepszego zrozumienia i oczywiście skrypty w gml'u. Skrypt miecza: GML // Animacje if(keyboard_check(ord("D")) && place_free(x+4,y)) { sprite_index = Miecz1_right; image_speed = .2; image_xscale = 1; } if(keyboard_check(ord("A")) && place_free(x-4,y)) { sprite_index = Miecz1_left; image_speed = .2; image_xscale = 1; } if(keyboard_check(ord("W")) && place_free(x,y+4)) { sprite_index = Miecz1_up; image_speed = .2; image_xscale = 1; } if(keyboard_check(ord("S")) && place_free(x,y-4)) { sprite_index = Miecz1_down; image_speed = .2; image_xscale = 1; } if((!keyboard_check(ord("D")) && !keyboard_check(ord("A")) && !keyboard_check(ord("S")) && !keyboard_check(ord("W") ))) { image_speed = 0; sprite_index = Miecz1_stand; } // Spawn x = Jan.x; y = Jan.y; Skrypt bohatera [Jan]: GML // Sterowanie i Animacja if(keyboard_check(ord("D")) && place_free(x+4,y)) { x+=4; sprite_index = Jan_right; image_speed = .2; image_xscale = 1; } if(keyboard_check(ord("A")) && place_free(x-4,y)) { x-=4; sprite_index = Jan_left; image_speed = .2; image_xscale = 1; } if(keyboard_check(ord("W")) && place_free(x,y-4)) { y-=4; sprite_index = Jan_up; image_speed = .2; image_xscale = 1; } if(keyboard_check(ord("S")) && place_free(x,y+4)) { y+=4; sprite_index = Jan_down; image_speed = .2; image_xscale = 1; } if((!keyboard_check(ord("D")) && !keyboard_check(ord("A")) && !keyboard_check(ord("S")) && !keyboard_check(ord("W") ))) { image_speed = 0; sprite_index = Jan_stand; } Znajdzie się dobra duszeczka, która wyjaśni o co biega ?