PowerBuilder Breakout Game
Source Code
Window w_breakout
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 |
forward global type w_breakout from window end type type cb_2 from commandbutton within w_breakout end type type st_3 from statictext within w_breakout end type type em_difficulty from editmask within w_breakout end type type st_2 from statictext within w_breakout end type type cb_auto from commandbutton within w_breakout end type type st_score from statictext within w_breakout end type type st_1 from statictext within w_breakout end type type cb_1 from commandbutton within w_breakout end type type dw_1 from datawindow within w_breakout end type end forward global type w_breakout from window integer x = 946 integer y = 464 integer width = 2807 integer height = 2336 boolean titlebar = true string title = "BREAKOUT" boolean controlmenu = true boolean resizable = true long backcolor = 80269524 cb_2 cb_2 st_3 st_3 em_difficulty em_difficulty st_2 st_2 cb_auto cb_auto st_score st_score st_1 st_1 cb_1 cb_1 dw_1 dw_1 end type global w_breakout w_breakout type variables Long il_sw = 2, il_paddle[21], il_x, il_paddle_x Boolean ib_auto = False String is_breakout Long il_xx end variables forward prototypes public subroutine wf_close () end prototypes public subroutine wf_close ();this.event post close() end subroutine on w_breakout.create this.cb_2=create cb_2 this.st_3=create st_3 this.em_difficulty=create em_difficulty this.st_2=create st_2 this.cb_auto=create cb_auto this.st_score=create st_score this.st_1=create st_1 this.cb_1=create cb_1 this.dw_1=create dw_1 this.Control[]={this.cb_2,& this.st_3,& this.em_difficulty,& this.st_2,& this.cb_auto,& this.st_score,& this.st_1,& this.cb_1,& this.dw_1} end on on w_breakout.destroy destroy(this.cb_2) destroy(this.st_3) destroy(this.em_difficulty) destroy(this.st_2) destroy(this.cb_auto) destroy(this.st_score) destroy(this.st_1) destroy(this.cb_1) destroy(this.dw_1) end on event closequery;If il_sw = 1 Then il_sw = 3 Return 1 Else Return 0 End If end event type cb_2 from commandbutton within w_breakout integer x = 923 integer y = 2036 integer width = 133 integer height = 84 integer taborder = 30 integer textsize = -8 integer weight = 400 fontcharset fontcharset = ansi! fontpitch fontpitch = variable! fontfamily fontfamily = swiss! string facename = "Arial" string text = "Help" end type event clicked;Open(w_help) end event type st_3 from statictext within w_breakout integer x = 1207 integer y = 2128 integer width = 800 integer height = 72 integer textsize = -8 integer weight = 400 fontcharset fontcharset = ansi! fontpitch fontpitch = variable! fontfamily fontfamily = swiss! string facename = "Arial" boolean italic = true long backcolor = 80269524 boolean enabled = false string text = "1 - easiest / 5 - most difficult" boolean focusrectangle = false end type type em_difficulty from editmask within w_breakout integer x = 1609 integer y = 2020 integer width = 169 integer height = 96 integer taborder = 40 integer textsize = -12 integer weight = 700 fontcharset fontcharset = ansi! fontpitch fontpitch = variable! fontfamily fontfamily = swiss! string facename = "Arial" long backcolor = 16777215 string text = "1" borderstyle borderstyle = stylelowered! string mask = "#" boolean spin = true double increment = 1 string minmax = "1~~5" end type type st_2 from statictext within w_breakout integer x = 1248 integer y = 2032 integer width = 347 integer height = 76 integer textsize = -12 integer weight = 700 fontcharset fontcharset = ansi! fontpitch fontpitch = variable! fontfamily fontfamily = swiss! string facename = "Arial" long backcolor = 80269524 boolean enabled = false string text = "Difficulty:" boolean focusrectangle = false end type type cb_auto from commandbutton within w_breakout integer x = 311 integer y = 2032 integer width = 544 integer height = 92 integer taborder = 20 integer textsize = -12 integer weight = 700 fontcharset fontcharset = ansi! fontpitch fontpitch = variable! fontfamily fontfamily = swiss! string facename = "Arial" string text = "Auto Play On" end type event clicked; If This.Text = 'Auto Play On' Then This.Text = 'Auto Play Off' ib_auto = True dw_1.Event oe_auto_play() Else This.Text = 'Auto Play On' ib_auto = False End If end event type st_score from statictext within w_breakout integer x = 2359 integer y = 2024 integer width = 347 integer height = 92 integer textsize = -12 integer weight = 700 fontcharset fontcharset = ansi! fontpitch fontpitch = variable! fontfamily fontfamily = swiss! string facename = "Arial" boolean italic = true long textcolor = 65280 long backcolor = 0 boolean enabled = false string text = "0" boolean border = true borderstyle borderstyle = stylelowered! boolean focusrectangle = false end type type st_1 from statictext within w_breakout integer x = 2085 integer y = 2032 integer width = 256 integer height = 76 integer textsize = -12 integer weight = 700 fontcharset fontcharset = ansi! fontpitch fontpitch = variable! fontfamily fontfamily = swiss! string facename = "Arial" long backcolor = 80269524 boolean enabled = false string text = "Score:" boolean focusrectangle = false end type type cb_1 from commandbutton within w_breakout integer x = 27 integer y = 2032 integer width = 261 integer height = 92 integer taborder = 50 integer textsize = -12 integer weight = 700 fontcharset fontcharset = ansi! fontpitch fontpitch = variable! fontfamily fontfamily = swiss! string facename = "Arial" string text = "Start" boolean default = true end type event clicked;Long ll_row, ll_row2, ll_y_max, ll_x_max, ll_y, ll_yy, ll_row3, ll_row_1, ll_row_2, ll_row_0 Long ll_array[18,21], ll_col, ll_col_l, ll_col_r, ll_col_l1, ll_col_r1, ll_score, ll_redraw_sw, ll_row_x Boolean lb_match Long ll_row_t, ll_mod, ll_mod2, ll_mod3, ll_col_l2, ll_col_r2 If This.Text = 'Stop' Then il_sw = 2 This.Text = 'Start' Else Start: st_score.Text = '0' ll_score = 0 dw_1.DataObject = 'd_breakout' //Build a multidimsional array to simulate the box_vis column of the breakout datawindow //Its much faster to manipulate arrays then to manipulate datawindows so have the array do as //much as possible. Put it here because each time you press 'Start' the game starts over. ll_array = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,& 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0} //Set the maximum x and y values ll_y_max = (84 * dw_1.RowCount()) - 84 ll_x_max = 2633 ll_yy = ll_y_max il_sw = 1 //Set the random initial starting position of the ball ll_col = Randomize(0) il_xx = Rand(ll_x_max) dw_1.Object.oval_1.Visible = 1 //Set the x and y intervals of the movement of the ball ll_y = -3 il_x = 4 dw_1.Object.xx[1] = il_xx //Initialize the autoplay feature dw_1.Event oe_auto_play() This.Text = 'Stop' End If //Because the actual ball object is really a rectangle you must approximate the position of the ball when it gets //close to a blue brick. This can be done much more elaborately and accurately using trigonometric functions. //But since I took Calc I 3 times I decided not to persue it. I will leave that as an exercise for one of you. Do Until il_sw > 1 //The ball can be on two rows at the same time. Calculate those rows for roughly the upper, middle and lower // part of the ball. ll_mod = Mod(ll_yy,84) ll_mod2 = Mod(ll_yy + 26,84) ll_mod3 = Mod(ll_yy + 38,84) ll_row_x = Ceiling((ll_yy - 14) / 84) ll_row_0 = Ceiling((ll_yy + 26) / 84) ll_row_1 = Ceiling((ll_yy) / 84) ll_row_2 = Ceiling((ll_yy + 38) / 84) //If the upper part is on row 0, game over If ll_row_1 = 0 Then il_sw = 2 If ib_auto Then Goto Start //This isnt an example of OO programming, OK Else MessageBox('','******* YOU WIN *******') This.Text = 'Start' Exit End If End If //IF min x or max x is reached go the other way If il_xx >= ll_x_max Then il_x = -4 ElseIf il_xx <= 0 Then il_x = 4 End If lb_match = False If ib_auto Then //If on auto move the paddle If il_xx > 125 And il_xx < ll_x_max Then il_paddle_x = il_xx - 125 dw_1.Object.paddle_x[23] = il_paddle_x dw_1.Object.paddle_vis[23] = 1 End If End If If ll_row_1 <= 17 Then //Different surfaces of the ball will contact different bricks. For example does the top of the ball hit the //underside of a brick before the right side of the ball hit the left side of the brick? //This is approximated by determining which 'col' or 'brick' the left, right and middle parts of the ball are // based on its x value. This is very crude as the 'ball' is really defined as a rectangle in PB //but its a fair approximation ll_col = Ceiling((il_xx + 50) / 137) ll_col_l = Ceiling((il_xx + 35) / 137) ll_col_r = Ceiling((il_xx + 65) / 137) ll_col_l1 = Ceiling((il_xx + 12) / 137) ll_col_r1 = Ceiling((il_xx + 93) / 137) ll_col_l2 = Ceiling((il_xx + 6) / 137) ll_col_r2 = Ceiling((il_xx + 99) / 137) //Contact in the Y direction is checked first If ll_y < 0 Then If ll_mod < 72 And ll_mod > 0 Then //The ball will only strike the underside of a brick while its going up If ll_array[ll_row_1,ll_col] = 1 Then lb_match = True ll_y = 3 Goto here End If If ll_mod < 66 Then If ll_array[ll_row_1,ll_col_l] = 1 Then ll_col = ll_col_l lb_match = True ll_y = 3 Goto here End If If ll_array[ll_row_1,ll_col_r] = 1 Then ll_col = ll_col_r lb_match = True ll_y = 3 Goto here End If End If End If ElseIf ll_row_1 < 17 Then //The ball will only strike the top of a brick while its going down If ll_mod >= 16 Then If ll_array[ll_row_1 + 1,ll_col] = 1 Then ll_row_1++ lb_match = True ll_y = -3 Goto here End If If ll_mod >= 22 Then If ll_array[ll_row_1 + 1,ll_col_l] = 1 Then ll_row_1++ ll_col = ll_col_l lb_match = True ll_y = -3 Goto here End If If ll_array[ll_row_1+1,ll_col_r] = 1 Then ll_row_1++ ll_col = ll_col_r lb_match = True ll_y = -3 Goto here End If End If End If End If //Now check for contact in the X direction If il_x < 0 Then If ll_mod2 <= 52 Then If ll_array[ll_row_0,ll_col_l1] = 1 Then ll_col = ll_col_l1 ll_row_1 = ll_row_0 lb_match = True il_x = 4 Goto here End If ElseIf ll_mod2 <= 76 Then If ll_array[ll_row_2,ll_col_l2] = 1 Then ll_col = ll_col_l2 ll_row_1 = ll_row_2 lb_match = True il_x = 4 Goto here End If End If Else If ll_mod2 <= 52 Then If ll_array[ll_row_0,ll_col_r1] = 1 Then ll_col = ll_col_r1 ll_row_1 = ll_row_0 lb_match = True il_x = -4 Goto here End If ElseIf ll_mod2 <= 76 Then If ll_array[ll_row_2,ll_col_r2] = 1 Then ll_col = ll_col_r2 ll_row_1 = ll_row_2 lb_match = True il_x = -4 Goto here End If End If End If ElseIf ll_row_x >= 22 And ll_y > 0 Then //If the ball is on the last row check for the location of the paddle //To make the paddle more 'forgiving' you can adjust the boundries of a 'hit' //In this case its the 50 in the line below. The higher the number the greater tolerance for miss hits. If il_xx + 50 > il_paddle_x And il_xx + 50 < il_paddle_x + 251 Then //A hit. If all the bricks from the last brick row are gone, move all bricks down a row //and add a row at the top If dw_1.Object.box_vis[17] = '00000000000000000000' Then dw_1.RowsDiscard(22,22,primary!) dw_1.RowsCopy(1,1,primary!,dw_1,1,primary!) dw_1.Object.yy[2] = 1 dw_1.Object.xx[2] = 1 dw_1.Object.Color[1] = dw_1.Object.Color[5] //must refresh array For ll_row2 = 17 To 1 Step -1 For ll_row3 = 1 To 21 ll_array[ll_row2+1,ll_row3] = ll_array[ll_row2,ll_row3] Next Next End If ll_y = -3 Else MessageBox('','******* LOOOOSSSSEEER *******') il_sw = 2 This.Text = 'Start' Return End If End If here: If lb_match Then //If there is a hit make the brick invisible and set the array value to 0 ll_score = ll_score + 10 st_score.Text = String(ll_score) ll_array[ll_row_1,ll_col] = 0 //Mustidimensional datawindow!!! dw_1.Object.box_vis[ll_row_1] = ReplaceA(dw_1.Object.box_vis[ll_row_1],ll_col,1,'0') Beep(1) End If If KeyDown(keyrightarrow!) Then //Move paddle right If il_paddle_x < ll_x_max - 251 Then il_paddle_x = il_paddle_x + 10 dw_1.Object.paddle_x[23] = il_paddle_x dw_1.Object.paddle_vis[23] = 1 End If ElseIf KeyDown(keyleftarrow!) Then //Move paddle left If il_paddle_x > 0 Then il_paddle_x = il_paddle_x - 10 dw_1.Object.paddle_x[23] = il_paddle_x dw_1.Object.paddle_vis[23] = 1 End If End If //Move ball il_xx = il_xx + il_x ll_yy = ll_yy + ll_y dw_1.Object.yy[1] = ll_yy dw_1.Object.xx[1] = il_xx If Not ib_auto Then ll_redraw_sw++ //Use the setredraw to control the speed of play in the manual mode. Notice how the setredraw function //affect performance If ll_redraw_sw = Long(em_difficulty.Text) Then dw_1.SetRedraw(True) ll_redraw_sw = 0 End If End If Yield() Loop //Close if you press close If il_sw = 3 Then Close(Parent) End If end event event constructor;is_breakout = '1,1,84,65535,"11111111111111111111",0,0'+& '1,1,84,255,"11111111111111111111",0,0'+& '1,1,84,16776960,"11111111111111111111",0,0'+& '1,1,84,16711680,"11111111111111111111",0,0'+& '1,1,84,65535,"11111111111111111111",0,0'+& '1,1,84,255,"11111111111111111111",0,0'+& '1,1,84,16776960,"11111111111111111111",0,0'+& '1,1,84,16711680,"11111111111111111111",0,0'+& '1,1,84,65535,"11111111111111111111",0,0'+& '1,1,84,255,"11111111111111111111",0,0'+& '1,1,84,16776960,"11111111111111111111",0,0'+& '1,1,84,16711680,"11111111111111111111",0,0'+& '1,1,84,65535,"11111111111111111111",0,0'+& '1,1,84,255,"11111111111111111111",0,0'+& '1,1,84,16776960,"11111111111111111111",0,0'+& '1,1,84,16711680,"11111111111111111111",0,0'+& '1,1,84,65535,"11111111111111111111",0,0'+& '1,1,84,255,"11111111111111111111",0,0'+& '1,1,84,16776960,"11111111111111111111",0,0'+& '1,1,84,16711680,"00000000000000000000",0,0'+& '1,1,84,65535,"00000000000000000000",0,0'+& '1,1,84,255,"00000000000000000000",0,0'+& '1,1,84,16776960,"00000000000000000000",1,10' end event type dw_1 from datawindow within w_breakout event oe_auto_play ( ) event oe_mm pbm_mousemove event key pbm_dwnkey event hscroll pbm_hscroll integer y = 8 integer width = 2766 integer height = 1956 integer taborder = 10 string dataobject = "d_breakout" borderstyle borderstyle = stylelowered! end type event oe_auto_play;il_paddle_x = il_xx - 125 dw_1.object.paddle_x[23] = il_paddle_x //long ll_row, ll_xx, ll_col, ll_paddle[] //IF dw_1.rowcount() > 0 THEN // ll_paddle = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} // ll_xx = il_x // ll_row = CEILING(ll_yy / 84) // ll_col = dw_1.object.array_col[ll_row] // //// il_paddle_x = xpos - 125 //// this.object.paddle_x[23] = xpos - 125 // // // IF ll_col > 1 THEN // IF il_x > 0 THEN // ll_paddle[ll_col - 1] = 1 // ll_paddle[ll_col] = 1 // ELSE // ll_paddle[ll_col] = 1 // ll_paddle[ll_col+1] = 1 // END IF // ELSE // ll_paddle[ll_col] = 1 // ll_paddle[ll_col+1] = 1 // END IF // il_paddle = ll_paddle // dw_1.object.paddle_x[23] = ll_col //END IF end event event oe_mm;Long ll_x If flags = 1 Then il_paddle_x = xpos - 125 This.Object.paddle_x[23] = il_paddle_x End If end event event key;Long ll_x, ll_difficulty If Key = keyuparrow! Then ll_difficulty = Long(em_difficulty.Text) If ll_difficulty < 5 Then em_difficulty.Text = String(ll_difficulty + 1) End If ElseIf Key = keydownarrow! Then ll_difficulty = Long(em_difficulty.Text) If ll_difficulty > 1 Then em_difficulty.Text = String(ll_difficulty - 1) End If End If dw_1.SetRedraw(True) end event event hscroll;Return 1 end event |
DataWindow d_breakout
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
release 10.5; datawindow(units=0 timer_interval=0 color=0 processing=0 HTMLDW=no print.printername="" print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 96 print.margin.bottom = 96 print.paper.source = 0 print.paper.size = 0 print.canusedefaultprinter=yes print.prompt=no print.buttons=no print.preview.buttons=no print.cliptext=no print.overrideprintjob=no print.collate=yes print.preview.outline=yes hidegrayline=no ) header(height=0 color="536870912" ) summary(height=0 color="536870912" ) footer(height=0 color="536870912" ) detail(height=84 color="553648127" ) table(column=(type=long updatewhereclause=no name=xx dbname="xx" ) column=(type=long updatewhereclause=no name=yy dbname="yy" ) column=(type=long updatewhereclause=no name=detail_height dbname="detail_height" ) column=(type=long updatewhereclause=no name=color dbname="color" ) column=(type=char(20) updatewhereclause=no name=box_vis dbname="box_vis" ) column=(type=long updatewhereclause=no name=paddle_vis dbname="paddle_vis" ) column=(type=long updatewhereclause=no name=paddle_x dbname="paddle_x" ) ) data( 1, 1, 84, 65535,"11111111111111111111", 0, 0, 1, 1, 84, 255,"11111111111111111111", 0, 0, 1, 1, 84, 16776960,"11111111111111111111", 0, 0, 1, 1, 84, 16711680,"11111111111111111111", 0, 0, 1, 1, 84, 65535,"11111111111111111111", 0, 0, 1, 1, 84, 255,"11111111111111111111", 0, 0, 1, 1, 84, 16776960,"11111111111111111111", 0, 0, 1, 1, 84, 16711680,"11111111111111111111", 0, 0, 1, 1, 84, 65535,"11111111111111111111", 0, 0, 1, 1, 84, 255,"11111111111111111111", 0, 0, 1, 1, 84, 16776960,"11111111111111111111", 0, 0, 1, 1, 84, 16711680,"11111111111111111111", 0, 0, 1, 1, 84, 65535,"11111111111111111111", 0, 0, 1, 1, 84, 255,"11111111111111111111", 0, 0, 1, 1, 84, 16776960,"11111111111111111111", 0, 0, 1, 1, 84, 16711680,"11111111111111111111", 0, 0, 1, 1, 84, 65535,"11111111111111111111", 0, 0, 1, 1, 84, 255,"00000000000000000000", 0, 0, 1, 1, 84, 16776960,"00000000000000000000", 0, 0, 1, 1, 84, 16711680,"00000000000000000000", 0, 0, 1, 1, 84, 65535,"00000000000000000000", 0, 0, 1, 1, 84, 255,"00000000000000000000", 0, 0, 1, 1, 84, 16776960,"00000000000000000000", 1, 10,) rectangle(band=detail x="5" y="0" height="84" width="3803" name=paddle_back visible="1~tIF(getrow() = 23,1,0)" brush.hatch="6" brush.color="0~t paddle_vis - 1" pen.style="0" pen.width="5" pen.color="0" background.mode="2" background.color="0" ) ellipse(band=detail x="4183~tfirst_xx" y="0~tmax(yy for all) - ((cumulativeSum( 1 for all ) - 1) * max(detail_height))" height="84" width="101" name=oval_1 visible="1~t0" brush.hatch="6" brush.color="0~t color" pen.style="0" pen.width="5" pen.color="0" background.mode="2" background.color="0" ) compute(band=detail alignment="0" expression="first( xx for all)"border="0" color="0" x="3232" y="0" height="56" width="183" format="[general]" html.valueishtml="0" name=first_xx visible="1~t0" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) rectangle(band=detail x="0" y="16" height="52" width="128" name=r_1 visible="1~tLONG(MID( box_vis ,1,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="137" y="16" height="52" width="128" name=r_2 visible="1~tLONG(MID( box_vis ,2,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="274" y="16" height="52" width="128" name=r_3 visible="1~tLONG(MID( box_vis ,3,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="411" y="16" height="52" width="128" name=r_4 visible="1~tLONG(MID( box_vis ,4,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="549" y="16" height="52" width="128" name=r_5 visible="1~tLONG(MID( box_vis ,5,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="686" y="16" height="52" width="128" name=r_6 visible="1~tLONG(MID( box_vis ,6,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="823" y="16" height="52" width="128" name=r_7 visible="1~tLONG(MID( box_vis ,7,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="960" y="16" height="52" width="128" name=r_8 visible="1~tLONG(MID( box_vis ,8,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="1097" y="16" height="52" width="128" name=r_9 visible="1~tLONG(MID( box_vis ,9,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="1234" y="16" height="52" width="128" name=r_10 visible="1~tLONG(MID( box_vis ,10,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="1371" y="16" height="52" width="128" name=r_11 visible="1~tLONG(MID( box_vis ,11,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="1509" y="16" height="52" width="128" name=r_12 visible="1~tLONG(MID( box_vis ,12,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="1632~tpaddle_x" y="16" height="56" width="251" name=paddle visible="1~t paddle_vis" brush.hatch="6" brush.color="80269524" pen.style="0" pen.width="5" pen.color="80269524" background.mode="2" background.color="80269524" ) rectangle(band=detail x="1646" y="16" height="52" width="128" name=r_13 visible="1~tLONG(MID( box_vis ,13,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="1783" y="16" height="52" width="128" name=r_14 visible="1~tLONG(MID( box_vis ,14,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="1920" y="16" height="52" width="128" name=r_15 visible="1~tLONG(MID( box_vis ,15,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="2057" y="16" height="52" width="128" name=r_16 visible="1~tLONG(MID( box_vis ,16,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="2194" y="16" height="52" width="128" name=r_17 visible="1~tLONG(MID( box_vis ,17,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="2331" y="16" height="52" width="128" name=r_18 visible="1~tLONG(MID( box_vis ,18,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="2469" y="16" height="52" width="128" name=r_19 visible="1~tLONG(MID( box_vis ,19,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) rectangle(band=detail x="2606" y="16" height="52" width="128" name=r_20 visible="1~tLONG(MID( box_vis ,20,1))" brush.hatch="6" brush.color="16711680" pen.style="0" pen.width="5" pen.color="65535" background.mode="2" background.color="0" ) htmltable(border="1" ) htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" encodeselflinkargs="1" netscapelayers="0" pagingmethod=0 generatedddwframes="1" ) xhtmlgen() cssgen(sessionspecific="0" ) xmlgen(inline="0" ) xsltgen() jsgen() export.xml(headgroups="1" includewhitespace="0" metadatatype=0 savemetadata=0 ) import.xml() export.pdf(method=0 distill.custompostscript="0" xslfop.print="0" ) export.xhtml() |
Window w_help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 |
forward global type w_help from Window end type type mle_1 from multilineedit within w_help end type type cb_1 from commandbutton within w_help end type type st_5 from statictext within w_help end type type st_4 from statictext within w_help end type type st_3 from statictext within w_help end type type st_2 from statictext within w_help end type type st_1 from statictext within w_help end type end forward global type w_help from Window int X=1056 int Y=836 int Width=2569 int Height=1396 boolean TitleBar=true string Title="HELP" long BackColor=80269524 boolean ControlMenu=true WindowType WindowType=response! mle_1 mle_1 cb_1 cb_1 st_5 st_5 st_4 st_4 st_3 st_3 st_2 st_2 st_1 st_1 end type global w_help w_help on w_help.create this.mle_1=create mle_1 this.cb_1=create cb_1 this.st_5=create st_5 this.st_4=create st_4 this.st_3=create st_3 this.st_2=create st_2 this.st_1=create st_1 this.Control[]={this.mle_1,& this.cb_1,& this.st_5,& this.st_4,& this.st_3,& this.st_2,& this.st_1} end on on w_help.destroy destroy(this.mle_1) destroy(this.cb_1) destroy(this.st_5) destroy(this.st_4) destroy(this.st_3) destroy(this.st_2) destroy(this.st_1) end on type mle_1 from multilineedit within w_help int X=18 int Y=784 int Width=2368 int Height=280 boolean Border=false string Text="The paddle is controlled when auto play is off by using the left arrow to move the paddle left and the right arrow to move the paddle right. You may also use your mouse by holding down the left mouse button while moving the mouse." long BackColor=80269524 int TextSize=-10 int Weight=400 string FaceName="Arial" FontCharSet FontCharSet=Ansi! FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type cb_1 from commandbutton within w_help int X=1147 int Y=1144 int Width=247 int Height=108 int TabOrder=20 string Text="OK" int TextSize=-10 int Weight=400 string FaceName="Arial" FontCharSet FontCharSet=Ansi! FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type event clicked;close(parent) end event type st_5 from statictext within w_help int X=27 int Y=488 int Width=2336 int Height=276 boolean Enabled=false string Text="Difficulty controls the speed of play when auto play is off with 1 being the least difficult and 5 being the most difficult. Points are higher with the higher difficulty setting. During play you can increase the difficulty by pressing the up arrow and decrease the difficulty by pressing the down arrow." boolean FocusRectangle=false long BackColor=80269524 int TextSize=-10 int Weight=400 string FaceName="Arial" FontCharSet FontCharSet=Ansi! FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type st_4 from statictext within w_help int X=27 int Y=388 int Width=2139 int Height=84 boolean Enabled=false string Text="Auto Play Off takes the game off auto play and the user must operate the paddle" boolean FocusRectangle=false long BackColor=80269524 int TextSize=-10 int Weight=400 string FaceName="Arial" FontCharSet FontCharSet=Ansi! FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type st_3 from statictext within w_help int X=32 int Y=228 int Width=2126 int Height=144 boolean Enabled=false string Text="Auto Play On makes the game go into auto play which will begin an endless loop where the game plays on its own and replays continuously." boolean FocusRectangle=false long BackColor=80269524 int TextSize=-10 int Weight=400 string FaceName="Arial" FontCharSet FontCharSet=Ansi! FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type st_2 from statictext within w_help int X=32 int Y=144 int Width=768 int Height=76 boolean Enabled=false string Text="Stop Button ends the game" boolean FocusRectangle=false long BackColor=80269524 int TextSize=-10 int Weight=400 string FaceName="Arial" FontCharSet FontCharSet=Ansi! FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type st_1 from statictext within w_help int X=32 int Y=52 int Width=768 int Height=76 boolean Enabled=false string Text="Start Button starts the game" boolean FocusRectangle=false long BackColor=80269524 int TextSize=-10 int Weight=400 string FaceName="Arial" FontCharSet FontCharSet=Ansi! FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type |
Get From Internet
Find Projects On Github click here
I’m not sure where you are getting your info, but great topic.
I needs to spend some time learning much more
or understanding more. Thanks for excellent info I was looking for
this information for my mission.
Wow that was unusual. I just wrote an very long comment but after I clicked submit
my comment didn’t appear. Grrrr… well I’m
not writing all that over again. Anyhow, just wanted to say excellent blog!
Everyone loves what you guys are up too. This sort of clever work and exposure!
Keep up the very good works guys I’ve you guys to blogroll.
Everything is very open with a very clear clarification of the challenges.
It was really informative. Your website is very helpful.
Thanks for sharing!
WOW just what I was searching for. Came here by searching for instagram takipci satin al
Hmm is anyone else having problems with the images on this blog loading?
I’m trying to figure out if its a problem on my end or if it’s the blog.
Any feed-back would be greatly appreciated.
Wonderful items from you, man. I have consider your stuff previous
to and you’re simply extremely great. I really like what you have bought right here, really like what you’re saying and the best way during which you say it.
You’re making it enjoyable and you continue to take care of to stay it smart.
I cant wait to learn far more from you. That is really
a wonderful site.
I loved as much as you’ll receive carried out right here.
The sketch is tasteful, your authored subject matter stylish.
nonetheless, you command get bought an nervousness over that you wish be delivering the following.
unwell unquestionably come further formerly again as
exactly the same nearly a lot often inside case you shield this
hike.
It’s going to be ending of mine day, but before end I am reading this fantastic piece
of writing to increase my experience.
Right here is the perfect webpage for anyone who wants to understand this topic.
You realize so much its almost tough to argue with you (not that I really would want to…HaHa).
You certainly put a brand new spin on a topic which has been written about for decades.
Excellent stuff, just great!
I know this website provides quality based articles and additional information, is
there any other website which provides these kinds of information in quality?
great issues altogether, you simply won a new reader. What could you recommend about your put up that you simply made some days in the past?
Any certain?
If you want to get a good deal from this article then you
have to apply these techniques to your won web
site.
Very good information. Lucky me I discovered your website by accident
(stumbleupon). I have book marked it for later!