Возможно добавлю:
-ограничение нажатий ( игрок использовав все нажатия устройства в этой версии блокирует нажатие соперника )
-оптимизация кода
-настройки
-бонусы
-больше игроков, до 4( но требование будет уже более трех нажатий )
-что предложите ?
Code: Select all
xsize = get_xsize(0)
ysize = get_ysize(0)
while(1) { //главный цикл
//сброс некоторых переменых
while(get_event()){
if EVT [EVT_TYPE] == EVT_QUIT {halt}
}
var = 0
player1 = 0
player2 = 0
//запрос на старт игры
while( player1 + player2 < 2 ) {
frame()
clear(RED)
fvar = ( fvar*2 + var ) / 3
fbox( fvar-xsize, -ysize/2, xsize, ysize, BLUE)
if player1 == 0 {
lines( -xsize/2, -ysize/2, xsize/2, ysize)
}
if player2 == 0 {
lines( 0, -ysize/2, xsize/2, ysize)
}
while(get_event()) {
if EVT [EVT_TYPE] == (EVT_MOUSEBUTTONDOWN) | EVT [EVT_TYPE] == (EVT_TOUCHBEGIN) {
x = EVT [ EVT_X ]
if x < 0 {
player1 = 1
} else {
player2 = 1
}
}
if EVT [EVT_TYPE] == EVT_QUIT {halt}
}
}
//сама игра
while( var > -xsize/2 & var < xsize/2 ) {
frame()
clear(RED)
fvar = ( fvar*2 + var ) / 3
fbox( fvar-xsize, -ysize/2, xsize, ysize, BLUE)
//обработка нажатий
while(get_event()) {
if EVT [EVT_TYPE] == (EVT_MOUSEBUTTONDOWN) | EVT [EVT_TYPE] == (EVT_TOUCHBEGIN) {
x = EVT [ EVT_X ]
if x < var {
var + 30
} else {
var - 30
}
if EVT [EVT_TYPE] == EVT_QUIT {halt}
}
}
}
//плавное выранивание поля по центру
while( fvar<-5 | fvar>5 ) {
frame()
fvar = fvar * 4 div 5
if fvar > 0 {
fbox( fvar, -ysize/2, xsize/2, ysize, RED)
} else {
fbox( fvar-(xsize/2), -ysize/2, xsize/2, ysize, BLUE)
}
}
}
//функция штрифовки экрана
fn lines( $x, $y, $xsize, $ysize, $size) {
$lx = $x
$xsize = $xsize + $x
$ysize = $ysize + $y
if $size<2 {$size = 10}
while($y < $ysize){
$x = $lx
if $y>0 {
var1 = $y - $y div $size * $size - ($size/2)
} else {
var1 = $y - $y div $size * $size + ($size/2)
}
while($x-$size < $xsize){
dot( var1 + $x , $y, BLACK)
$x + $size
}
$y + 1
}
}