Author Topic: Poke to screen 0 for speed  (Read 16818 times)

0 Members and 1 Guest are viewing this topic.

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: Poke to screen 0 for speed
« Reply #15 on: August 14, 2018, 11:28:19 am »
Ha! that's fast work. May I ask what is the object of game?

Offline PMACKAY

  • Forum Regular
  • Posts: 188
  • LIFE is Temporary
    • View Profile
Re: Poke to screen 0 for speed
« Reply #16 on: August 14, 2018, 11:33:55 am »
the topic at the moment is to collect all diamonds, what out for getting blocked in by boulders, there are going to be some monsters that can chase and kill you, and get through the levels, i am not to sure what to do yet. just mucking about. i will do a level editor to go with this. but one thing first is getting this to work
MackyWhite

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: Poke to screen 0 for speed
« Reply #17 on: August 14, 2018, 11:46:04 am »
Well you got the 2 dimensional array map array fast enough!

You are doing odd thing (to me) for polling key presses, _keydown is great for picking up which key or key combo was pressed.

IF _KEYDOWN(32) then print "You pressed space bar."

http://qb64.org/wiki/KEYDOWN

Of course, just because I think your method is odd or complicated doesn't mean it's wrong or won't work.

All these key press polling methods have problem of clearing the buffer to tell if a key was meant to be pressed once or many times in a row. Usually the QB64 assumes many times and it is hard to move one space at time with arrows.
« Last Edit: August 14, 2018, 11:49:51 am by bplus »

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: Poke to screen 0 for speed
« Reply #18 on: August 14, 2018, 11:55:27 am »
I wonder why the CASE is not indenting here:

  [ You are not allowed to view this attachment ]  

Offline PMACKAY

  • Forum Regular
  • Posts: 188
  • LIFE is Temporary
    • View Profile
Re: Poke to screen 0 for speed
« Reply #19 on: August 14, 2018, 11:55:42 am »
the keyboard is alway hard on the pc. think the interupt is the issue as it reads it so quick and fills the buffer. i have just fixed a few things on it now


i think the case is not indentting as i have more than one on a line
« Last Edit: August 14, 2018, 11:57:30 am by PMACKAY »
MackyWhite

FellippeHeitor

  • Guest
Re: Poke to screen 0 for speed
« Reply #20 on: August 14, 2018, 12:01:48 pm »
I wonder why the CASE is not indenting here:

  [ You are not allowed to view this attachment ]

Excessive grouping is giving the IDE a hard time.

Offline PMACKAY

  • Forum Regular
  • Posts: 188
  • LIFE is Temporary
    • View Profile
Re: Poke to screen 0 for speed
« Reply #21 on: August 14, 2018, 12:06:11 pm »
select case and end select can be made to run as one line. just looks tight.
MackyWhite

Offline PMACKAY

  • Forum Regular
  • Posts: 188
  • LIFE is Temporary
    • View Profile
Re: Poke to screen 0 for speed
« Reply #22 on: August 14, 2018, 12:23:16 pm »
time for bed for me
MackyWhite

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: Poke to screen 0 for speed
« Reply #23 on: August 14, 2018, 12:45:33 pm »
;)

