Exemplo n.º 1
0
void input_t::keyboard_to_signal(){
	const bool alt_key = query_key(SDL_SCANCODE_LALT) || query_key(SDL_SCANCODE_RALT);
	if(unlikely(alt_key)){
		if(query_key(SDL_SCANCODE_1)){
			set_signal(SIGNAL_QUIT_LOOP, true);
		}else{
			set_signal(SIGNAL_QUIT_LOOP, false);
		}
	}
}
Exemplo n.º 2
0
void query_options(struct soap *soap, struct option *options)
{ char *s = query(soap); /* get arguments from query string */
  while (s)
  { char *key = query_key(soap, &s); /* decode next query string key */
    char *val = query_val(soap, &s); /* decode next query string value */
    if (key)
      set_option(key, val, options);
  }
}
Exemplo n.º 3
0
bool 
wait_restart(void){
    disable_interrupt();
    if ( query_key('r' - 'a') ){
        release_key('r' - 'a');
        return true;
    }
    enable_interrupt();
    return false;
}
Exemplo n.º 4
0
//改变蛇的运动方向
void ChangeDir()
{
	disable_interrupt();
	//寻找已经按下的键,若有多个键按下,处理优先级以此为上下左右
	int i;
	for(i=0;i<4;i++)
	{
		if(query_key(i))
			switch(i)
			{
				case 0:snake.dir = up;break;
				case 1:snake.dir = down;break;
				case 2:snake.dir = left;break;
				case 3:snake.dir = right;break;
			}
		release_key(i);
	}	
	enable_interrupt();
}	
Exemplo n.º 5
0
/* 更新按键 */
bool update_keypress(void) {
	fly_t it, target = NULL;
	float min = -100;

	disable_interrupt();
	/* 寻找相应键已被按下、最底部且未被击中的字符 */
	for (it = head; it != NULL; it = it->_next) {
		assert(it->text >= 0 && it->text < 26);
		if (it->v > 0 && it->x > min && query_key(it->text)) {
			min = it->x;
			target = it;
		}
	}
	/* 如果找到则更新相应数据 */
	if (target != NULL) {
		release_key(target->text);
		target->v = -3; /* 速度改为向上 */
		return TRUE;
	}
	enable_interrupt();

	return FALSE;
}
Exemplo n.º 6
0
/* 更新按键 */
bool
update_keypress(void) {
	fly_t it, target = NULL;
	FLOAT min = -int2F(100);

	cli();
	/* 寻找相应键已被按下、最底部且未被击中的字符 */
	for (it = head; it != NULL; it = it->_next) {
		assert(it->text >= 0 && it->text < 26);
		if (it->v > 0 && it->x > min && query_key(it->text)) {
			min = it->x;
			target = it;
		}
	}
	/* 如果找到则更新相应数据 */
	if (target != NULL) {
		release_key(target->text);
		target->v = -int2F(3); /* 速度改为向上 */
		return true;
	}
	sti();

	return false;
}