Форум программистов, компьютерный форум, киберфорум
Наши страницы
QBasic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
streltsov
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 9
1

Игра

03.04.2011, 18:10. Просмотров 1574. Ответов 18
Метки нет (Все метки)

Добрый день,мне нужна помощь в написании игры. Суть проблемы в том ,что сам как таковой,я не изучал программирование,а чтобы попасть на консультацию нужно написать половину программы,поэтому обращаюсь к вам:
Сам текст : Снизу по экрану ездит(управляется с клавы) лицо с открытым ртом ( пэкмэн перевёртнутый),сверху падают снежинки ( рандомно) ,нужно ловить ртом снежинки так,чтобы когда они попадают в рот, он закрывался, затем снова открывается и игра продолжается в том же темпе.
Зарание спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2011, 18:10
Ответы с готовыми решениями:

Игра
Создать простую игру на языке QBasic.

игра
я пишу игру, задали по программированию: подскажите, как в basic записать в...

Игра в числа
Здравствуйте! Может, хоть с этой задачей кто-нибудь поможет? Играют двое....

Игра Фишки
ФИШКИ

Игра на QBasic
Подскажите, что нужно почитать, просмотреть, чтобы написать игру в бейсбол.

18
Quiet Snow
03.04.2011, 18:34
  #2

Не по теме:

Блин, вы(все кто просят игры) загрызли уже:D

0
streltsov
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 9
03.04.2011, 18:37  [ТС] 3
Хочется на консультацию попасть)
0
кот Бегемот
Платежеспособный зверь
8465 / 3911 / 1523
Регистрация: 28.10.2009
Сообщений: 10,140
03.04.2011, 20:33 4
А что мешает изучить 5 графических операторов, один оператор цикла и RND? Два дня трудов - и можно писать игры и идти на консультацию с чистой совестью.
0
streltsov
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 9
03.04.2011, 20:50  [ТС] 5
Даже не знаю,если нас за 6 месяцев не научили,то как уж тут про самому...
0
кот Бегемот
03.04.2011, 20:51
  #6

Не по теме:

А сам пробовать что-то сделать не пробовал?

0
streltsov
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 9
03.04.2011, 21:12  [ТС] 7
Пробовал учится,но делать игру ... Для меня это ново
0
кот Бегемот
Платежеспособный зверь
8465 / 3911 / 1523
Регистрация: 28.10.2009
Сообщений: 10,140
03.04.2011, 21:53 8
Надо математику знать. Снежинка имеет фиксированную координату х и переменную координату у, которая изменяется в цикле. Рожица наоборот, имеет фиксированную координату у и переменную х, которая меняется с помощью клавиш и функции inkey$: нажатие клавиши -> прибавляет координату х, клавиша <- отнимает координату х, это происходит пока координаты снежинки и рожицы не совпадут, то есть, если выполняется условие, рисуется другая рожа. А остальное - дело несложной техники.
0
MOHCTP
292 / 204 / 2
Регистрация: 20.02.2011
Сообщений: 551
03.04.2011, 22:25 9
Всех желающих получить помощи в гамезостроении следует, по-видимому, отсылать сюда. Там такого хватает! Например, игра Ambush At South Range - в исходнике, и описаньице:
A very poor and stupid action game. You play some guy who barges into a school with a goal to kill everyone. Very poor code, insulting design, horrible controls (INKEY$) and very poor graphics. The game runs too fast on modern PCs.
Ужасное управление (через INKEY$) - как раз к месту, плохая графика тоже прокатит, осталось только доработать (точне, сильно-сильно даунгрейдить...)

