keremayd
Game Makerde fazla uzun bir kod yazdım. Ancak en alta son bir kod iliştirmeye çalıştığımda en üstteki kod işlenmez hale geliyor ama mesela o iliştirdiğimi sildiğimde o en üstteki işlevsel hale geliyor tekrardan, ben size mail olarak kodumu atsam nasıl bir çözüm bulabiliceğimizi söyler misin rica etsem cArleonee ?
en alta eklediğiniz kodu yazarsanız bir bakayım.hata vs alıyor musunuz ?
Yok hayır hata almıyorum kod biraz fazla uzun olduğundan burdan atmak istemedim ama atayım öyleyse.
if(keyboard_check(ord("A"))){
if(keyboard_check(ord("W"))){
sprite_index=spr_sol_yukari_capraz
}else{
sprite_index=spr_soll
}
x-=5;
}
if keyboard_check_released(ord("A")){
sprite_index=spr_soll2
}
if(keyboard_check(ord("W"))){
if(keyboard_check(ord("A"))){
sprite_index=spr_sol_yukari_capraz
}else{
sprite_index=spr_yukarii
}
y-=5;
}
if keyboard_check_released(ord("W")){
sprite_index=spr_yukarii
}
if(keyboard_check(ord("D"))){
if(keyboard_check(ord("W"))){
sprite_index=spr_sag_yukari_capraz
}else{
sprite_index=spr_sagg
}
x+=5;
}
if keyboard_check_released(ord("D")){
sprite_index=spr_sagg2
}
if(keyboard_check(ord("S"))){
if(keyboard_check(ord("D"))){
sprite_index=spr_sag_asagi_capraz
}else{
sprite_index=spr_asagii
}
y+=5;
}
if keyboard_check_released(ord("S")){
sprite_index=spr_asagii
}
if(keyboard_check(ord("A"))){
if(keyboard_check(ord("S"))){
sprite_index=spr_sol_asagi_capraz
}else{
sprite_index=spr_soll
}
}
if keyboard_check_released(ord("A")){
sprite_index=spr_soll2
}
en alta yazdığınız
if keyboard_check_released(ord("A")){
sprite_index=spr_soll2
}
üst ksımlarda zaten yazmışsınız.2 defa yazdığınız için sorun oluşmuş olabilir.
Dediğini uyguladım ancak genede olmadı bildiğin bu sorunu çözebilicek başka bir çözüm yolu var mı hocam ?
en alta yazdığınız kod bu değil mi ?
if keyboard_check_released(ord("A")){
sprite_index=spr_soll2
}
eğer bu ise yazmana gerek yok üste yazmışsın.silin etkisi olmaz bunun.sildiğinizde çalışıyor dediniz.bu değilse en alta yazdığınız kodu yazın sadece.bakayım.
En alta yazdım dediğim yani kodun tamamı sadece o değil.
if(keyboard_check(ord("A"))){
if(keyboard_check(ord("S"))){
sprite_index=spr_sol_asagi_capraz
}else{
sprite_index=spr_soll
}
}
if keyboard_check_released(ord("A")){
sprite_index=spr_soll2
}
bunu sildiğimde en üstteki tekrar çalışıyor bunu eklediğimde çalışmıyor ama işte. Dediğinizi denedim onu silince gene olmuyor orda demek istediğim en alttaki o büyük kodun eklediğimde işlemiyor demeye çalıştım.
kodlarda hata olmadığı için pek yardımcı olamıyorum.özel değil çalışma mailden .gmz yollayın bakayım.düzensiz ve gereksiz kodlar yüzünden bir karmaşa olmuş.tahminince releasedler yüzünden bir çakışma olmuş.
Hotmail adresinize yolladım bakarsanız sevinirim. cArleonee32@hotmail.com adresine yolladım.
Hatanız şu : En üste A+W basarsa çapara gitsin diyorsunuz.Enalta A+S basara sol alt çapra gitsin diyorsunuz.ama Sye basmıyorsa aşağı sprite gelsin diyorsunuz.o yüzden yukarıda verdiğiniz komutlar işlemiyor.Şu şekilde düzenledim kodları :
if(keyboard_check(ord("A"))){
sprite_index=spr_soll
}
if(keyboard_check(ord("S"))){
sprite_index=spr_asagii
}
if(keyboard_check(ord("D"))){
sprite_index=spr_sagg
}
if(keyboard_check(ord("W"))){
sprite_index=spr_yukarii
}
if(keyboard_check(ord("A"))){
if(keyboard_check(ord("W"))){
sprite_index=spr_sol_yukari_capraz
}else if(keyboard_check(ord("S"))){
sprite_index=spr_sol_asagi_capraz
}
x-=5;
}
if(keyboard_check(ord("W"))){
if(keyboard_check(ord("A"))){
sprite_index=spr_sol_yukari_capraz
}
y-=5;
}
if(keyboard_check(ord("D"))){
if(keyboard_check(ord("W"))){
sprite_index=spr_sag_yukari_capraz
}
x+=5;
}
if(keyboard_check(ord("S"))){
if(keyboard_check(ord("D"))){
sprite_index=spr_sag_asagi_capraz
}
y+=5;
}
if keyboard_check_released(ord("S")){
sprite_index=spr_asagii
}
if keyboard_check_released(ord("A")){
sprite_index=spr_soll2
}
if keyboard_check_released(ord("W")){
sprite_index=spr_yukarii
}
if keyboard_check_released(ord("D")){
sprite_index=spr_sagg2
}
Hocam eline sağlık gerçekten ya o kadar düşünüp görmemiştim onu.
Kod
Kalın
Vurgu
Resim
Video
Url
CEVAPLA