tabiki de yani en kötü ihtimalle çözemezsin araştırıp yöntemler öğrenirsin. mesela ben recursive, dynamic prograaming gibi şeyleri projecteuler'deki sorularla öğrendim |
hocam çok sağol oturdu gibi şimdi. ama benim sorularım bitmiyor :P şimdi ben örneğin bir oyunda bi tuşa basılmış gibi yapmayı istiyorum. mesela ben J'ye basınca actif olan pencerede enter+s+s+enter yapıcak. böylece mesela lolde chate ss yazmış olucak. keybd_event la denedim fakat olmadı. ama şöyle birşey var. mesela oyunda kendim enter'a basıp ss yazması için kod yazarsam bu sefer ss yazıyor. ama enter'a basma olayı olmuyor. neden olabilir? directxle bir alakası var mıdır? bu arada sizi de yorduysam affola :) |
ben de öğreniyorum bazı şeyler :) şöyle bir şey denedin mi?
yukarıdaki kod pek verimli değil, cpuyu boşa kullanıyor. pyhook modülünü incele derim. http://sourceforge.net/apps/mediawiki/pyhook/index.php?title=Main_Page |
Dediğiniz kod çalıştı. Peki örneğin G'ye basılmasını nasıl gönderebilirim? direk "g" yazdım düz mantık olmadı :( pyhook'u tam kuruyodum, py3 versiyonu yokmuş maalesef:( |
Büyük harf olması lazım. klavyedeki diğer tuşların kodu için: http://delphi.about.com/od/objectpascalide/l/blvkc.htm pyhook python 3.x için şurada var: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook |
peki sizce şöyle bişey yapsam performans kaybı çok olur mu? Programın büyük çoğunluğunu pythonda yaptım. Sadece bu tuşa basma kısmı kaldı. Bu kısmı c++'ta kodlayıp python'da gerektiği yerde çağırsam? |
daha pratik bir çözüm olarak time.sleep çok düşük bir değerle kullanabilirsin while True döngüsü içinde. kontrol ettiğimde işlemciyi fazla yormadığını farkettim.
|
hocam ilginiz için teşkkürler :) fakat sanırım oyuna "komut" verme olayıyla ilgili daha farklı bir yol izlemem lazım. Ne yaptıysam komut veremedim. Yani Örneğin shell.SendKeys("W") yazıyorum. Normalde text alanında denediğimde W karakteri yazılıyor alana fakat oyunda denediğimde hiç bir etkisi olmuyor :/ Ama örneğin enter için "~" yada alt+f4 için %{F4} yaptığımda işliyor anlamadım neden :/ |
şimdi ben de bir oyunda denedim çalışmadı. SendKeys ona müdahale edemiyor galiba. keyboard eventlerini kontrol eden api ayrı demek. directx içindedir diye tahmin ediyorum. bu arada "büyük harf olması lazım.." dediğim mesajda bir hata var. SendKeys'te farketmiyor GetAsyncKeyState'te büyük harf olması lazım. yanlış olmasın :) |
directpython diye bi module buldum ama bu saatte pek kafam bascak gibi değil yarın ona bakacağım. olmadı, önceden dediğim gibi o keypress olayını c++'ta yapıp python'dan çağırırım. yani sanırım öyle olabilir. |
çok teşekkürler ![]() |
Son bir sorum daha var acaba pythonda ustalaşmak yerine c öğrenmeye mi başlasam tarafsız düşüncelerinizi alabilir miyim ? |
hocam oyunlara göndermeyi buldum :) Scan Code diye bi olayla çalışıyormuş snaırım directx'de. http://www.gamespp.com/directx/directInputKeyboardScanCodes.html şurdan scan codelara bakıp win32api.keybd_event(ord('G'), 0x22) (0x22 G'nin scan codeu) bu tarz yazınca oyunda da işliyor. @DocZ |
Sizden sonra biraz araştırdım ve şu kodları yazdım, umarım işinizi görür. (gtk, win32api, win32gui) modüllerini kullandım. Program mouse'un olduğu yerin rengini arayüzün arka plan rengi yapıyor ve HTML renk kodunu arayüze yazıyor. < Resime gitmek için tıklayın > #-*- coding: utf-8 -*- |
Selamlar acilen Twisted frameworkünü öğrenmem gerekiyor. Tavsiye edebileceğiniz video ya da yazılı kaynak var mı? İngilizce Türkçe hiç farketmez |
http://twistedmatrix.com/trac/wiki/Documentation |
Selam ben sorayim def kokAl(sayi, derece=2): kokAl islevindeki, kok degiskeninde tanimli olan sayi**(1/derece) isleminde tek bolu isareti ile cikan sonuc: 5.477225575051661 peki cift bolu isaretinde 1 cikiyor. Bunun sebebi nedir? kokAl islevinin programdaki kullanimi kokAl(30) programin geneli: https://gist.github.com/agoren/6243145 ozel bi sey degil deneme yaparken sasirdim sadece. |
öncelikle teşekkürler project euler deki soruları çözdükçe algoritma yeteneğim kendiliğinden gelişir mi ?
< Bu ileti mobil sürüm kullanılarak atıldı > Bu mesaja 1 cevap geldi. Cevapları Gizle