А вот и почти в тему: Blobble, тоже в исходнике:
A quite poor ASCII pacman game with weird level design (lots of dead ends). Still, with the exception of usage of the INKEY$ statement, Blobble is a well designed ASCII game.
А на счет механизма запуска падающих объектов вроде снежинок можно подсмотреть здесь - Break Up - Final Round 1:
Some bizarre game featuring Arkanoid concept, but with somewhat different gameplay. Warning! This game is on German. Your objective in this game is to catch the falling powerups and to use them to destroy the wall above you since your ball doesn't destroy the wall but only spawns powerups. The graphics are rather simple featuring a black background and small number of different colors. This package also comes with another game which is nothing but a boring connect four game. Both games feature Sound Blaster sound effects.
0
streltsov
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 9
04.04.2011, 01:15  [ТС] 10
А можн о вкратце хотя бы написать текст, т.е. ,например,строчки в которых выполнятеся управление головой,рисунок головы я нашёл в литературе сделать смогу, просто как управлять ей,и условие при котором она меняется на другое,потому что я нашёл как сделать чтобы падали снежинки
0
Quiet Snow
4404 / 1291 / 375
Регистрация: 25.04.2010
Сообщений: 3,301
04.04.2011, 01:49 11
строчки в которых выполнятеся управление
PureBasic
1
2
3
4
5
 k$ = INKEY$  ' Берём значение из буфера клавиатуры
   IF k$ = CHR$(0) + CHR$(72) THEN ... тут ваши операции на кнопку вверх ...
   IF k$ = CHR$(0) + CHR$(80) THEN ... тут ваши операции на кнопку вниз ...
   IF k$ = CHR$(0) + CHR$(75) THEN ... тут ваши операции на кнопку влево ...
   IF k$ = CHR$(0) + CHR$(77) THEN ... тут ваши операции на кнопку вправо ...
1
streltsov
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 9
04.04.2011, 13:21  [ТС] 12
PureBasic
1
2
3
4
5
LINE (230, 223)-(274, 256), 0, BF
CIRCLE (270, 242), 4, 14: PAINT (270, 242), 14, 14
CIRCLE (250, 242), 19, 14: PAINT (250, 242), 14, 14
CIRCLE (260, 237), 3, 1: PAINT (260, 237), 1, 1
LINE (267, 247)-(260, 249), 12, BF
Вот рисунок головы,но как заставить его двигать я не нашёл,не пойму как использовать то что вы написали с этими строками

Добавлено через 1 час 19 минут
Голова разделена на 3 окружности,сама голова,глаз и нос, я могу сделать чтобы управлять ими по отдельности , т.е.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CLS
SCREEN 9
x = 150: y = 292: p = 14
CIRCLE (x, y), 4, p
 
DO
 
k$ = INKEY$
IF k$ = "d" THEN CIRCLE (x, y), 4, 0: x = x + 2: GOSUB redraw
IF k$ = "l" THEN END
LOOP
 
redraw:
CIRCLE (x, y), 4, p
RETURN
А как сделать чтобы все 3 окружности ехали вместе при нажатии кнопки, если их записать
PureBasic
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
CLS
SCREEN 9
 
x = 150: y = 292
z = 130: f = 292
c = 140: g = 287
 
CIRCLE (x, y), 4, 14
CIRCLE (z, f), 19, 14
CIRCLE (c, g), 3, 1
 
DO
 
k$ = INKEY$
IF k$ = "d" THEN CIRCLE (x, y), 4, 14: x = x + 2: GOSUB redraw
                 CIRCLE (z, f), 19, 14: z = z + 2: GOSUB redraw
                 CIRCLE (c, g), 3, 1: c = c + 2: GOSUB redraw
If k$="l" then end
LOOP 
 
redraw:
CIRCLE (x, y), 4, 14
CIRCLE (z, f), 19, 14
CIRCLE (c, g), 3, 1
RETURN
То они поедут сразу как анимация без нажатии кнопки.
0
Quiet Snow
4404 / 1291 / 375
Регистрация: 25.04.2010
Сообщений: 3,301
04.04.2011, 14:59 13
streltsov, вы пишете всё подряд?
Прочитайте про переменные, оператор присваивания, про условные операторы и циклы, это простые темы, поняв их, вы поймёте большинство кода. GOSUB вам пока не нужен, вы элементарное сделайте.
Перед тем как перерисовать круг, вам нужно стереть прошлое изображение, т.е. стираете, добавляете к координатам значения, рисуете. Эту последовательность делаете по условиям нажатия на клавиши в бесконечном цикле, условия я вам уже написал.

