Игра ЯЙЦА
Re: Игра ЯЙЦА
Фант, подскажи пожалуйста, не могу сделать, чтоб случайным образом одно яйцо из четырёх появлялось и катилось. Потом нужно будет, чтоб дошло до 4 яиц и пока в картину не попадут, новое яйцо не появится.
Code: Select all
GRAPHICS
GRAPHICS CLEAR 1,1,1
OPTION ANGLE DEGREES
OPTION SPRITE POS CENTRAL
OPTION IMAGE POS CENTRAL
OPTION TEXT POS CENTRAL
SET ORIENTATION LANDSCAPE
SET TOOLBAR OFF
RANDOMIZE
maxx=SCREEN_WIDTH()
maxy=SCREEN_HEIGHT()
DRAW ALPHA 0.8
DRAW IMAGE "System/grass.png" AT maxx/2,maxy/2 SCALE 1.5
d$="das"
BUTTON d$ TEXT "выход" AT 3/2*(maxx/23),(maxy-2*(maxx/23)) SIZE (maxx/23)*3,(maxx/23)*2
'данные игры
tim=TIME()
t=1 ! ur=5
s=0.4 ! smv=.7 ! smn=.55
lv$="perch"
pnx=350 ! pnx= 220
pvx=350 ! pvy=122
lnx=103 ! lny=179
lvx=103 ! lvy=118 ! se=0.12 ! sbe=0.03
x1=103 ! x2=118
xe1=.2 ! ye1=.12
b=0 ! n=1.5
sch$=0 ! sche$=" Счет: "
' размер экрана 568,320
'размещение кур
SPRITE "hen_pv" LOAD "System/hen3.png"
SPRITE "hen_pv" AT 500,92 SCALE s
SPRITE "hen_pv" COPY "hen_lv"
SPRITE "hen_lv" AT 70,92 SCALE s FLIP 1
SPRITE "hen_pv" COPY "hen_ln"
SPRITE "hen_ln" AT 70,152 SCALE s FLIP 1
SPRITE "hen_pv" COPY "hen_pn"
SPRITE "hen_pn" AT 500,152 SCALE s
SPRITE "hen_pv" SHOW
SPRITE "hen_lv" SHOW
SPRITE "hen_ln" SHOW
SPRITE "hen_pn" SHOW
'рисование насеста
DRAW COLOR 0,0,0
SPRITE lv$ BEGIN 50,10
DRAW SIZE 10
DRAW LINE 0,0 TO 45,0
SPRITE END
SPRITE lv$ AT 70,125
SPRITE lv$ COPY "perch_pv"
SPRITE "perch_pv" AT 505,125
SPRITE lv$ COPY "perch_pn"
SPRITE "perch_pn" AT 505,185
SPRITE lv$ COPY "perch_ln"
SPRITE "perch_ln" AT 70,185
SPRITE lv$ COPY "perch_lvu"
SPRITE "perch_lvu" RESIZE 100,10
SPRITE "perch_lvu" AT 130,149 ANGLE 30
SPRITE "perch_lvu" COPY "perch_lnu"
SPRITE "perch_lnu" AT 130,209 ANGLE 30
SPRITE "perch_lvu" COPY "perch_pvu"
SPRITE "perch_pvu" AT 449,144 ANGLE -30
SPRITE "perch_lvu" COPY "perch_pnu"
SPRITE "perch_pnu" AT 449,204 ANGLE -30
SPRITE "perch_pnu" SHOW
SPRITE "perch_pvu" SHOW
SPRITE "perch_lnu" SHOW
SPRITE "perch_lvu" SHOW
SPRITE "perch_ln" SHOW
SPRITE "perch_pn" SHOW
SPRITE "perch_pv" SHOW
SPRITE lv$ SHOW
SPRITE "b_egg" LOAD "System/broken egg.png"
SPRITE "b_egg" AT 175,280 SCALE sbe
SPRITE "b_egg" SHOW
SPRITE "b_egg" ALPHA 0
SPRITE "b_egg" COPY "dead_lives"
SPRITE "dead_lives" AT 350,60 SCALE sbe
SPRITE "dead_lives" SHOW
SPRITE "dead_lives" ALPHA 1
SPRITE "dead_lives" HIDE
SPRITE "masha_up_pv" LOAD "System/Masha up.png"
SPRITE "masha_up_pv" AT 340,220 SCALE smv FLIP 1
SPRITE "masha_up_pv" SHOW
SPRITE "masha_up_pv" COPY "masha_up_lv"
SPRITE "masha_up_lv" AT 230,220 SCALE smv
SPRITE "masha_ln" LOAD "System/Masha.png"
SPRITE "masha_ln" AT 230,205 SCALE smn ANGLE 10
SPRITE "masha_ln" COPY "masha_pn"
SPRITE "masha_pn" AT 340,205 SCALE smn ANGLE 10 FLIP 1
SPRITE "masha_pn" SHOW
SPRITE "masha_pn" HIDE
SPRITE "masha_ln" SHOW
SPRITE "masha_ln" HIDE
SPRITE "masha_up_lv" SHOW
SPRITE "masha_up_lv" HIDE
/*SPRITE "egg" LOAD "System/egg2.png"
SPRITE "egg" AT lvx,lvy SCALE se
SPRITE "egg" DELAY 0.01
SPRITE "egg" SHOW
SPRITE "egg" LOOP
SPRITE "egg" COPY "egg1"
SPRITE "egg1" AT lnx,lny SCALE se
SPRITE "egg1" DELAY .01
SPRITE "egg1" SHOW
SPRITE "egg1" HIDE*/
FOR i=1 TO 4
SPRITE i LOAD "System/egg2.png"
SPRITE i AT x1,x2 SCALE se
SPRITE i DELAY .01
SPRITE i SHOW
SPRITE i HIDE
NEXT i
LOOP:
DRAW TEXT sche$ AT 350,30
FIELD "schet" BACK ALPHA 0
FIELD "schet" TEXT sch AT 380,14
GET TOUCH 0 AS h,w
IF SPRITE_HIT ("hen_lv",h,w)=1 THEN
SPRITE "masha_up_pv" HIDE
SPRITE "masha_pn" HIDE
SPRITE "masha_ln" HIDE
SPRITE "masha_up_lv" SHOW
ENDIF
IF SPRITE_HIT ("hen_pv",h,w)=1 THEN
SPRITE "masha_up_lv" HIDE
SPRITE "masha_pn" HIDE
SPRITE "masha_ln" HIDE
SPRITE "masha_up_pv" SHOW
ENDIF
IF SPRITE_HIT ("hen_ln",h,w)=1 THEN
SPRITE "masha_up_pv" HIDE
SPRITE "masha_pn" HIDE
SPRITE "masha_up_lv" HIDE
SPRITE "masha_ln" SHOW
ENDIF
IF SPRITE_HIT ("hen_pn",h,w)=1 THEN
SPRITE "masha_up_pv" HIDE
SPRITE "masha_ln" HIDE
SPRITE "masha_up_lv" HIDE
SPRITE "masha_pn" SHOW
ENDIF
/*IF SPRITES_COLLIDE (i,"masha_up_lv")=1 THEN
SPRITE "egg" HIDE
SPRITE "egg1" LOOP
SPRITE "egg1" SHOW
sch=sch+1
ENDIF
IF SPRITES_COLLIDE (i,"masha_ln")=1 THEN
SPRITE "egg1" HIDE
SPRITE "egg1" STOP
sch=sch+1
ENDIF*/
IF TIME()>tim+t THEN
'katS это диф со звуком
'сравниваем последнее на дощечке яйцо с переменной касания кнопки.
FOR i=1 TO 4
i$=i
IF SPRITE_VISIBLE (i$)=1 THEN
IF masha_up_lv=i OR mascha_ln=i THEN
'совпадение
'korS деф звук
sch+=1
t-=.005 ' изменение установочного параметра скорости
IF sch=5 THEN ur-=1 ' изменение уровня появления нового яйца
IF sch%20=0 AND ur>2 THEN ur-=1
ENDIF
ENDIF
ENDIF
NEXT i
'случайный выбор жердочки
IF SPRITE_VISIBLE (i$)=0 THEN
ix=RND(4)+1
IF ix=1 THEN
x1=103 ! x2=118
x=.2 ! y=.12
SPRITE ix AT x1,x2 SCALE se
SPRITE ix SHOW
SPRITE ix LOOP
SPRITE ix DA 5 DX x DY y
GET SPRITE ix POS x4,y4
ENDIF
IF ix=2 THEN
x1=103 ! x2=179
x=.2 ! y=.12
ENDIF
IF ix=3 THEN
x1=460 ! x2=118
ENDIF
IF ix=4 THEN
x1=460 ! x2=179
ENDIF
ENDIF
/*IF SPRITE_VISIBLE (i$)=1 THEN
BREAK
ELSE
CONTINUE
endif */
/*SPRITE i DA 5 DX xe1 DY ye1
GET SPRITE i POS x2,y2*/
IF x1 >= 175 THEN
x=0 ! y=1.5
ENDIF
IF x2 >=175 THEN
xe1=0 ! ye1=1.5
ENDIF
/*IF SPRITES_COLLIDE (i,"b_egg")=1 THEN
SPRITE i HIDE
SPRITE "b_egg" ALPHA 1
SPRITE "dead_lives" SHOW
ENDIF
IF SPRITES_COLLIDE (i,"b_egg")=1 THEN
SPRITE i HIDE
SPRITE "b_egg" ALPHA 1
SPRITE "dead_lives" SHOW
ENDIF*/
IF BUTTON_PRESSED (d$) THEN
SET TOOLBAR ON
ENDIF
GOTO LOOP
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Игра ЯЙЦА
Программа вообще не работает.
На айпаде выглядит вот так
На айпаде выглядит вот так
- Attachments
-
- image.png (3.61 MiB) Viewed 12030 times
Re: Игра ЯЙЦА
Я ещё не умею адаптировать под разные девайсы.
Но попробую, и ещё раз
одним словом у меня уже вроде и яйца появляются случайно, но не катятся, а треснутся на месте. Я пока что только одну левую жердь с яйцом оставил, но так и не разобрался. А под другой девайс размеры делать, это как? То есть я знаю как размеры взять с помощью какой команды. Как потом соотносить, на что делить? Или все с помощью проб и ошибок?
))



- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Игра ЯЙЦА
Я под девайсы адаптирую следующим образом: беру высоту экрана девайса и делю на известную высоту(в ландшафтном расположении) айпада: у него 768 точек без верхнего тулбара. Это у меня коэффициент kof-пересчета размеров экрана. Вот этот коэффициент у меня расчитывается в самом начале программы и применяется ко всем числовым значениям в программе. Может можно делать както по другому, но я делаю так.Tantrixx wrote:Я ещё не умею адаптировать под разные девайсы.Но попробую, и ещё раз
одним словом у меня уже вроде и яйца появляются случайно, но не катятся, а треснутся на месте. Я пока что только одну левую жердь с яйцом оставил, но так и не разобрался. А под другой девайс размеры делать, это как? То есть я знаю как размеры взять с помощью какой команды. Как потом соотносить, на что делить? Или все с помощью проб и ошибок?
))
Можете посмотреть на примере программы ЯЙЦА. Конечно если у Вас нет айпада а только айфон-это трудно проверить не видя конечного результата.
А что у Вас с яцами не так? Сделайте их покруглее-может так катиться будут лучше

Re: Игра ЯЙЦА
Ура, покатились со всех жёрдочек поочереди. Доделаю с жизнями и выложу пока что без звука. Потом под айпад попробую сделать. И звуки какие нибудь добавлю. 

- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Игра ЯЙЦА
Заценим!Tantrixx wrote:Ура, покатились со всех жёрдочек поочереди. Доделаю с жизнями и выложу пока что без звука. Потом под айпад попробую сделать. И звуки какие нибудь добавлю.

Re: Игра ЯЙЦА
Фант, для айфона у меня игра готова. Есть одна проблема, не могу скорость адекватно увеличить. Она с первого цикла до максимума подымается.
Speed =0.01
Начиная от сюда это все находится в цикле.
Sprite i$ delay speed
...
...
IF sch%5=0 THEN
speed-=0.001
ENDIF
Sch это счёт. Для проверки хотел, чтоб после каждых 5 очков увеличивалась, а по факту хочу после каждого 10 или 15 очков чтоб увеличивалась скорость. Но у меня сразу до максимума
Speed =0.01
Начиная от сюда это все находится в цикле.
Sprite i$ delay speed
...
...
IF sch%5=0 THEN
speed-=0.001
ENDIF
Sch это счёт. Для проверки хотел, чтоб после каждых 5 очков увеличивалась, а по факту хочу после каждого 10 или 15 очков чтоб увеличивалась скорость. Но у меня сразу до максимума

- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Игра ЯЙЦА
Правильно!Tantrixx wrote:Фант, для айфона у меня игра готова. Есть одна проблема, не могу скорость адекватно увеличить. Она с первого цикла до максимума подымается.
Speed =0.01
Начиная от сюда это все находится в цикле.
Sprite i$ delay speed
...
...
IF sch%5=0 THEN
speed-=0.001
ENDIF
Sch это счёт. Для проверки хотел, чтоб после каждых 5 очков увеличивалась, а по факту хочу после каждого 10 или 15 очков чтоб увеличивалась скорость. Но у меня сразу до максимума
Если sch=0 данное условие тоже работает. 0 разделить на 5-делится тоже без остатка
Re: Игра ЯЙЦА
После счёта 5 speed =-0.196 
