Skocz do zawartości

cysior

Użytkownicy
  • Postów

    375
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    2

Treść opublikowana przez cysior

  1. 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 }
  2. 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ąć.
  3. Bardzo dziękuję za waszą pomoc. Temat do zamknięcia.
  4. 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.
  5. 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 { }
  6. Dzięki wam za pomoc. Mam jeszcze takie pytanie, jak najlepiej sprawdzać czy CAPSLOCK jest w użyciu ? @E: Dzięki Zamykam .
  7. 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'
  8. 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 !
  9. cysior

    GMDuel

    Jakoś trafiam na tematy, które mi nie odpowiadają:D
  10. cysior

    GMDuel

    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
  11. cysior

    GMDuel

    Ujawnienie ! Btw. Moj koncept art :D
  12. Już to pisałem, walkover. Czekam pokornie na swój pojedynek w tabelce przegranych.
  13. Tak jak w temacie, czy to możliwe za pomocą jakiś "trików" ? Z góry dzięki za odpowiedz.
  14. Postaram się to uczynić, jednak niczego nie obiecuje ;/
  15. Ciekawy pomysł, dobre wykonanie. Myślę, że z nie ma sensu tego przedłużać, walkover !
  16. cysior

    GMDuel

    Jak się bawić to się bawic ... Ja też mogę zacząć od 0:00
  17. cysior

    GMDuel

    Jeszcze nie wiadomo czy Elevator cię czasem nie pokona, więc nie martw się na zapas.
  18. Dzięki wam wszystkim za odpowiedzi, teraz postaram sie rozwiązać problem poprzez materiały dostarczone przez was :P
  19. 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.
  20. 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)
  21. @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.
  22. 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.
  23. Dziękuje za odpowiedzi. Myszka ma 3 letnią gwarancję więc wyśle ja do serwisu
  24. 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.
×
×
  • Dodaj nową pozycję...