,а чтобы попасть на консультацию
Вас не допускают до экзамена?
0
streltsov
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 9
04.04.2011, 16:25  [ТС] 14
Нужно вместо GOSUB использовать GOTO? Просто у нас в задании обязательное условие использовать подфункцию.

Чтобы на экзамен попасть нужно 2 раза на консультацию прийти) А что бы на неё попасть нужно пол программы(
0
Quiet Snow
4404 / 1291 / 375
Регистрация: 25.04.2010
Сообщений: 3,301
04.04.2011, 16:34 15
Потому что я перечитал задание,нужно обязательно рисовать им.
С каждым вашим сообщением всё веселее и веселее, я уже не помню, когда здесь на форуме поднималась тема про DRAW. Могу сказать лишь одно, этим оператором мало кто пользуется, я с самого начала изучения данного диалекта, ознакомившись со справкой, решил им не пользовался никогда, потому что он не предоставит больших возможнстей, чем отрисовка стандартными графическими элементами, он выступает в роли "чертёжной машины", писать команды для которой ужаснейший геморрой.

но он только рисует прямые линии
Рисует он всё то же самое, что можно нарисовать обычными операторами.
Например заглянув в справку, я накидал код, для рисовки окружности. А рисуется она банально, задаём угол + перемещение. Если вы посмотрите, то там повторяется одно и то же действие.
PureBasic
1
2
3
4
5
6
7
8
SCREEN 9
DRAW "B M320,175 C14 TA0 R10 TA10 R10 TA20 R10"
DRAW "TA30 R10 TA40 R10 TA50 R10 TA60 R10 TA70 R10 TA80 R10"
DRAW "TA90 R10 TA100 R10 TA110 R10 TA120 R10 TA130 R10 TA140 R10"
DRAW "TA150 R10 TA160 R10 TA170 R10 TA180 R10 TA190 R10 TA200 R10"
DRAW "TA210 R10 TA220 R10 TA230 R10 TA240 R10 TA250 R10 TA260 R10"
DRAW "TA270 R10 TA280 R10 TA290 R10 TA300 R10 TA310 R10 TA320 R10"
DRAW "TA330 R10 TA340 R10 TA350 R10"
0
streltsov
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 9
04.04.2011, 17:32  [ТС] 16
Мне то как весело....С каждым пояснением я теряю логическую цепочку дествий и на данный момент вообще ничего не могу сделать,голова ни как вся у меня не едет,только одна окружность,нос голова или глаз,все вместе они ни как не едут

Добавлено через 50 минут
Заставил голву ездить как нужно) Тему пока не закрывайте,если что напишу ещё вопросы.
0
Quiet Snow
4404 / 1291 / 375
Регистрация: 25.04.2010
Сообщений: 3,301
04.04.2011, 18:03 17
PureBasic
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
  CONST Sneg = 100
  DIM xs(Sneg) AS DOUBLE, ys(Sneg) AS DOUBLE, St(Sneg) AS DOUBLE
  DIM Rx AS INTEGER, Tic AS INTEGER, i AS INTEGER
 
Ac% = 1: Vz% = 0      'Активная и визуальная страница
SCREEN 9, , Ac%, Vz%
  Rx = 320   ' Координаты хавальника
  Ry = 320