I tried it with _KEYDOWN and clearing last _KEYDOWN so that one key press = one space moved
Code: QB64: [Select]
  1. DEFINT A-Z: DIM screenmem%(22, 12)
  2. GOSUB readlev: GOSUB displaymap: GOSUB animate: score = 0
  3.  
  4.     screenmem%(mx%, my%) = 1
  5.     GOSUB animate
  6.     screenmem%(mx%, my%) = 32
  7.  
  8.     IF _KEYDOWN(18432) THEN 'up
  9.         IF screenmem%(mx%, my% - 1) = 32 OR screenmem%(mx%, my% - 1) = 176 THEN my% = my% - 1
  10.         WHILE _KEYDOWN(18432): _LIMIT 200: WEND
  11.     END IF
  12.  
  13.     IF _KEYDOWN(20480) THEN 'down
  14.         IF screenmem%(mx%, my% + 1) = 32 OR screenmem%(mx%, my% + 1) = 176 THEN my% = my% + 1
  15.         IF screenmem%(mx%, my% + 1) = 4 THEN my% = my% + 1: score = score + 1
  16.         WHILE _KEYDOWN(20480): _LIMIT 200: WEND
  17.     END IF
  18.  
  19.     IF _KEYDOWN(19200) THEN 'left
  20.         IF screenmem%(mx% - 1, my%) = 32 OR screenmem%(mx% - 1, my%) = 176 THEN mx% = mx% - 1
  21.         IF screenmem%(mx% - 1, my%) = 79 AND screenmem%(mx% - 2, my%) = 32 THEN screenmem%(mx% - 2, my%) = 79: screenmem%(mx% - 1, my%) = 32: mx% = mx% - 1
  22.         IF screenmem%(mx% - 1, my%) = 4 THEN mx% = mx% - 1: score = score + 1
  23.         WHILE _KEYDOWN(19200): _LIMIT 200: WEND
  24.     END IF
  25.  
  26.  
  27.     IF _KEYDOWN(19712) THEN 'right
  28.         IF screenmem%(mx% + 1, my%) = 32 OR screenmem%(mx% + 1, my%) = 176 THEN mx% = mx% + 1
  29.         IF screenmem%(mx% + 1, my%) = 79 AND screenmem%(mx% + 2, my%) = 32 THEN screenmem%(mx% + 2, my%) = 79: screenmem%(mx% + 1, my%) = 32: mx% = mx% + 1
  30.         IF screenmem%(mx% + 1, my%) = 4 THEN mx% = mx% + 1: score = score + 1
  31.         WHILE _KEYDOWN(19712): _LIMIT 200: WEND
  32.     END IF
  33.  
  34.     _LIMIT 100
  35. LOOP UNTIL _KEYDOWN(27) 'escape
  36.  
  37.  
  38. animate:
  39.  
  40. FOR i = 1 TO 19
  41.     FOR j = 11 TO 1 STEP -1
  42.         IF screenmem%(i, j) = 79 AND screenmem%(i, j + 1) = 32 THEN screenmem%(i, j) = 32: screenmem%(i, j + 1) = 79
  43.         IF screenmem%(i, j) = 4 AND screenmem%(i, j + 1) = 32 THEN screenmem%(i, j) = 32: screenmem%(i, j + 1) = 4
  44.     NEXT j
  45.  
  46. displaymap:
  47.  
  48. FOR i = 1 TO 12
  49.     FOR j = 1 TO 20
  50.         b = screenmem%(j, i)
  51.         COLOR 4
  52.         SELECT CASE b
  53.         CASE 79: COLOR 15: CASE 177: COLOR 4
  54.         CASE 234: COLOR 2: CASE 235: COLOR 2
  55.         CASE 176: COLOR 6: CASE 1: COLOR 14
  56.         CASE 219: COLOR 4: CASE 4: COLOR 1
  57.         END SELECT
  58.         _PRINTSTRING (j, i), CHR$(b)
  59.     NEXT j
  60. COLOR 6: _PRINTSTRING (4, 13), "SCORE - " + STR$(score)
  61.  
  62. readlev:
  63.  
  64. FOR i = 1 TO 12
  65.     READ map$
  66.     FOR j = 1 TO 20
  67.         b$ = MID$(map$, j, 1)
  68.         IF b$ = "B" THEN b = 177
  69.         IF b$ = " " THEN b = 32
  70.         IF b$ = "M" THEN b = 234
  71.         IF b$ = "m" THEN b = 235
  72.         IF b$ = "v" THEN b = 1: mx% = j: my% = i
  73.         IF b$ = "O" THEN b = 79
  74.         IF b$ = "." THEN b = 176
  75.         IF b$ = "X" THEN b = 219
  76.         IF b$ = "D" THEN b = 4
  77.         screenmem%(j, i) = b
  78.     NEXT j
  79.  
  80.  
  81. DATA "BBBBBBBBBBBBBBBBBBBB"
  82. DATA "BOODBM       BODODOB"
  83. DATA "B...BB... OO B.OOO.B"
  84. DATA "B.BBB..O. .. B.....B"
  85. DATA "B.....O.O       .O.B"
  86. DATA "B.O.O.BDBvBBBBB ...X"
  87. DATA "BO....BBB BODOB O..B"
  88. DATA "B.......B BDODB .OOB"
  89. DATA "B..O.O..B BBOBB ...B"
  90. DATA "B.O.O.O.B ..... .O.B"
  91. DATA "B.OD.DO.B   m   .ODB"
  92. DATA "BBBBBBBBBBXBBBBBBBBB"
  93.  
  94.  

