test2.cpp 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. #include <KSGSStandart.h>
  2. var Säule s1;
  3. var Säule s2;
  4. var Säule s3;
  5. var Säule s4;
  6. var Spieler p;
  7. var bool läuft = false;
  8. var bool sStart = true;
  9. class Säule
  10. {
  11. private:
  12. var double x = 0;
  13. var int br = 100;
  14. var int y = 300;
  15. var int hö = 100;
  16. public:
  17. func void set( int n )
  18. {
  19. x = n * 300;
  20. y = Rückruf( "zufall", 150, 450 );
  21. }
  22. func void tick( double zeit )
  23. {
  24. x = x - ( zeit * 60 );
  25. if( (x + br) < 0 )
  26. {
  27. x = 1100;
  28. y = ( ( ( ( y + 2 ) * ( zeit * 100 ) ) % 4 ) * 100 ) + 150;
  29. }
  30. }
  31. func void render( Bild b )
  32. {
  33. b.füllRegion( x, 0, br, y, 0xFFFFFFFF );
  34. b.füllRegion( x, y + hö, br, 900 - ( y + hö ), 0xFFFFFFFF );
  35. }
  36. func bool collidiert( int xp, int yp, int brp, int höp )
  37. {
  38. if( ( xp + brp ) > x && xp < ( x + br ) )
  39. {
  40. if( yp < y || ( yp + höp ) > ( y + hö ) ) { return true; }
  41. }
  42. return false;
  43. }
  44. };
  45. class Spieler
  46. {
  47. private:
  48. var int x = 120;
  49. var double y = 320;
  50. var int br = 40;
  51. var int hö = 40;
  52. var double yS = 0;
  53. var double score = 0;
  54. var TextFeld scoreTF;
  55. public:
  56. func void set()
  57. {
  58. scoreTF.setPosition( 35, 35 );
  59. scoreTF.setGröße( 100, 30 );
  60. scoreTF.setStyle( 0x901 );
  61. scoreTF.setSchriftFarbe( 0xFF00FF00 );
  62. scoreTF.setSchriftGröße( 20 );
  63. scoreTF.setText( "Score: 0" );
  64. score = 0;
  65. y = 320;
  66. yS = 0;
  67. }
  68. func void tastatur( TastaturEreignis te )
  69. {
  70. yS = 10;
  71. }
  72. func void tick( double zeit )
  73. {
  74. score = score + ( zeit * 60 );
  75. y -= ( yS * zeit * 20 );
  76. yS -= ( zeit * 30 );
  77. var int sc;
  78. sc = ( score + 20 ) / 300;
  79. var Text sct = "Score: ";
  80. sct += sc;
  81. scoreTF.setText( sct );
  82. }
  83. func void render( Bild b )
  84. {
  85. b.füllRegion( x, y, br, hö, 0xFF00FF00 );
  86. scoreTF.render( 0, 0, b );
  87. }
  88. func bool collidiert( Säule s )
  89. {
  90. if( y < 0 ){ return true; }
  91. if( (y + hö ) > 700 ){ return true; }
  92. return s.collidiert( x, y, br, hö );
  93. }
  94. };
  95. func void start()
  96. {
  97. s1.set( 0 );
  98. s2.set( 1 );
  99. s3.set( 2 );
  100. s4.set( 3 );
  101. p.set();
  102. }
  103. func bool maus( MausEreignis me )
  104. {
  105. return true;
  106. }
  107. func bool tastatur( TastaturEreignis te )
  108. {
  109. if( te.id != 0 ){ return false; }
  110. if( läuft != true )
  111. {
  112. if( sStart != true )
  113. {
  114. s1.set( 0 );
  115. s2.set( 1 );
  116. s3.set( 2 );
  117. s4.set( 3 );
  118. p.set();
  119. }
  120. läuft = true;
  121. sStart = false;
  122. }
  123. p.tastatur( te );
  124. return true;
  125. }
  126. func bool tick( double zeit )
  127. {
  128. if( läuft != true ){ return false; }
  129. s1.tick( zeit );
  130. s2.tick( zeit );
  131. s3.tick( zeit );
  132. s4.tick( zeit );
  133. p.tick( zeit );
  134. if( p.collidiert( s1 ) || p.collidiert( s2 ) || p.collidiert( s3 ) || p.collidiert( s4 ) ) { läuft = false; }
  135. return true;
  136. }
  137. func void render( int xOff, int yOff, Bild rObj )
  138. {
  139. s1.render( rObj );
  140. s2.render( rObj );
  141. s3.render( rObj );
  142. s4.render( rObj );
  143. p.render( rObj );
  144. }