Что нового

Игра|Концепция генерации карты с файла

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
AutoIt: 3.3.8.1
Версия: 0.3

Категория: Игры

Описание: Сидел вчера вечером, делать было нечего (инета не было ни у соседей, ни у меня :smile:), ну вот решил начать писать игру, такую стрелялку чтоли. Пока что сделал чтение карты из файла и стенки (тоже из файлов, в зашифрованном виде, чтобы программа точно понимала где расположить стенки, а то бывали случаи что стенка должна быть в одном месте, а она ещё и снизу :smile:) Человечек не прозрачный, позже сделаю с GDI+ :whistle:

Примечание: Есть баг (прикольный кстати, вылез сквозь стену :smile:). Кто найдёт скажите :smile:

Код/Пример: В файле

Файл: Скачать

Снимок:


История версий:
0.3 Надеюсь не на долго :smile:

Источник: autoit-script.ru
Автор(ы): _Lexa98_ (EZiX)


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

Обновил ссылку, была нерабочая
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Классный баг :smile:
Но скорее недоработка, чем баг.. :smile:

Так бага нет и не будет
Код:
$dll=DllOpen('user32.dll')
AdlibRegister("move", 100)

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
	Case $GUI_EVENT_CLOSE
		DllClose($dll)
		Exit
   EndSwitch
WEnd

Func move()
	$playpos = _StringEncrypt(1, $playposw & "," & $playposh, "fwmapfile")
	Select
		Case _IsPressed('57',$dll)
			If $playposh <> 1 Then UP()
		Case _IsPressed('53',$dll)
			If $playposh <> 30 Then DOWN()
		Case _IsPressed('41',$dll)
			If $playposw <> 1 Then LEFT()
		Case _IsPressed('44',$dll)
			If $playposw <> 40 Then RIGHT()
	EndSelect
	ToolTip($playposw & ":" & $playposh, 0, 0)
EndFunc

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


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

Так мне больше нравится :smile:
Код:
...
$Player = GUICtrlCreatePic(@ScriptDir & "\images\Player.bmp", 0, 0, 20, 20)

$_UP=GUICtrlCreateLabel('',0,0)
GUICtrlSetState(-1,$GUI_HIDE)
$_DOWN=GUICtrlCreateLabel('',0,0)
GUICtrlSetState(-1,$GUI_HIDE)
$_LEFT=GUICtrlCreateLabel('',0,0)
GUICtrlSetState(-1,$GUI_HIDE)
$_RIGHT=GUICtrlCreateLabel('',0,0)
GUICtrlSetState(-1,$GUI_HIDE)

GUIDelete($Loadgui)

Global $AccelKeys[4][2] = [['ц',$_UP],['ы',$_DOWN],['ф',$_LEFT],['в',$_RIGHT]]
GUISetState(@SW_SHOW, $Form)
ConsoleWrite(GUISetAccelerators($AccelKeys)&@CRLF)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $_UP
			$playpos = _StringEncrypt(1, $playposw & "," & $playposh, "fwmapfile")
			If $playposh <> 1 Then UP()
		Case $_DOWN
			$playpos = _StringEncrypt(1, $playposw & "," & $playposh, "fwmapfile")
			If $playposh <> 30 Then DOWN()
		Case $_LEFT
			$playpos = _StringEncrypt(1, $playposw & "," & $playposh, "fwmapfile")
			If $playposw <> 1 Then LEFT()
		Case $_RIGHT
			$playpos = _StringEncrypt(1, $playposw & "," & $playposh, "fwmapfile")
			If $playposw <> 40 Then RIGHT()
	EndSwitch
WEnd
...
 
Автор
_Lexa98_

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
DarWiM
Спасибо за ответ, вечером попробую :smile:
 
Верх