I will have to think about how to get that diamond in bottom right corner without being buried in rocks!

FellippeHeitor

  • Guest
Re: Poke to screen 0 for speed
« Reply #24 on: August 14, 2018, 01:08:33 pm »
You seem to fail to grasp that _KEYDOWN will return -1 for as long as the key is held down. It doesn't need clearing (and isn't even affected by _KEYCLEAR).

The use of _KEYDOWN is awesome for games because it allows you to react to multiple keys at once.

Code: QB64: [Select]
  1. x = 40
  2. y = 12
  3.  
  4.     IF _KEYDOWN(18432) THEN y = y - 1
  5.     IF _KEYDOWN(20480) THEN y = y + 1
  6.     IF _KEYDOWN(19200) THEN x = x - 1
  7.     IF _KEYDOWN(19712) THEN x = x + 1
  8.  
  9.     IF y < 1 THEN y = 1
  10.     IF y > 25 THEN y = 25
  11.     IF x < 1 THEN x = 1
  12.     IF x > 80 THEN x = 80
  13.  
  14.     CLS
  15.     COLOR 7
  16.     PRINT "You can go up/down/left/right but also diagonally"
  17.     PRINT "if you hold more than one key at a time."
  18.  
  19.     COLOR 10
  20.     _PRINTSTRING (x, y), CHR$(254)
  21.     _DISPLAY
  22.     _LIMIT 30

Now if you want...

Quote
one key press = one space moved

...then you're better off sticking to old ways and using INKEY$ (or even _KEYHIT).
« Last Edit: August 14, 2018, 01:20:25 pm by FellippeHeitor »

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: Poke to screen 0 for speed
« Reply #25 on: August 14, 2018, 01:22:59 pm »
You seem to fail to grasp that _KEYDOWN will return -1 for as long as the key is held down. It doesn't need clearing (and isn't even affected by _KEYCLEAR).

The use of _KEYDOWN is awesome for games because it allows you to react to multiple keys at once.

Code: QB64: [Select]
  1. x = 40
  2. y = 12
  3.  
  4.     IF _KEYDOWN(18432) THEN y = y - 1
  5.     IF _KEYDOWN(20480) THEN y = y + 1
  6.     IF _KEYDOWN(19200) THEN x = x - 1
  7.     IF _KEYDOWN(19712) THEN x = x + 1
  8.  
  9.     IF y < 1 THEN y = 1
  10.     IF y > 25 THEN y = 25
  11.     IF x < 1 THEN x = 1
  12.     IF x > 80 THEN x = 80
  13.  
  14.     CLS
  15.     COLOR 7
  16.     PRINT "You can go up/down/left/right but also diagonally"
  17.     PRINT "if you hold more than one key at a time."
  18.  
  19.     COLOR 10
  20.     _PRINTSTRING (x, y), CHR$(254)
  21.     _DISPLAY
  22.     _LIMIT 30

Now if you want...

Quote
one key press = one space moved

...then you're better off sticking to old ways and using INKEY$ (or even _KEYHIT).

All the methods I have tried for polling keys have trouble with too much response with out some sort of delay or clearing of key buffer. The same goes for mouse.
« Last Edit: August 14, 2018, 01:26:53 pm by bplus »

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: Poke to screen 0 for speed
« Reply #26 on: August 14, 2018, 02:00:54 pm »
To show you what I am talking about, here is a little mod to the demo:
Code: QB64: [Select]
  1. x = 40
  2. y = 12
  3.  
  4.     IF _KEYDOWN(18432) THEN y = y - 1
  5.     IF _KEYDOWN(20480) THEN y = y + 1
  6.     IF _KEYDOWN(19200) THEN x = x - 1
  7.     IF _KEYDOWN(19712) THEN x = x + 1
  8.  
  9.     IF y < 1 THEN y = 1
  10.     IF y > 25 THEN y = 25
  11.     IF x < 1 THEN x = 1
  12.     IF x > 80 THEN x = 80
  13.  
  14.     CLS
  15.     COLOR 7
  16.     PRINT "You can go up/down/left/right but also diagonally"
  17.     PRINT "if you hold more than one key at a time."
  18.     PRINT
  19.     PRINT "Now try to stop the moving dot inside the blue ( )"
  20.  
  21.     COLOR 9
  22.     _PRINTSTRING (10, 6), "( )"
  23.     _PRINTSTRING (30, 10), "( )"
  24.     _PRINTSTRING (1, 12), "( )"
  25.  
  26.     COLOR 10
  27.     _PRINTSTRING (x, y), CHR$(254)
  28.     _DISPLAY
  29.     _LIMIT 30
  30.  

