Skocz do zawartości

Konrad-GM

Użytkownicy
  • Postów

    2 728
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    44

Treść opublikowana przez Konrad-GM

  1. Możliwe iż GM dla 'wczytywanych' tekstur używa flagi D3DPOOL_SYSTEMMEM, więc wszystkie zajmują pamięć RAM, a nie VGA. ( Spowalnia proces rysowania )
  2. Trochę optymalizacji człowieku... https://gmclan.org/up1717_12_destructible.html
  3. GML background_x[0] = ...; background_y[0] = ...;
  4. 1. Zamiast objpocisk.x, objpocisk.y daj other.x, other.y 2. instance_deactivate_region?
  5. W ustawieniach 'sprite' ustaw hotspot na środek
  6. GML (Create) counter = 0; alarm[0] = 3; GML (Alarm0) image_xscale += (1/sprite_width)*5; image_yscale += (1/sprite_height)*5; counter += 1; if( counter >= 30 ) instance_destroy(); alarm[0] = 3;
  7. Lol Jeśli potrafisz napisać własny VM JSu... powodzenia :P
  8. Dokładniej: GML d3d_transform_set_rotation_x( deg ); d3d_transform_add_rotation_y( deg ); d3d_transform_add_rotation_z( deg ); // Rysuj w 3D np d3d_draw_floor( -10, -10, 0, 10, 10, 0, ... ); d3d_transform_set_identity();
  9. Zamiast 'for' można użyć 'foreach', z tego co widzę, koledze wystarczy kodowanie ASCII
  10. Z tego wynika iż każda gra 3D jest tak na prawdę grą 2D, tylko te trójkąty są poddawane transformacjom...
  11. Zabawa w tokenizera? Po prostu sprawdzaj literki aż do kluczowego znaku, kopiuj zawartość do zmiennej itd.
  12. Stwórz listę i zapisuj w niej ID każdego stworzonego obiektu, twórz i sprawdzaj obiekty czy wciąż istnieją w jakimś alarmie.
  13. Zagrałem i przeszedłem całą, muszę przyznać ciekawa gierka ;) Keep it up.
  14. Po 1. std::fstream::is_open(); std::fstream::close(); Po 2. Po co otwierasz plik do odczytu jak i zapisu? Po 3. W C++ nie ma standardowej biblioteki dot. folderów i wydobywania nazw plików, do tego użyj WinAPI FindFirstFile FindNextFile FindClose
  15. Może i miał, dłuższy czas go używam i nie zauważyłem 'krzaczków' i ew. problemów z UTF8. Zapewne za pomocą mysql_connect( "127.0.0.1", "root" )
  16. Tylko pamiętaj aby zainstalować go w pathu bez polskich znaków. Polecam Notepad++, obsługuje takie języki jak JavaScript, PHP, Html jednocześnie w jednym pliku '*.php' :P
  17. Lol zmień tutorial/artykuł. <?php // <= $adres=$_POST['adres']; $tytul=$_POST['tytul']; $tresc=$_POST['tresc']; echo $adres; echo "<br/>"; echo $tytul; echo "<br/>"; echo $tresc; mail($adres,$tytul,$tresc); ?> Btw. polecam EasyPHP, mniej zabawy z wysyłaniem źródeł na serwer
  18. Jeśli Cię interesuje SB: <?php class web { static function open_connection() { mysql_connect( "127.0.0.1", "root" ); mysql_select_db( "bujaka_db" ); mysql_query( "SET NAMES utf8" ); return true; } static function close_connection() { mysql_close(); } static function find_client_ip() { if( !empty( $_SERVER['HTTP_CLIENT_IP'] ) ) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip = $_SERVER['REMOTE_ADDR']; } return $ip; } static function date_diff_sec( $date_1, $date_2 ) { $date_1 = new DateTime( $date_1 ); $date_2 = new DateTime( $date_2 ); $interval = $date_1->diff( $date_2 ); return ($interval->h*3600 + $interval->i*60 + $interval->s); } static function push_mysql_error() { print "<span class='error'>MySQL query failed!<br>".mysql_error()."</span>"; } static function banned_ip( $ip ) { $query = "SELECT ip FROM banned WHERE ip=INET_ATON('$ip')"; $result = mysql_query( $query ); if( $result ) { if( mysql_fetch_assoc( $result ) ) // ?? Bez tego nie dziala poprawnie :P return true; } return false; } static function admin_permissions() { if( isset( $_SESSION['username'], $_SESSION['password'] ) ) { $username = trim( $_SESSION['username'] ); $password = trim( $_SESSION['password']); if( web::open_connection() ) { $ip = web::find_client_ip(); if( web::banned_ip( $ip ) ) { web::close_connection(); return false; } $query = "SELECT secure, name FROM admin WHERE username='$username' AND password='$password'"; $result = mysql_query( $query ); if( $result ) { $row = mysql_fetch_assoc( $result ); if( $row ) { if( $row['secure'] < 3 ) { mysql_query( "UPDATE admin SET secure='0' WHERE username='$username'" ); web::close_connection(); return true; } } else { $query = "SELECT secure FROM admin WHERE username='$username'"; $result = mysql_query( $query ); if( $result ) { $row = mysql_fetch_assoc( $result ); if( $row['secure'] < 3 ) { $try = $row['secure'] + 1; mysql_query( "UPDATE admin SET secure='$try', ip=INET_ATON('$ip') WHERE username='$username'" ); } } } } web::close_connection(); } } return false; } } ?> <?php require_once( "source.php" ); function push_shout( $date, $author, $content ) { // <div class='shout-bar'><span class='shout-author'>$author</span><span class='shout-date'>$date</span></div> // <div class='shout-content'>$content</div> print "<div class='shout-bar'><span class='shout-author'>$author</span><span class='shout-date'>$date</span></div>"; print "<div class='shout-content'>$content</div>"; } if( !isset( $_POST['type'] ) ) exit; if( web::open_connection() ) { // Admin permissions $is_admin = web::admin_permissions(); // Load shoutbox content if( $_POST['type'] == 'load' ) { $query = "SELECT * FROM shout ORDER BY id DESC LIMIT 30"; $result = mysql_query( $query ); if( $result ) { while( $row = mysql_fetch_assoc( $result ) ) { push_shout( $row['date'], $row['author'], $row['content'] ); } } else web::push_mysql_error(); } // Post for new shout elseif( $_POST['type'] == 'post' ) { $ip = web::find_client_ip(); $author = trim( $_POST['author'] ); $content = $_POST['content']; // Banned IP if( web::banned_ip( $ip ) ) { web::close_connection(); print "Zostałeś zbanowany!"; exit; } if( $author && trim( $content ) ) { $author_len = strlen( $author ); $content_len = strlen( $content ); if( $author_len < 3 ) print "Nick jest za krótki! ($author_len/10)"; elseif( $author_len > 10 ) print "Nick jest za długi! ($author_len/10)"; elseif( $content_len > 255 ) print "Tekst jest za długi! ($content_len/255)"; else { $query = "SELECT ip, date FROM shout WHERE ip=INET_ATON('$ip') ORDER BY id DESC LIMIT 1"; $result = mysql_query( $query ); if( $result ) { $row = mysql_fetch_assoc( $result ); if( web::date_diff_sec( $row['date'], date("H:i:s") ) < 10 ) { print "Spróbuj za 10 sekund"; web::close_connection(); exit; } } $query = "INSERT INTO shout(ip, date, author, content) VALUES(INET_ATON('$ip'), CURTIME(), \"$author\", \"$content\")"; $result = mysql_query( $query ); if( !$result ) web::push_mysql_error(); } } else print "Musisz wypełnić pola!"; } web::close_connection(); } ?> Jest to bardzo prosty SB, wymaga wiele poprawek i optymalizacji :P Jakby się ktoś czepiał, tak, 'date' początkowo miało przechowywać dane typu DATETIME, ale zmieniłem zdanie :P Jbc. kierowane jest pod ajaxa ('POST')
  19. Jeśli chodzi o jednorazową zmianę kierunku: GML (Create pocisku) direction = point_direction( x, y, mouse_x, mouse_y ); speed = jakas_wartosc;
  20. Konrad-GM

    Working_directory w C++?

    Lub w pathu podać: ".\\test.ini"
  21. Spróbuj każdą literę rysować z osobna za pomocą funkcji 'draw_text_transformed', oraz pokierować owe na funkcji 'f(x) = sin(x)*10'. Co do obrotu, musisz 'przewidzieć' jaka będzie następna wysokość 'x+1', następnie funkcją 'point_direction' pobrać kierunek oraz warto wiedzieć iż funkcja 'draw_text_transformed' przyjmuje parametr 'angle'.
×
×
  • Dodaj nową pozycję...