Что нового

[Игра] Пишем простенькую игру

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Я думаю нужно поменять это:
Код:
HotKeySet("{UP}", "_UP")
HotKeySet("{DOWN}", "_DOWN")
HotKeySet("{LEFT}", "_LEFT")
HotKeySet("{RIGHT}", "_RIGHT")
HotKeySet("{F9}", "_Exit")


на это:

Код:
_IsPressed()


Я думаю это будет на много лучше... Не будет залипаний при долгом нажатии на кнопку...
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
переписал все с привязки к id на привязку к координатам(х и у).

Код:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>

Local $file = FileOpen("test.txt", 0)



HotKeySet("{LEFT}", "goLeft")
HotKeySet("{RIGHT}", "goRight")
HotKeySet("{DOWN}", "goDown")
HotKeySet("{UP}", "goUp")

global $playerX,$playerY, $player, $volx, $voly
$id = 0
$cl = 0
dim $slot[255][255]
Dim $p[255][255]
Dim $f[255][255]
dim $c[1000]
Global $x=30, $y=30
For $y = 1 To 30 Step 1
   Local $line = FileReadLine($file)
   $cl += 1
   $c[$x] = 0
For $x = 1 to 30 step 1
Local $var = StringMid($line, $x, 1)
If( $var= "1") then
   $slot[$x][$y] = '1'
   $c[$x] += 1
EndIf
If( $var = "0") then
   $slot[$x][$y] = '0'
$c[$x] += 1
EndIf
If( $var = "2") then
   Global $px = $x, $py = $y
   $slot[$x][$y] = '255'
$c[$x] += 1

EndIf
If( $var = " ") then
   $c[$x] += 1
EndIf
If( $var = "") then
 ExitLoop
EndIf
Next
Next



		 
		    
		 

GUICreate(" My GUI Icons", 700, 700)
GUISetState()

func draw()
$id = 0
For $y = 1 To $cl Step 1
For $x = 1 to $c[$y] step 1
      $f[$x][$y] = GUICtrlCreatePic("fog.bmp", $x*20 , $y*20, 20, 20)

If($slot[$x][$y] = "1") then
$p[$x][$y]  = GUICtrlCreatePic("test.bmp", $x*20 , $y*20, 20, 20)
EndIf

If($slot[$x][$y] = "0") then
$p[$x][$y]  = GUICtrlCreatePic("test2.bmp", $x*20 , $y*20, 20, 20)
EndIf
If($slot[$x][$y] = " ") then
EndIf

If($slot[$x][$y] = "255") then
$playerX = $x
$playerY = $y
$slot[$x][$y]= '1'
$p[$x][$y] = GUICtrlCreatePic("test.bmp", $x*20 , $y*20, 20, 20)
EndIf
Next
Next
$player = GUICtrlCreatePic("player.bmp", $playerX*20 , $playerY*20, 20, 20)
defog()
EndFunc

func defog()
   for $y = -1 to 1 step 1
	  for $x = -1 to 1
		GUICtrlDelete($f[$playerX + $x][$playerY+$y])
	  Next
  Next
		
	 EndFunc
	 


draw()



Func goRight()
     if $slot[$playerX + 1][$playerY] = 1 Then
	  $playerX = $playerX + 1
	  $x = $playerX*20
	  $y = $playerY*20
	  GUICtrlSetPos($player, $x, $y)
	  defog()
   EndIf
EndFunc

Func goLeft()
    if $slot[$playerX - 1][$playerY] = 1 Then
	  $playerX = $playerX - 1
	  $x = $playerX*20
	  $y = $playerY*20
	  GUICtrlSetPos($player, $x, $y)
	  defog()
   EndIf
EndFunc


Func goDown()
     if $slot[$playerX][$playerY + 1] = 1 Then
	  $playerY = $playerY + 1
	  $x = $playerX*20
	  $y = $playerY*20
	  GUICtrlSetPos($player, $x, $y)
	  defog()
   EndIf
EndFunc

Func goUp()
     if $slot[$playerX][$playerY-1] = 1 Then
	  $playerY = $playerY - 1
	  $x = $playerX*20
	  $y = $playerY*20
	  GUICtrlSetPos($player, $x, $y)
	  defog()
   EndIf
EndFunc










While 1
       $msg = GUIGetMsg()
   for $i = 1 to 1000 


    Select
        Case $msg = $GUI_EVENT_CLOSE
            Exit

		 EndSelect
   Next 

WEnd
	GUIDelete()


Ganibal95, подумаю над этим.
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
Добавлено :
инвентарь, пока функционирует не полностью, работает выбор между слотами, есть 1 предмет, слоты одетого на персонаже, кнопки "одеть,выбросить". Осталось наладить функционал данных кнопок, а это будет скорее после добавления окна характеристик.

Написал это для того, чтобы если кто-то следит за проектом, то не думал что я забросил. :smile:

Проект планируется как JRPG(похожий на Final Fantasy I,II,III)
Пока что думаю AutoIT сможет потянуть, но если уже критически не будет хватать скорости, то сразу перескочу на С++ :smile:. Хотя пока по мыслям слишком быстрой работой можно пренебречь, т.к. в игре боевая система планируется как в "Герои Меча и Магии" и в той же FF.
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
Добавлено :
NPC торговец. Торговля(пока что только покупка).
Инвентарь полностью сделан.
Окно характеристик.
Диалоговое окно с NPC.
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
Диалог с нпц
Dlog.JPG

Нажимаем кнопку "trade"
Trade%20W.JPG

Стрелками выбираем предмет, клацаем Enter
Trade.JPG

Инвентарь с неодетым предметом
Inv 1.JPG