It does work better with INKEY$
Code: QB64: [Select]
  1.     k$ = INKEY$
  2.     IF k$ = "u" THEN y = y - 1
  3.     IF k$ = "d" THEN y = y + 1
  4.     IF k$ = "l" THEN x = x - 1
  5.     IF k$ = "r" THEN x = x + 1
  6.  
« Last Edit: August 14, 2018, 02:12:57 pm by bplus »

FellippeHeitor

  • Guest
Re: Poke to screen 0 for speed
« Reply #27 on: August 14, 2018, 02:28:39 pm »
So there you have it, we agree. For cases where you need a single entry, INKEY$ or _KEYHIT.

_KEYDOWN has its own range of uses.

Offline SMcNeill

  • QB64 Developer
  • Forum Resident
  • Posts: 3972
    • View Profile
    • Steve’s QB64 Archive Forum
Re: Poke to screen 0 for speed
« Reply #28 on: August 14, 2018, 05:30:34 pm »
Taking a look at your code, I have a few questions for you:

1) Why make keystate so hard to comprehend, when what it's doing is really very simple:

Code: QB64: [Select]
  1. FOR k = 0 TO 127 '255
  2.     keystate(k) = 1 'keystate(k) = -((k AND 128) = 0)

The code you're using is running the formula from 0 to 255, and placing the value of 1 in the first 128 elements of the array (0 to 127), and then placing 0 in the next 128 elements.  It works, but it's some of the best code obfuscation I've seen in ages.  You can see how much simpler, and easier to read and understand, the changes I'd make are, above.

2) Same question with the DATA array.  Why read it as a single line for "B", "X", "V" and such, and then have to break it down with MID$ to get the numeric values you want from that data -- after running it through a value conversion routine? 

Isn't it much simpler to just change the DATA so that it represents what you're actually using?

Code: QB64: [Select]
  1. DATA "±±±±±±±±±±±±±±±±±±±±"
  2. DATA "±OO±ê       ±OOO±"
  3. DATA "±°°°±±°°° OO ±°OOO°±"
  4. DATA "±°±±±°°O° °° ±°°°°°±"
  5. DATA "±°°°°°O°O       °O°±"
  6. DATA "±°O°O°±±±±±±± °°°Û"
  7. DATA "±O°°°°±±± ±OO± O°°±"
  8. DATA "±°°°°°°°± ±O± °OO±"
  9. DATA "±°°O°O°°± ±±O±± °°°±"
  10. DATA "±°O°O°O°± °°°°° °O°±"
  11. DATA "±°O°O°±   ë   °O±"
  12. DATA "±±±±±±±±±±Û±±±±±±±±±"
  13.  

Note that the above doesn't display all pretty for me here on the forums, but it works just fine in QB64's IDE which supports the extended ASCII characters.

Also note, with the above, all we need to read that DATA and use it is the following little routine:

Code: QB64: [Select]
  1. readlev:
  2.  
  3. FOR i = 1 TO 12
  4.     READ map$
  5.     FOR j = 1 TO 20
  6.         b = ASC(map$, j)
  7.         IF b = 1 THEN mx% = j: my% = i
  8.         screenmem%(j, i) = b
  9.     NEXT j
  10.  

Doesn't that seem a wee bit simpler?

Or, even better, I prefer to break the DATA down to the ASC values and store them independent as the following:

Code: QB64: [Select]
  1. DATA 177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177
  2. DATA 177,79,79,4,177,234,32,32,32,32,32,32,32,177,79,4,79,4,79,177
  3. DATA 177,176,176,176,177,177,176,176,176,32,79,79,32,177,176,79,79,79,176,177
  4. DATA 177,176,177,177,177,176,176,79,176,32,176,176,32,177,176,176,176,176,176,177
  5. DATA 177,176,176,176,176,176,79,176,79,32,32,32,32,32,32,32,176,79,176,177
  6. DATA 177,176,79,176,79,176,177,4,177,1,177,177,177,177,177,32,176,176,176,219
  7. DATA 177,79,176,176,176,176,177,177,177,32,177,79,4,79,177,32,79,176,176,177
  8. DATA 177,176,176,176,176,176,176,176,177,32,177,4,79,4,177,32,176,79,79,177
  9. DATA 177,176,176,79,176,79,176,176,177,32,177,177,79,177,177,32,176,176,176,177
  10. DATA 177,176,79,176,79,176,79,176,177,32,176,176,176,176,176,32,176,79,176,177
  11. DATA 177,176,79,4,176,4,79,176,177,32,32,32,235,32,32,32,176,79,4,177
  12. DATA 177,177,177,177,177,177,177,177,177,177,219,177,177,177,177,177,177,177,177,177

