Объявление

Свернуть
Пока нет объявлений.

Сапер: Microwindows-minesweeper -> Azbox HD Game Plugin (не пашет!!!)

Свернуть
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Сапер: Microwindows-minesweeper -> Azbox HD Game Plugin (не пашет!!!)

    http://en.pudn.com/search_db.asp?keyword=nano%20x

    вот думаю позаниматься этой игрухой и попытаться замутить её под азер.



    посмотрим, что у меня из этого выйдет
    Вложения
    Обсуждение всех нюансов развода в Германии. www.razvod.net

  • #2
    Re: Сапер: Microwindows-minesweeper -> Azbox HD Game Plugin

    саперчик явно у нас немного другой - без графики

    откомпилировал, запустил на азере:


    сейчас буду прикручивать управление, надеюсь с кодом разберусь

    Код:
    /*
     * Here when we get a button down event.
     */
    static void
    dobutton(GR_EVENT_BUTTON *bp)
    {
    	if (bp->wid == boardwid) {
    		movetopos(findcell(bp->x, bp->y));
    		return;
    	}
    
    	if (bp->wid == quitwid) {
    		GrFillRect(quitwid, xorgc, 0, 0, BUTTONWIDTH, BUTTONHEIGHT);
    		GrFlush();
    		if (savefile)
    			writegame(savefile);
    		GrClose();
    		exit(0);
    	}
    
    	if (bp->wid == savewid) {
    		GrFillRect(savewid, xorgc, 0, 0, BUTTONWIDTH, BUTTONHEIGHT);
    		GrFlush();
    		if (savefile == NULL)
    			savefile = SAVEFILE;
    		if (writegame(savefile))
    			write(1, "\007", 1);
    		else
    			delay();
    		GrFillRect(savewid, xorgc, 0, 0, BUTTONWIDTH, BUTTONHEIGHT);
    	}
    
    	if (bp->wid == newgamewid) {
    		GrFillRect(newgamewid, xorgc, 0, 0, BUTTONWIDTH, BUTTONHEIGHT);
    		GrFlush();
    		/*if (playing)
    			write(1, "\007", 1);
    		else {*/
    			newgame();
    			delay();
    		/*}*/
    		GrFillRect(newgamewid, xorgc, 0, 0, BUTTONWIDTH, BUTTONHEIGHT);
    	}
    }
    
    
    /*
     * Here when we get a keypress in a window.
     */
    static void
    dokey(GR_EVENT_KEYSTROKE *kp)
    {
    	if ((kp->wid != boardwid) || !playing)
    		return;
    
    	switch (kp->ch) {
    		case ' ':			/* remember or forget mine */
    			togglecell(findcell(kp->x, kp->y));
    			break;
    	}
    }
    так как управление в этой проге осуществляется при помощи мышки и клика я постараюсь задействовать хотябы три боковые кнопки.

    думаю для начала нужно познакомить систему с кнопками ДУ
    Код:
    typedef struct {
    
    	const char *name;
    	int mode;
    	int count;
    	int key[2];
    	unsigned short mwkey;
    
    }keys_map_td210;
    
    #define MAX_KEY 60 
    keys_map_td210 keys_td210[MAX_KEY] = {
    	{ "MWKEY_ENTER", 0, 3, { 16, 21 }, MWKEY_ENTER}, // 10 OK
    	{ "MWKEY_UP", 0, 3, { 18, 23 }, MWKEY_UP}, // 12 UP	
    	{ "MWKEY_DOWN", 0, 3, { 19, 24 }, MWKEY_DOWN}, // 13 DOWN	
    	{ "MWKEY_LEFT", 0, 3, { 20, 25 }, MWKEY_LEFT}, // 14 LEFT	
    	{ "MWKEY_RIGHT", 0, 3, { 21, 26 }, MWKEY_RIGHT}, // 15 RIGHT	
    	{ "MWKEY_COLORED_KEY_0", 0, 3, { 33, 58 }, MWKEY_COLORED_KEY_0}, // 21 RED
    	{ "MWKEY_COLORED_KEY_1", 0, 3, { 34, 59 }, MWKEY_COLORED_KEY_1}, // 22 GREEN
    	{ "MWKEY_COLORED_KEY_2", 0, 3, { 35, 60 }, MWKEY_COLORED_KEY_2}, // 23 YELLOW
    	{ "MWKEY_COLORED_KEY_3", 0, 3, { 36, 61 }, MWKEY_COLORED_KEY_3}, // 24 BLUE
    };
    как дальше работает система по считыванию кнопок я еще не вкурил.

    потом поидее нужно попытаться выдать на экран текст с задействованной кнопкой

    вроде это делает эта функция

    Код:
    	
    	int grabResult;
    	int key = 'a';
    	int grabKind = GR_GRAB_HOTKEY_EXCLUSIVE;
    
    printf("Exclusively reserving key %d ('%c'): ", key, keyToChar(key));
    	grabResult = GrGrabKey(main_window, key, grabKind);
    	printf("%d\n", grabResult);
    завтра буду думать, как всё это дело соеденить или еще лучше так это сделать микро программу со считыванием кнопок, без лишней хрени, дабы разобраться с этой системой
    Вложения
    Обсуждение всех нюансов развода в Германии. www.razvod.net

    Комментарий


    • #3
      Re: Сапер: Microwindows-minesweeper -> Azbox HD Game Plugin

      нашел оригинал Nano-X GrGrabKey() demo program.


      вечером сравню с нашим mwkeytest, надеюсь так до меня получше дойтет, как считываются данные с пульта ду

      GR_BOOL GrGrabKey ( GR_WINDOW_ID id,
      GR_KEY key,
      int type
      )


      Grab a key for a specific window.

      This function has two effects. With any type other than #GR_GRAB_HOTKEY it attempts to reserve the specified key for exclusive use by the application. In addition, with #GR_GRAB_HOTKEY or #GR_GRAB_HOTKEY_EXCLUSIVE it requests hotkey events be sent to the specified window whenever the specified key is pressed or released.

      A key can have any number of reservations of type #GR_GRAB_HOTKEY, but at most one reservation of another type. This means that grabs of type #GR_GRAB_HOTKEY always succeed, but grabs of any other type will fail if the key is already grabbed in any fashion except #GR_GRAB_HOTKEY.

      Note that all grabs are automatically released when the window specified in the id paramater is deleted, or when the client application closes it's connection to the Nano-X server.

      Parameters:
      id Window to send event to.
      key MWKEY value.
      type The type of reservation to make. Valid values are #GR_GRAB_HOTKEY_EXCLUSIVE, #GR_GRAB_HOTKEY, #GR_GRAB_EXCLUSIVE and #GR_GRAB_EXCLUSIVE_MOUSE.

      Returns:
      #GR_TRUE on success, #GR_FALSE on error.

      void GrInjectKeyboardEvent ( GR_WINDOW_ID wid,
      GR_KEY keyvalue,
      GR_KEYMOD modifiers,
      GR_SCANCODE scancode,
      GR_BOOL pressed
      )


      Sends a keyboard event to the specified window, or to the window with the current keyboard focus if 0 is used as the ID.

      The other arguments correspond directly to the fields of the same names in the keyboard event structure.

      Parameters:
      wid ID of the window to send the event to, or 0.
      keyvalue Unicode keystroke value to inject.
      modifiers Modifiers (shift, ctrl, alt, etc.) to inject.
      scancode The key scan code to inject.
      pressed TRUE for a key press, FALSE for a key release.
      http://dslinux.gits.kiev.ua/trunk/us...nox__misc.html
      Обсуждение всех нюансов развода в Германии. www.razvod.net

      Комментарий

      Обработка...
      X