-
Postów
375 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
2
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez cysior
-
Zatrzymanie działania obiektów w roomie
cysior odpowiedział(a) na Styxu2153 temat w Pytania początkujących
możesz zrobić to na zmiennych globalnych. np. w create bohatera global.czasnaprzerwe=false. Dodajesz do każdego obiektu, który chcesz stopować w kazdy event w którym chcesz stopować wykonywanie kodu. GML if global.czasnaprzerwe=false { akcja w danym evencie // step, draw co tam jeszcze chcesz } Musisz pamiętać, aby w tym obj w którym chcesz stopować daj kod : GML if global.czasnaprzerwe=false { if keyboard_check_pressed(vk_escape) { global.czasnaprzerwe=true } //kod, który się wykonuje gdy nie ma przerwy } else { if keyboard_check_pressed(vk_escape) { global.czasnaprzerwe=false } } E: Jeżeli chcesz ciagle rysować bohatera i inne rzeczy, to nie dawaj opcji stopu w drawie E2: Jeżeli nie używasz gm studio, to masz w gm pod objects,rooms, game info - "Global Game Settings". I tam w zakładce Other odznacz "Let <ESC> end the game." E3: Pomysł kaszan'a88 w praktyce GML if keyboard_check_pressed(vk_escape) { global.czasnaprzerwe= !global.czasnaprzerwe; } if global.czasnaprzerwe=false { //kod, który się wykonuje gdy nie ma przerwy } else { // kod, który się wykonuje gdy jest przerwa } -
http://courses.engr.illinois.edu/ece390/re...nt/varfont.html Dodawaj do zmiennej szerokość czcionki w pixelach, jeżeli osiągnie wartość wiekszą niż szerokość room'a lub view'a dodawaj "#" do stringu który rysujesz oraz zeruj zmienną licząca szerokość tekstu pisanego. E: Warto zapisywać gdzieś wartości poprzednich linijek, gdyż możesz się tam cofnąć.
-
Bardzo dziękuję za waszą pomoc. Temat do zamknięcia.
-
Witam. Mam listę, która przechowuję obj classy A lista.Add(obj1) itd. // obj1 = new B(); ; obj1= new C(); public abstract class A { } public class B:A { } public class C:A { } Chciałbym dodawać ich nazwy(obj1,obj2) do stringu, lecz nie mam pojęcia jak to robić, próbowałem coś takiego ale wtedy tekst == "windowsgame.Game1+Bwindowsgame.Game1+C" foreach(A obj in lista) { tekst+=obj.ToString(); } Z góry dzięki za pomoc.
-
Ustal sobie jakąś zmienną np. global.blokada=false, kiedy chcesz zablokować to ustal jej wartość np. global.blokada=true. I kod dot. wciskania klawiszy poprzedz if (global.blokada == false); { //kod na wciskanie } else { }
-
[c#] sprawdzanie TAB - [problem rozwiązany]
cysior odpowiedział(a) na cysior temat w .NET Framework (C#, ASP.NET itp.)
Dzięki wam za pomoc. Mam jeszcze takie pytanie, jak najlepiej sprawdzać czy CAPSLOCK jest w użyciu ? @E: Dzięki Zamykam . -
[c#] sprawdzanie TAB - [problem rozwiązany]
cysior odpowiedział(a) na cysior temat w .NET Framework (C#, ASP.NET itp.)
Probowałem już wcześniej z KeyChar, ale to działa prawidłowo z stringami typu "a", "1", "(" itd. Jeżeli sobie wpiszę if (e.KeyChar == Keys.Tab) { pw += "1"; MessageBox.Show(pw); }; To podkreśla mi cała wartość nawiasu w stawianym warunku. Error 1 Operator '==' cannot be applied to operands of type 'char' and 'System.Windows.Forms.Keys' -
[c#] sprawdzanie TAB - [problem rozwiązany]
cysior opublikował(a) temat w .NET Framework (C#, ASP.NET itp.)
Witam. Dopiero zaczynam swoją przygodę z C# i postanowiłem napisać prosty programik, który wykonuje akcje kiedy klawisz TAB zostanie naciśnięty. Niestety nie wiem z jakiego powodu visual wyszukuję bład i podkreśla e.keycode. Treść błędu : Error 1 'System.Windows.Forms.KeyPressEventArgs' does not contain a definition for 'KeyCode' and no extension method 'KeyCode' accepting a first argument of type 'System.Windows.Forms.KeyPressEventArgs' could be found (are you missing a using directive or an assembly reference?) //kawałek kodu. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing.Imaging; namespace WindowsFormsApplication1 { public partial class Form1 : Form { string pw = ""; string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); public Form1() { InitializeComponent(); } private void Form1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyCode == Keys.Tab) { pw += "1"; MessageBox.Show(pw); }; } private void Form1_Load(object sender, EventArgs e) { } } } }; Z góry dzięki za pomoc ! -
Jakoś trafiam na tematy, które mi nie odpowiadają:D
-
Od 22:00 dziś? Bo i tak wiem, że nie wygrałem :D . Dopiero teraz wbiłem na gmclan. Wybacz! Moze dziś tak w południe zaczniemy? tak 15-16? Dziś od 17:00 Wraz z moim przeciwnikiem prosimy o ustalenie startu naszego pojedynku na 17:00
-
Ujawnienie ! Btw. Moj koncept art :D
-
Już to pisałem, walkover. Czekam pokornie na swój pojedynek w tabelce przegranych.
-
Tak jak w temacie, czy to możliwe za pomocą jakiś "trików" ? Z góry dzięki za odpowiedz.
-
Postaram się to uczynić, jednak niczego nie obiecuje ;/
-
Ciekawy pomysł, dobre wykonanie. Myślę, że z nie ma sensu tego przedłużać, walkover !
-
Jak się bawić to się bawic ... Ja też mogę zacząć od 0:00
-
Jeszcze nie wiadomo czy Elevator cię czasem nie pokona, więc nie martw się na zapas.
-
Dzięki wam wszystkim za odpowiedzi, teraz postaram sie rozwiązać problem poprzez materiały dostarczone przez was :P
-
global.copozl=collision_line(x,y,0,y,obj_2,1,1) Jezeli x gracza(x >0), to start czyli lnia sprawdzania powinna isc od prawej strony do lewej, a na sytuacji 1,3 i 4 ( na obrazku) to nie działa tak jak chce, bo jak widac przechodzi przez objekty.
-
Nie dokońca rozumiem dlaczego to nie działa, prosze o naprowadzenie. Rysunek przedstawiający mój problem. https://www.dropbox.com/s/genpm09lfeugsph/pomocy.png Step GML global.copozp=collision_line(x,y,room_width,y,obj_2,1,1) global.copozl=collision_line(x,y,0,y,obj_2,1,1) Draw GML draw_line(x,y,global.copozp.x,y) draw_line(x,y,global.copozl.x+32,y)
-
@up chodzi mi bardzej o coś takiego A jak miałeś to na myśli to wybacz. I tu pojawia się moje pytanie czy lepiej to robić w jednym obj czy tworzyć objekty. Bo kiedyś miałem kod, który sprawdzał kazda kratkę i jak coś znalazł to sprawdzał czy jest tam kilka itemów a potem dzielił i rysował. Niestety fps widocznie spadały. Wpadłem na taki pomysł GML var sta,dod,dabs; for(n=0;n<100;n+=1) for(m=0;m<100;m+=1) { pomoc=string_delete(global.map0[n,m],1,string_pos("@",global.map0[n,m])) // pomoc to id itemów na danej kratce np. = " 1024,1030," if string_length(pomoc)>0 { for(g=1;g<=string_count(",",pomoc);g+=1) { pomoc2[g]=string_copy(pomoc,-5+5*g+1,5) global.pselist[n,m]+=pomoc2[g] jakto[g]=string_copy(global.pselist[n,m],1+(-5+5*g),5) ii=instance_create(32*n,32*m,obj_item) ii.sprite_index=sk_itespr(jakto[g]) } } } Tylko za bardzo nie wiem jak zrobić żeby na kratkach których wartość stringu nie uległa zmianie, nic nie robić a na tych drugich zrobić nowy item i usunać stary.
-
Witam! Od jakiegoś czasu w wolnych chwilach tworzę pewien projekt i mam takie pytanie, jak według was najwydajniej rysować spr 32x32, ktore są czasem rysowane na jednej pozycji ( przykładowo jakis spr tarczy, a nad nią mieczyk ). Chodzi mi o takie dynamiczne rysowanie i usuwanie. Powiedzmy, że mam tablice dwuwymiarowe, które zawierają informację o itemach na danej kratce. np. tablica[1,1]="1024,1025," Z góry dzięki za pomoc. E: co do skupiska itemów to powiedzmy ze jak view ma około 500 kratek, to fajnie by było jakby dało się normalnie rysować itemki na tych 50-100 kratkach.
-
Dziękuje za odpowiedzi. Myszka ma 3 letnią gwarancję więc wyśle ja do serwisu
-
Chodzi o to że jak kliknę to te 2 kliknięcia występują błyskawicznie. A jak trzymam dłużej to jakby to 2 kliknięcie występuje po puszczeniu przycisku.