And, with the DATA stored as we actually need it, all we have to do is the following to use it in our program:

Code: QB64: [Select]
  1. readlev:
  2.  
  3. FOR i = 1 TO 12
  4.     FOR j = 1 TO 20
  5.         READ screenmem(j, i)
  6.         IF screenmem(j, i) = 1 THEN mx% = j: my% = i
  7.     NEXT j
  8.  

It doesn't get any simpler -- or faster -- than that!  ;)

My overall changes to your last set of code that you shared would end up looking like the following:

Code: QB64: [Select]
  1. DEFINT A-Z
  2. DIM screenmem%(22, 12), kbd(255), keystate(255)
  3.  
  4. 'Why complicate the following with hard to understand math, when a much simpler method exists which is way easier to understand?
  5.  
  6. FOR k = 0 TO 127 '255
  7.     keystate(k) = 1 'keystate(k) = -((k AND 128) = 0)
  8.  
  9.  
  10.  
  11. GOSUB readlev
  12. score = 0
  13. GOSUB displaymap
  14. GOSUB animate
  15.  
  16.     screenmem%(mx%, my%) = 1
  17.     k = INP(&H60): kbd(k AND 127) = keystate(k)
  18.     xv = kbd(77) - kbd(75)
  19.     yv = kbd(80) - kbd(72)
  20.     GOSUB animate
  21.     screenmem%(mx%, my%) = 32
  22.     IF xv = -1 AND screenmem%(mx% - 1, my%) = 32 THEN mx% = mx% - 1
  23.     IF xv = 1 AND screenmem%(mx% + 1, my%) = 32 THEN mx% = mx% + 1
  24.     IF yv = -1 AND screenmem%(mx%, my% - 1) = 32 THEN my% = my% - 1
  25.     IF yv = 1 AND screenmem%(mx%, my% + 1) = 32 THEN my% = my% + 1
  26.     IF xv = -1 AND screenmem%(mx% - 1, my%) = 176 THEN mx% = mx% - 1: GOTO skp
  27.     IF xv = 1 AND screenmem%(mx% + 1, my%) = 176 THEN mx% = mx% + 1: GOTO skp
  28.     IF yv = -1 AND screenmem%(mx%, my% - 1) = 176 THEN my% = my% - 1: GOTO skp
  29.     IF yv = 1 AND screenmem%(mx%, my% + 1) = 176 THEN my% = my% + 1: GOTO skp
  30.     IF xv = -1 AND screenmem%(mx% - 1, my%) = 79 AND screenmem%(mx% - 2, my%) = 32 THEN screenmem%(mx% - 2, my%) = 79: screenmem%(mx% - 1, my%) = 32: mx% = mx% - 1
  31.     IF xv = 1 AND screenmem%(mx% + 1, my%) = 79 AND screenmem%(mx% + 2, my%) = 32 THEN screenmem%(mx% + 2, my%) = 79: screenmem%(mx% + 1, my%) = 32: mx% = mx% + 1
  32.     IF xv = -1 AND screenmem%(mx% - 1, my%) = 4 THEN mx% = mx% - 1: score = score + 1
  33.     IF xv = 1 AND screenmem%(mx% + 1, my%) = 4 THEN mx% = mx% + 1: score = score + 1
  34.     IF yv = 1 AND screenmem%(mx%, my% + 1) = 4 THEN my% = my% + 1: score = score + 1
  35.     skp:
  36.     _DELAY 0.10
  37.  
  38. LOOP UNTIL kbd(1) 'escape key exits
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45. animate:
  46.  
  47. FOR i = 1 TO 19
  48.     FOR j = 11 TO 1 STEP -1
  49.         IF screenmem%(i, j) = 79 AND screenmem%(i, j + 1) = 32 THEN screenmem%(i, j) = 32: screenmem%(i, j + 1) = 79
  50.         IF screenmem%(i, j) = 4 AND screenmem%(i, j + 1) = 32 THEN screenmem%(i, j) = 32: screenmem%(i, j + 1) = 4
  51.     NEXT j
  52.  
  53. displaymap:
  54.  
  55. FOR i = 1 TO 12
  56.     FOR j = 1 TO 20
  57.         b = screenmem%(j, i)
  58.         SELECT CASE b
  59.             CASE 79: COLOR 15
  60.             CASE 177: COLOR 4
  61.             CASE 234: COLOR 2
  62.             CASE 235: COLOR 2
  63.             CASE 176: COLOR 6
  64.             CASE 1: COLOR 14
  65.             CASE 219: COLOR 4
  66.             CASE 4: COLOR 1
  67.         END SELECT
  68.         _PRINTSTRING (j, i), CHR$(b)
  69.     NEXT j
  70. COLOR 6: _PRINTSTRING (4, 13), "SCORE - " + STR$(score)
  71.  
  72. readlev:
  73.  
  74. FOR i = 1 TO 12
  75.     FOR j = 1 TO 20
  76.         READ screenmem(j, i)
  77.         IF screenmem(j, i) = 1 THEN mx% = j: my% = i
  78.     NEXT j
  79.  
  80.  
  81.  
  82.  
  83. DATA 177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177
  84. DATA 177,79,79,4,177,234,32,32,32,32,32,32,32,177,79,4,79,4,79,177
  85. DATA 177,176,176,176,177,177,176,176,176,32,79,79,32,177,176,79,79,79,176,177
  86. DATA 177,176,177,177,177,176,176,79,176,32,176,176,32,177,176,176,176,176,176,177
  87. DATA 177,176,176,176,176,176,79,176,79,32,32,32,32,32,32,32,176,79,176,177
  88. DATA 177,176,79,176,79,176,177,4,177,1,177,177,177,177,177,32,176,176,176,219
  89. DATA 177,79,176,176,176,176,177,177,177,32,177,79,4,79,177,32,79,176,176,177
  90. DATA 177,176,176,176,176,176,176,176,177,32,177,4,79,4,177,32,176,79,79,177
  91. DATA 177,176,176,79,176,79,176,176,177,32,177,177,79,177,177,32,176,176,176,177
  92. DATA 177,176,79,176,79,176,79,176,177,32,176,176,176,176,176,32,176,79,176,177
  93. DATA 177,176,79,4,176,4,79,176,177,32,32,32,235,32,32,32,176,79,4,177
  94. DATA 177,177,177,177,177,177,177,177,177,177,219,177,177,177,177,177,177,177,177,177
  95.  
  96. 'The above DATA statements correspond directly to the ASCII values of each spot on the grid below
  97. 'DATA "±±±±±±±±±±±±±±±±±±±±"
  98. 'DATA "±OO±ê       ±OOO±"
  99. 'DATA "±°°°±±°°° OO ±°OOO°±"
  100. 'DATA "±°±±±°°O° °° ±°°°°°±"
  101. 'DATA "±°°°°°O°O       °O°±"
  102. 'DATA "±°O°O°±±±±±±± °°°Û"
  103. 'DATA "±O°°°°±±± ±OO± O°°±"
  104. 'DATA "±°°°°°°°± ±O± °OO±"
  105. 'DATA "±°°O°O°°± ±±O±± °°°±"
  106. 'DATA "±°O°O°O°± °°°°° °O°±"
  107. 'DATA "±°O°O°±   ë   °O±"
  108. 'DATA "±±±±±±±±±±Û±±±±±±±±±"
  109.  

https://github.com/SteveMcNeill/Steve64 — A github collection of all things Steve!

Offline PMACKAY

  • Forum Regular
  • Posts: 188
  • LIFE is Temporary
    • View Profile
Re: Poke to screen 0 for speed
« Reply #29 on: August 15, 2018, 08:09:33 am »
thank you for your tips. i found the keyboard routine over the net somewhere. i auctaully need the key left and right if pressed with space bar (space bar + left or space bar + right) to grab the diamond two spaces over so as to take a diamond without the rock in center falling in...


......O......
..D.v.......   so if spacebar pressed and direction will grab diamond without moving


MackyWhite