c# - KeyUp And KeyDown arent registering -
i don't registered when i'm key down , key heres code:
private void form1_keydown(object sender, keyeventargs e) { switch(e.keycode) { case keys.a: messagebox.show("hi"); walking = true; break; } } private void form1_keyup(object sender, keyeventargs e) { walking = false; }
i don't :(
heres rest of code if helps
public partial class form1 : form {
//graphic vars graphics g; bitmap bb; graphics bbg; rectangle srect; rectangle drect; bitmap bmptile; bool allowgrid = false; int allowgrid = 0; //color pen rainbowpen = pens.black; int rainbowpenstate = 0; //wh int w; int h; //other vars bool isrunning = true; //map vars int[,,] map = new int[151, 151, 11]; int mapx = 20; int mapy = 20; //mouse vars int mousex; int mousey; int mmapx; int mmapy; //character (toons) bitmap bmpchar; int xpos =0; int ypos =0; int movespeed =8; short movedir =0; short lastdir =2; bool walking = false; public form1() { initializecomponent(); } private void form1_load (object sender, eventargs e) { this.keydown += form1_keydown; this.keyup += form1_keyup; this.show(); this.focus(); //wh w = this.width; h = this.height; //initialize graphics g = this.creategraphics(); bb = new bitmap(w, h); textures t = new textures(); bmptile = new bitmap(gametextures.image); //map[21, 21, 0] = 1; //prevent changing sizes this.formborderstyle = formborderstyle.fixedsingle; //check if played before checkgamefiles(); //game loop startgameloop(); } public void startgameloop() { while (isrunning) { application.doevents(); //user input (1) //ai (2) //update object data (3) //check triggers (4) //draw graphics (5) drawgraphics(); //music (6) } } public void drawgraphics() { //fill buffer //draw tiles for(int x = 0; x < 30; x++) { for(int y = 0; y < 30; y++) { //srect = new rectangle(x * 32, y * 32, 32, 32); /*fill background*/ //g.fillrectangle(brushes.black, srect); //grid getsourcerect(mapx + x, mapy + y, 32, 32); drect = new rectangle(x * 32, y * 32, 32, 32); g.drawimage(bmptile, drect, srect, graphicsunit.pixel); if (allowgrid) { g.drawrectangle(pens.red, srect); } } } //draw final layers //chars/menus g.drawrectangle(rainbowpen, mousex * 32, mousey * 32, 32, 32); //copy backbuffer graphics object g = graphics.fromimage(bb); //bb screen bb = backbuffer bbg = this.creategraphics(); bbg.drawimage(bb, 0, 0, this.width, this.height); //fix overdraw g.clear(color.black); } public void hidestart() { mainscreen1.hide(); button1.hide(); } private void button1_click(object sender, eventargs e) { if (!file.exists("gamefiles/player.pinfo") && !file.exists("gamefiles/world1.winfo") && !file.exists("gamefiles/world2.winfo") && !file.exists("gamefiles/world3.winfo")) { file.createtext("gamefiles/player.pinfo"); file.createtext("gamefiles/world1.winfo"); file.createtext("gamefiles/world2.winfo"); file.createtext("gamefiles/world3.winfo"); } hidestart(); } private void form1_mousemove (object sender, mouseeventargs e) { mousex = (int) math.floor(e.x / 32.0d); mousey = (int) math.floor(e.y / 32.0d); mmapx = mapx + mousey; mmapy = mapy + mousey; } private void timer1_tick (object sender, eventargs e) { rainbowpenstate += 1; if(rainbowpenstate == 17) { rainbowpenstate = 1; } switch(rainbowpenstate) { case 1: rainbowpen = pens.red; break; case 2: rainbowpen = pens.orangered; break; case 3: rainbowpen = pens.yellow; break; case 4: rainbowpen = pens.yellowgreen; break; case 5: rainbowpen = pens.green; break; case 6: rainbowpen = pens.darkgreen; break; case 7: rainbowpen = pens.blue; break; case 8: rainbowpen = pens.darkblue; break; case 9: rainbowpen = pens.purple; break; case 10: rainbowpen = pens.mediumpurple; break; case 11: rainbowpen = pens.blue; break; case 12: rainbowpen = pens.darkgreen; break; case 13: rainbowpen = pens.green; break; case 14: rainbowpen = pens.yellowgreen; break; case 15: rainbowpen = pens.yellow; break; case 16: rainbowpen = pens.orangered; break; } } private void form1_mousedown(object sender, mouseeventargs e) { } public void getsourcerect(int x, int y, int w, int h) { try { switch (map[x, y, 0]) { //grass case 0: srect = new rectangle(0, 0, 32, 32); break; // case 1: srect = new rectangle(0, 32, 32, 32); break; // case 2: break; } } catch (exception error) { console.writeline(error); } } public void checkgamefiles() { if(file.exists("gamefiles/player.pinfo") && file.exists("gamefiles/world1.winfo") && file.exists("gamefiles/world2.winfo") && file.exists("gamefiles/world3.winfo")) { button1.text = "continue!"; } else { button1.text = "start"; } } public void changeworlds(string world) { } private void form1_keydown(object sender, keyeventargs e) { switch(e.keycode) { case keys.a: messagebox.show("hi"); walking = true; break; } } private void form1_keyup(object sender, keyeventargs e) { walking = false; } private void walkinganimation_tick(object sender, eventargs e) { if(walking) { } }
make sure form's keypreview
property set true events coded can work.
private void form1_load (object sender, eventargs e) { this.keydown += form1_keydown; this.keyup += form1_keyup; this.keypreview = true;
Comments
Post a Comment