Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 2D-программирование

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 18.02.2009, 16:42   #1
Petrofan
ПроЭктировщик
 
Аватар для Petrofan
 
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений
(для 18 пользователей)
Массивы

Кто нибуть помогире разобратся с массивами какие они сужествуют? Хочу сделать игру 2d логическую суть игры находить 3 или больше одинаковых фигурки тогда они исчезают например стоит 2 алмаза а третий на 1 клетку выше, перемищаем ее в низ происходит обмен фигурок и все 3 удаляються а сверху появляються другие и будто под действием гравитации смещаются ниже. Я думаю что 50 процентов пользователей форума играли в подобную игру. Может кто знает учебник с хорошым разеснением массивов когда поделитесь пожалуйста. Жду от всех помощи!
(Offline)
 
Ответить с цитированием
Старый 18.02.2009, 16:52   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Массивы

существуют двумерные массивы.
(Offline)
 
Ответить с цитированием
Старый 18.02.2009, 17:20   #3
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Массивы

Arrays are created using the standard BASIC 'Dim' statement, and may be of any number of dimensions. For example: 

Dim arr(10)

Creates a one dimensional array called 'arr' with 11 elements numbered 0...10.


Arrays may be of any basic type, or a custom type.

The type of an array is specified using a type tag. For example: 

Dim Deltas#(100)

Creates an array called 'Deltas' of 101 floating point elements. 

If the type tag is omitted, the array defaults to an integer array. 

An array may be dimensioned at more than one point in a program, each time an array is dimensioned, it's previous contents are discarded. Arrays may be dimensioned inside functions, but a corresponding 'Dim' statement of the same array must also appear somewhere in the main program. For example:

Dim test(0,0) 

Function Setup( x,y ) 

Dim test(x,y) 

End Function
(Offline)
 
Ответить с цитированием
Старый 18.02.2009, 18:06   #4
Petrofan
ПроЭктировщик
 
Аватар для Petrofan
 
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений
(для 18 пользователей)
Ответ: Массивы

For a=1 To 8
For b=1 To 8
DrawImage img,-12+b*64,-24+a*64
Next
Next

Я таким способом заполнил карту, а как сделать хаотическое заполнение разными картинками и обращение к ним?


Вот скрин что получилось
Миниатюры
Нажмите на изображение для увеличения
Название: game.jpg
Просмотров: 726
Размер:	76.8 Кб
ID:	5421  
(Offline)
 
Ответить с цитированием
Старый 18.02.2009, 18:24   #5
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Массивы

dim el(8,8)
dim img(4)

for i = 1 to 4
img(i)=loadimage(i+".bmp")
next
For a=1 To 8
For b=1 To 8
El(i,j)=rand(1,4);
Next
Next

For a=1 To 8
For b=1 To 8
DrawImage img(El(i,j)),-12+b*64,-24+a*64
Next
Next
(Offline)
 
Ответить с цитированием
Старый 18.02.2009, 18:33   #6
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Массивы

ещё rnd() и select
(Offline)
 
Ответить с цитированием
Старый 18.02.2009, 18:58   #7
Petrofan
ПроЭктировщик
 
Аватар для Petrofan
 
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений
(для 18 пользователей)
Ответ: Массивы

Почему все заполняется одной картинкой?
И откуда в єтой строке El(i,j)=Rand(1,5) берется j
(Offline)
 
Ответить с цитированием
Старый 18.02.2009, 19:03   #8
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Массивы

тьфу. у тебя же a,b а не i,j соответственно.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Petrofan (18.02.2009)
Старый 19.02.2009, 11:44   #9
Petrofan
ПроЭктировщик
 
Аватар для Petrofan
 
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений
(для 18 пользователей)
Ответ: Массивы

Graphics 800,600,16,0
SetBuffer BackBuffer()
SeedRnd MilliSecs()
Font=LoadFont("",19,0,0,0)
SetFont Font

Dim el(8,
Dim img(5)

While KeyDown(1)=0
Cls

For a=1 To 8
For b=1 To 8
;Text -12+b*65,-24+a*65,a
Text 20+b*65,-44+a*65,b
Next
Next

Flip
Wend
End

Вот я попробовал сделать текстом чтобы увидеть что происходит если розкоментировать текст который выводит переменую а и закоментировать текст ... b то видно как заполняется масив.
Вопрос:
Как теперь обращатся к этим ячейкам по имене или числу? Откуда узнать курсору где какая ячейка типа x1y1, x2y1,x3y1..(это я себе так думаю)?
(Offline)
 
Ответить с цитированием
Старый 19.02.2009, 15:43   #10
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Массивы

обращятса просто - например
dim shit(2)
shit(1)=15
shit(2)=30
(Offline)
 
Ответить с цитированием
Старый 19.02.2009, 16:00   #11
Petrofan
ПроЭктировщик
 
Аватар для Petrofan
 
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений
(для 18 пользователей)
Ответ: Массивы

В массиве 64 элемента.
Как в коде назначить каждому элементу имя.
---------------------------------------------
Массивами я никогда не пользовался и пока понятия не имею как с ними работать, просто 1-хочу научится с ними работать, 2- моей жене нравятся игры такого рода и эту игру я хочу сделать для неё. Пожалуйста помогите!
(Offline)
 
Ответить с цитированием
Старый 19.02.2009, 16:38   #12
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Массивы

В массиве 64 элемента.
Как в коде назначить каждому элементу имя.
сам елемент массива может быть у тебя именем !! если неуказовать тип масива то он по умолчанию он целочисленый !!
dim mydim$(8,8) - строковый
dim mydim#(8,8) - с запятой

For a=1 To 8
For b=1 To 8
mydim(a,b)=str("mycellname"+(a+b)); здесь записуем имя ячейки которая есть ее номером
Next
Next
если нада что бы было и имя и еще номер или сама картинка для каждого елемента масива, то создаем свой тип даных:

type mytype
field cellname$
field cellnuber%
;.... заносим все что нужно - в елементи списка
end type
теперь создаем масив типа mytype:
dim mydim.mytype(8,8)
и заполняем !!
(Offline)
 
Ответить с цитированием
Старый 19.02.2009, 17:07   #13
avel
Бывалый
 
Аватар для avel
 
Регистрация: 12.10.2006
Сообщений: 737
Написано 131 полезных сообщений
(для 452 пользователей)
Ответ: Массивы

просвещайсо на здоровье: http://blitzetc.blitzmax.ru/index.ph...дартный_подход
(Offline)
 
Ответить с цитированием
Старый 19.02.2009, 17:27   #14
Petrofan
ПроЭктировщик
 
Аватар для Petrofan
 
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений
(для 18 пользователей)
Ответ: Массивы

Почему на сайте http://blitzetc.blitzmax.ru
пишет Создание В чем проблема?
(Offline)
 
Ответить с цитированием
Старый 19.02.2009, 19:13   #15
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Массивы

кодировка не та - Windows-1251
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы в типе DStalk 2D-программирование 15 03.01.2010 22:45
Опять про массивы в МП. SOS! Licon Основной форум 2 17.03.2009 23:14
Про массивы. Cliffe Snake Основной форум 10 08.11.2008 12:19
Многомерные массивы записей ARV Основной форум 1 19.01.2007 10:47
Спец массивы impersonalis Полезные функции 6 30.11.2005 01:08


Часовой пояс GMT +4, время: 12:57.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com