[Tutorial] An in-depth look at binary and binary operators.
#19

Example usage of bitwise XOR and bitwise AND:
This will give you a variable (s_iChangedKeys) with only the keys that were just pressed down.
You can, for example, do:
pawn Code:
if ( s_iChangedKeys & KEY_FIRE )
{
    // ...
}

pawn Code:
new
    g_iPreviousKeys[ MAX_PLAYERS ] // This variable will hold the previous key state for each player
;

public OnPlayerUpdate( playerid )
{
    // I use static in OnPlayerUpdate because the varaible won't have to get re-initialized every call; therefore, less work for the CPU.
   
    static
        s_iKeys,
        s_iUnused, // blah blah
        s_iChangedKeys
    ;
   
    GetPlayerKeys( playerid, s_iKeys, s_iUnused, s_iUnused );
   
    s_iChangedKeys = ( s_iKeys ^ g_iPreviousKeys[ playerid ] );
   
    // First, filter out the bits that were 1 in both variables; leaving only the bits that has changed.
   
    s_iChangedKeys = s_iChangedKeys & s_iKeys;
   
    // Second, keep only the bits that are 1 in both variables.
    // Now, s_iChangedKeys contain only bits that was off in g_iPreviousKeys and on in s_iKeys.
   
    // You can also save a line by doing: s_iChangedKeys = ( s_iKeys ^ g_iPreviousKeys[ playerid ] ) & s_iKeys;
   
    if ( s_iChangedKeys & KEY_FIRE )
    {
        SendClientMessage( playerid, -1, "you just pressed fire" );
    }
   
    g_iPreviousKeys[ playerid ] = s_iKeys;

    return 1;
}
Reply


Messages In This Thread
An in-depth look at binary and binary operators. - by Kyosaur - 18.09.2010, 10:50
Re: An in-depth look at binary and binary operators. - by Kyosaur - 18.09.2010, 10:52
Re: An in-depth look at binary and binary operators. - by LarzI - 18.09.2010, 11:07
Re: An in-depth look at binary and binary operators. - by Hiddos - 18.09.2010, 11:18
Re: An in-depth look at binary and binary operators. - by Leeroy. - 18.09.2010, 11:19
Re: An in-depth look at binary and binary operators. - by Kyosaur - 18.09.2010, 11:22
Re: An in-depth look at binary and binary operators. - by LarzI - 18.09.2010, 11:23
Re: An in-depth look at binary and binary operators. - by Mimic - 18.09.2010, 11:26
Re: An in-depth look at binary and binary operators. - by Hiddos - 18.09.2010, 11:27
Re: An in-depth look at binary and binary operators. - by Kyosaur - 18.09.2010, 11:34
Re: An in-depth look at binary and binary operators. - by DiddyBop - 18.09.2010, 12:53
Re: An in-depth look at binary and binary operators. - by Simon - 19.09.2010, 08:55
Re: An in-depth look at binary and binary operators. - by Kyosaur - 19.09.2010, 22:21
Re: An in-depth look at binary and binary operators. - by Backwardsman97 - 20.09.2010, 02:46
Re: An in-depth look at binary and binary operators. - by Hiddos - 23.09.2010, 16:09
Re: An in-depth look at binary and binary operators. - by Calgon - 23.09.2010, 19:35
Re: An in-depth look at binary and binary operators. - by Kyosaur - 23.09.2010, 22:34
Re: An in-depth look at binary and binary operators. - by Chaprnks - 24.09.2010, 00:45
Re: An in-depth look at binary and binary operators. - by Slice - 25.09.2010, 18:57
Re: An in-depth look at binary and binary operators. - by MrDeath537 - 26.09.2010, 00:04
Re: An in-depth look at binary and binary operators. - by LarzI - 26.09.2010, 09:56
Re: An in-depth look at binary and binary operators. - by Kyosaur - 26.09.2010, 10:16
Re: An in-depth look at binary and binary operators. - by Tannz0rz - 26.09.2010, 10:35
Re: An in-depth look at binary and binary operators. - by LarzI - 26.09.2010, 10:36
Re: An in-depth look at binary and binary operators. - by Kyosaur - 29.09.2010, 13:42
Re: An in-depth look at binary and binary operators. - by Slice - 29.09.2010, 14:24
Re: An in-depth look at binary and binary operators. - by Kyosaur - 29.09.2010, 14:55
Re: An in-depth look at binary and binary operators. - by Slice - 29.09.2010, 15:02
Re: An in-depth look at binary and binary operators. - by Kyosaur - 29.09.2010, 15:14
Re: An in-depth look at binary and binary operators. - by Slice - 29.09.2010, 15:41
Re: An in-depth look at binary and binary operators. - by LarzI - 29.09.2010, 16:35
Re: An in-depth look at binary and binary operators. - by Tannz0rz - 29.09.2010, 17:47
Re: An in-depth look at binary and binary operators. - by LarzI - 29.09.2010, 18:11
Re: An in-depth look at binary and binary operators. - by [HLF]Southclaw - 09.03.2011, 19:11
Re: An in-depth look at binary and binary operators. - by Kyosaur - 09.03.2011, 23:39
Re: An in-depth look at binary and binary operators. - by black_dota - 10.03.2011, 06:18
Re: An in-depth look at binary and binary operators. - by alpha500delta - 10.03.2011, 13:21
Re: An in-depth look at binary and binary operators. - by Kyosaur - 10.03.2011, 13:32
Re: An in-depth look at binary and binary operators. - by [HLF]Southclaw - 10.03.2011, 15:33
Re: An in-depth look at binary and binary operators. - by Mean - 10.03.2011, 16:02
Re: An in-depth look at binary and binary operators. - by SkizzoTrick - 10.03.2011, 17:20
Re: An in-depth look at binary and binary operators. - by Wesley221 - 03.10.2011, 17:08
Re: An in-depth look at binary and binary operators. - by Cank - 07.10.2011, 15:04
Re: An in-depth look at binary and binary operators. - by [MM]IKKE - 11.10.2011, 23:36
Re: An in-depth look at binary and binary operators. - by Kyosaur - 11.10.2011, 23:56
Re: An in-depth look at binary and binary operators. - by Davz*|*Criss - 12.10.2011, 10:58
Re: An in-depth look at binary and binary operators. - by [MM]IKKE - 12.10.2011, 11:33
Re: An in-depth look at binary and binary operators. - by Kyosaur - 13.10.2011, 03:58
Re: An in-depth look at binary and binary operators. - by [HLF]Southclaw - 13.10.2011, 10:44
Re: An in-depth look at binary and binary operators. - by System64 - 31.03.2012, 12:41
Re: An in-depth look at binary and binary operators. - by LarzI - 05.05.2013, 14:20
Re: An in-depth look at binary and binary operators. - by Pandex - 01.08.2013, 20:41

Forum Jump:


Users browsing this thread: 3 Guest(s)