Характеристики
Char.JPG

Стрелками в инвентаре выбрали предмет, нажали Enter
Pk.JPG

Характеристики с шлемом
Char2.JPG


Добавлено:
Сообщение автоматически объединено:

Доделаны слоты. 1-голова, 2 - правая рука(оружие), 3 - тело, 4 - левая рука, 5 - кольца, 6 - ноги(штаны), 7 - обувь

NewInv.JPG
 

Black_Hole

Знающий
Сообщения
126
Репутация
11
Инвентарь игрока:
Физическая защита.
1-Шлем
2-Майка
3-Броня
4-Плащ
5-Перчатки
6-Штаны
7-Ботинки

Оружие.
L-Одноручное оружие, (двуручное оружие может занимать две клетки сразу L&R: лук, двуручный меч, булава и тд.)
R-Щит

Магическая защита.
a-Серьга
b-Ожерелье
c-Серьга
d-Кольцо
e-Пояс
f-Кольцо

a1d18e35d36b.png
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
Спасибо за идеи предметов, но я хотел бы сделать упор на gameplay и на сюжет. Такой список подошёл бы какой нибудь ммо :smile:.
Я не хочу чтобы у меня тут устраивали "мободрочку". =)
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
Ну он платный же вроде. Ну и я так для себя, пока алгоритмы основные рассматриваю, а там может и на гм перелезу, или С++, или жаву =)
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
Игру пока не забросил, просто делал перерыв на учёбу :D.

Так вот, пока начал с простого. Теперь персонаж передвигается плавно, т.е. "анимация" перехода из 1 кубика в другой.

Когда берёшь квест, выплывает надпись "Квест взят".
1 проходимый квест.

Инвентарь и магазин переписаны на мышку, т.е. в магазине чтобы купить, нужно клацнуть по надписи мышкой.(раньше на стрелочках была)

Написал переходы между уровнями. Пока 2 уровня. На 2 уровне есть переход на 3, но 3 уровня пока нету, но можете нарисовать :D

Управление
J - журнал квестов(не обращайте внимание на прямоугольники в нём, тест был - получиться ли наложить картинку на окна).
I - инвентарь.
C - характеристики.
ENTER - использовать(поговорить с нип'ом или воспользоваться телепортом)
Стелочки - перемещение.




Вот ссылочка, кому интересно - http://autoit-script.ru/index.php?action=downloads;sa=downfile&id=310
 

_ToBe_

Осваивающий
Сообщения
142
Репутация
35
Не знаю как у вас, а у меня много претензий :smile:
1. Всё равно моргает у меня :(
2. http://clip2net.com/s/4WjVTM - уплыло окошко :smile:
3. Приложение на "Х" в верхнем правом углу не закрывается
4. Почему заблокированны кнопки "с" и "i" ? Какие ф-ции они запускают? Какие ещё кнопки блокируются? :smile:
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
1.Про моргания не знаю, у меня вроде ноут старый, но не мелькает.

2.Окошко уплыло то изначально так задумано было. Дело в том, что когда был туман войны(я его решил убрать), когда открывалось окно новое(поверх основного), им можно было затирать этот туман войны(при закрытии ока туман либо навсегда пропадал, либо на время), баг вроде бы тогда убрал, но появилась куча других проблем с перенесением тумана на др. уровни, я решил его убрать. )

3. Закрывать на крестик - моя беда =) Забыл добавить, когда то убрал, т.к. эта функция ловилась на всех окнах дополнительных. Это исправлено, а крестику я функционал так и не добавил.

4. Управление забыл написать.
J - журнал квестов(не обращайте внимание на прямоугольники в нём, тест был - получиться ли наложить картинку на окна).
I - инвентарь.
C - характеристики.
ENTER - использовать(поговорить с нип'ом или воспользоваться телепортом)
Стелочки - перемещение.
 

_ToBe_

Осваивающий
Сообщения
142
Репутация
35
Ну, думаю не стоит так сильно блокировать кнопки =) Мне ж надо переключиться в аську и ответить, во время запущенной игры :smile: А не могу - кнопки не пашут ^_^
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
Ну я перенёс управление на IsPressed, так что в след. версии уберу блокировочку =)
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
_ToBe_, слушай, а у тебя инвентарь и покупка предметов нормально работают? Попробовал на Windows 7 x64, что то ни покупка, ни журнал квестов не работают =)
 

_ToBe_

Осваивающий
Сообщения
142
Репутация
35
Окошки открываются на "i" и "j" и "с" и даже что-то там одевается :smile:
Хотя по сути ничего не понятно.... Надо как-то их разделить что ль... или описание какое-то сделать :smile:

http://clip2net.com/s/4XdtHR - менюшка на менюшке - фиг разберюшки :D
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
_ToBe_, это всего лишь база :smile:
Проверь, можно ли купить меч у нип'а(синенького). И когда квест берёшь, нажми "j" и там по надписи кликни, появиться ли описание.
 

_ToBe_

Осваивающий
Сообщения
142
Репутация
35
1. Меч покупается... было 100 бабла стало 60... но покупается он тыканьем в волшебное место ничем не обозначенное http://clip2net.com/s/4XgnLZ :D

2. Да, квест берётся... и даже проходит в портал и дальше... Ну а в конце меня поглатила тьма :rofl: http://clip2net.com/s/4XgsIf

3. Журнал работает но как-то странно... Взяв квест и открыв журнал, видем пустые окошки http://clip2net.com/s/4XgqfE ... Стоит нажать на оранжевый квадратик, как вдруг появляется текст http://clip2net.com/s/4Xgsew
 
Верх