ON PLAY(1) GOSUB TmTic
PLAY ON
PLAY "MB ML T255 P64"
DO
  '   Опрос клавиатуры
  K$ = INKEY$
  '   Управление хавальником
  IF K$ = CHR$(0) + "M" THEN Rsx = 20
  IF K$ = CHR$(0) + "K" THEN Rsx = -20
  
 
  IF Tic THEN   ' А это наш "таймер" на событии PLAY
     Tic = 0    ' Срабатывает и отсекает повторные "лишние" проходы
     Kd = Kd + 1   ' Счётчик для появления снежинок
   '   Снежинки
   FOR i = 1 TO Sneg  'Цикл по всем снежинкам
     '  Создаём новую снежинку
     IF St(i) = 0 AND Kd > 5 THEN   ' Если "свободна" и "пришло время" то
       xs(i) = RND * 639              ' Координаты новой снежинки
       ys(i) = 0
       St(i) = 1                      ' и состояние в 1.
       Kd = 0                         ' Счётчик в ноль
     ELSEIF St(i) = 1 THEN
       ys(i) = ys(i) + 1              ' Летит вниз
       xs(i) = xs(i) + RND * 2 - 1    ' Колбасит вправо\влево
       IF xs(i) < 50 THEN xs(i) = 50    ' Проверим диапазон по гориз.
       IF xs(i) > 590 THEN xs(i) = 590
       IF ys(i) > 340 THEN St(i) = 0  ' Снежинка может "реинкарнироваться"
     END IF
   NEXT
   '   Хавальник
   IF ABS(Rx) THEN   ' Если перемещать
     Rsx = Rsx / 1.5
     Rx = Rx + Rsx
     IF Rx < 50 THEN Rx = 50: Rsx = 0
     IF Rx > 590 THEN Rx = 590: Rsx = 0
   END IF
  END IF
  '   Обмен буфера кадра(FLIP)
    CLS 1
    FOR i = 1 TO Sneg
      LINE (xs(i) - 4, ys(i) - 4)-(xs(i) + 4, ys(i) + 4), 15
      LINE (xs(i) - 3, ys(i) + 3)-(xs(i) + 4, ys(i) - 4), 15
      LINE (xs(i) - 5, ys(i))-(xs(i) + 3, ys(i)), 15
      LINE (xs(i), ys(i) - 4)-(xs(i), ys(i) + 5), 15
      PSET (xs(i), ys(i)), 15       ' Рисуем
    NEXT
     LINE (Rx - 5, Ry - 5)-(Rx + 5, Ry + 5), 15, BF
     SWAP Ac%, Vz%
     SCREEN , , , Vz%
     WAIT &H3DA, 8
     SCREEN , , Ac%, Vz%
LOOP UNTIL K$ = CHR$(27)   'Выход по ESC
 
END
TmTic: PLAY "MB ML T255 P64": Tic = Tic + 1: RETURN
streltsov, сам допишешь?
0
streltsov
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 9
05.04.2011, 18:01  [ТС] 18
За снег спасибо) Офигенен, а через Draw его можно написать,т.е. без Line ?

Добавлено через 18 часов 28 минут
А что такое активная и визуальная страница,ни где не могу найти,и можно ли без них сделать и не используя Play ?
0
Quiet Snow
4404 / 1291 / 375
Регистрация: 25.04.2010
Сообщений: 3,301
05.04.2011, 20:58 19
и можно ли без них сделать и не используя Play
Можно, но будет "полнейшая х**нь", размер кода увеличится, изображение будет мерцать, а скорость выполнения(и движения объектов) будет зависеть от конкретного компьютера(отсутствие однозначного результата).

Добавлено через 6 минут
А что такое активная и визуальная страница
Справка QBasic, смотрим оператор SCREEN.

Добавлено через 1 час 23 минуты
Просто у нас в задании обязательное условие использовать подфункцию.
В бейсике нет такого термина, есть термин подпрограмма(это SUB) и есть термин функция(FUNCTION).
Различия в том, что подпрограмма НЕ возвращает значения, в отличие от функции.
Загнать любое действие в подпрограмму не проблема, почитайте про SUB.
0
05.04.2011, 20:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2011, 20:58

Игра Мышь в лабиринте
Нужна помощь в написание части программы, в которой будет написано само...

Игра на QBasic (пушка стреляет в мешень)
Народ, помогите, пожалуйста, с написанием игры для курсовой. Сама не особо шарю...

Action игра на basic
Здравствуйте! Интересует такой вопрос, на каком и вообще возможно ли на basic...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru