User Tools

Site Tools


notes:discrete:fall2023:projects:ttb1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
notes:discrete:fall2023:projects:ttb1 [2023/09/14 17:18] – [BITWISE NOT] dwhite26notes:discrete:fall2023:projects:ttb1 [2023/09/21 01:40] (current) – [LARGER PADDLE] cfoster8
Line 6: Line 6:
 Bitwise AND uses the "&" symbol. Bitwise AND uses the "&" symbol.
 It checks if the two inputs are numbers and if so then it gives back a 1. It checks if the two inputs are numbers and if so then it gives back a 1.
 +
 +For example if we have an int set to 12 and an int set to 6 if we preform a bitwise & operation on them the result would be a 0100. 12 in binary is 1100 and 6 in binary is 0110.
 +
 +^        12      ^        6        ^       6&12         ^
 +|        1        |                |          0          |
 +|        1        |                |          1          |
 +|        0        |                |          0          |
 +|        0        |                |          0          |
 +
 +In this example of bitwise & gives us the result as 4. You can test this out yourself in code.
 +
 +<code c>
 +    int num1 = 12;    // Binary: 1100
 +    int num2 = 6;     // Binary: 0110
 +    int result = num1 & num2;  // Perform bitwise AND operation
 +
 +    printf("num1: %d\n", num1);
 +    printf("num2: %d\n", num2);
 +    printf("result: %d\n", result);
 +</code>
 +
 +it prints out the result as follows:
 +
 +  num1: 12
 +  num2: 6
 +  result: 4
 ====BITWISE OR==== ====BITWISE OR====
 Bitwise OR uses the "|" symbol. Bitwise OR uses the "|" symbol.
 It checks if the either of the two inputs are not zero and gives a 1. It checks if the either of the two inputs are not zero and gives a 1.
 +
 +^        12      ^        6        ^       6 or 12         ^
 +|        1        |                |          1          |
 +|        1        |                |          1          |
 +|        0        |                |          1          |
 +|        0        |                |          0          |
 +
 +In this example the result of 12 or 6 is 14.
 ====BITWISE XOR==== ====BITWISE XOR====
-Bitwise XOR uses the "^" symbol.  +Bitwise XOR uses the "^" symbol. Returns 1 only if the 2 bits are different 
-It checks if the two inputs are the same and if they are it give a 1.+ 
 +^        12      ^        6        ^       6 or 12         ^ 
 +|        1        |                |          1          | 
 +|        1        |                |          0          | 
 +|        0        |                |          1          | 
 +|        0        |                |          0          | 
 + 
 ====BITWISE NOT==== ====BITWISE NOT====
 Bitwise NOT uses the "~" symbol. Bitwise NOT uses the "~" symbol.
 It inverts all the bits in a single number. It inverts all the bits in a single number.
 +
 +^        12      ^          ~12         ^
 +|        1        |          0          |
 +|        1        |          0          |
 +|        0        |          1          |
 +|        0        |          1          |
 =====POTENTIAL FEATURES===== =====POTENTIAL FEATURES=====
  
 ====LARGER PADDLE==== ====LARGER PADDLE====
  
 +To make a larger paddle, all you'd have to so is extend your paddle collision to double the length of your paddle and draw a second paddle where the first one ends, or alternatively use a different paddle sprite
 +
 +You can use the same select region to draw both paddles, like so
 +    select_region( Paddle );
 +    draw_region_at( PaddleX, PaddleY)
 +    draw_region_at( PaddleX + [paddle length], PaddleY)
 +Where [paddle length] is the length of the paddle
 ====PADDLE MAGNET==== ====PADDLE MAGNET====
  
 ====BRICK HIT POINTS==== ====BRICK HIT POINTS====
  
 +To code in multiple hit points for bricks, your brick struct should include an integer member for HP and visibility.
 +
 +Within your calculations for ball-brick collision, make a check to see if the current brick is visible (if not, do not process collision detection). If collision is detected, decrement the brick's HP. If HP is 0 after it is decremented, then toggle the brick's visibility. 
 ====INVINCIBLE BALL==== ====INVINCIBLE BALL====
notes/discrete/fall2023/projects/ttb1.1694711885.txt.gz · Last modified: 2023/09/14 17:18 by dwhite26