Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pomoc] Gra Rpg 2D , kto przetestuje i podpowie


wojtek333314

Rekomendowane odpowiedzi

Opublikowano

Witam, tworzę grę 2d RPG...wiem głupi pomysł ,żeby to zrobić w AutoIT ale jak narazie efekt jest jak dla mnie zadowalający.

 

Mam prośbę do kogoś kto miałby chwilę wolnego czasu na przetestowanie gry...czytaj: sprawdzenie zuzycia pamięci i procesora, czy nie zamula Wam kompa no i jakies podpowiedzi jesli cos bedzie nie tak. Zakladam temat co by wiedziec czy brnac w to dalej czy nie, powiedzmy chwila zwatpienia po tym jak testowalem na drugim komputerze ;)

 

Kod z ktorego nikt i tak nic nie zrozumie:

 

;menu glowne
#include "au3Irrlicht2.au3"
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <Misc.au3>
#include <GuiConstants.au3>

HotKeySet("{END}",'oknoinformacyjne')
HotKeySet('{RIGHT}','prawo')
HotKeySet('{left}','lewo')
HotKeySet('{up}','gora')
HotKeySet('{down}','dol')


;stale jakies dziwne...ale huj kazali to wstawiam:
DIM $IrrlichtLogo ; irr_texture
DIM $FreeBasicLogo ; irr_texture
DIM $FBIDELogo ; irr_texture
DIM $CodeBlocksLogo ; irr_texture
DIM $WrapperLogo ; irr_texture
DIM $screen_width ; integer
DIM $screen_height ; integer
$screen_width = 800
$screen_height = 650
;koniec dziwnych stalych jazda z kodem:

$glowna=1 ;wlaczone obiekty dla mapy glownej. przy zmianie mapy ma sie zmienic na 0
$miasto=0 ;wylaczone obiekty dla miasta///
Global $bohater[2]=[340,220]
Global $bsize[2]=[50,50]
Global $obiekt1[2]=[80,100] ;obiekt1
Global $ob1size[2]=[50,50];obiekt1
Global $obiekt2[2]=[380,200];obiekt2
Global $ob2size[2]=[103,44];obiekt2
$zrecznosc=1 ;narazie tylko od biegania
$barszerhp=320;szerokosc paska zycia, do zmiennej trafila zeby potem mozna nią operowac jak hp spada
$barszermp=320
$mapaglowna=0 ; 1 wlacza granice mapy , 0 wylacza. Tak zeby jak wieksze miasto to bedzie wylaczone 
$dll=DllOpen("user32.dll")
$trybnpc=0
$pokoj1=0
$misjawybor=0 ;jeszcze nie wiem jak to zrobic do misji.
$rozmowawylaczona=1 ;wylaczanie i wlaczanie mozliwosci poruszania sie podczas rozmowy
$lupa=0
;cos tam od grafiki bedzie to nizej czyli te 2 funkcje nie pytaj ;p
_IrrStart( $IRR_EDT_OPENGL, $screen_width, $screen_height, $IRR_BITS_PER_PIXEL_32, _
$IRR_WINDOWED, $IRR_NO_SHADOWS, $IRR_IGNORE_EVENTS, $IRR_VERTICAL_SYNC_ON )
_IrrSetWindowCaption( "Gra" )


$postac=_IrrGetTexture( "bitmapy/tekstury/postac1.bmp" )
$mapa=_IrrGetTexture( "bitmapy/mapy/mapa1.jpg" )
$bar=_IrrGetTexture( "bitmapy/tekstury/bar3.jpg" )
$barhp=_IrrGetTexture( "bitmapy/tekstury/barhp.jpg" )
$barmp=_IrrGetTexture( "bitmapy/tekstury/barmp.jpg" )
$trybnpcokno=_IrrGetTexture( "bitmapy/tekstury/npcokno.jpg" )
$choose=_IrrGetTexture( "bitmapy/tekstury/choose.bmp" )
$eq=_IrrGetTexture( "bitmapy/tekstury/eq1.bmp" )
$skrzynia=_IrrGetTexture( "bitmapy/tekstury/skrzynia.bmp" )
$moneta=_IrrGetTexture( "bitmapy/tekstury/itemy/moneta.bmp")
$xchoose=365
$ychoose=275
$wybor=1
$biblioteka=0
$wlaczeq=0
$skrzyniamod=0
$startfabula=0
_IrrColorKeyTexture($postac, 255, 255, 255) ;przenikalnosc dla postaci
_IrrColorKeyTexture($choose, 255, 255, 255) ;przenikalnosc dla kulki wyboru
AdlibRegister('starter',2000)
glownapetla()

func glownapetla()
WHILE _IrrRunning()
_IrrBeginScene( 0,0,0 )
_IrrDraw2DImage( $mapa, 0, 0)
_IrrDraw2DImage( $bar, 0, 600)
_IrrDraw2DImageElement( $postac, $bohater[0] , $bohater[1], 0,0,50,50, $IRR_USE_ALPHA )
_IrrDraw2DImageElement( $barhp, 140 , 610, 0,0,$barszerhp,15, $IRR_ignore_ALPHA )
_IrrDraw2DImageElement( $barmp, 140 , 630, 0,0,$barszermp,15, $IRR_ignore_ALPHA )





if _IsPressed('49',$dll)=1 and $glowna=0 Then ;eq
if $wlaczeq=0 Then
$rozmowawylaczona=0
$wlaczeq=1
Else
$rozmowawylaczona=1
$wlaczeq=0
EndIf
Sleep(250)
EndIf

if $wlaczeq=1 Then
_IrrDraw2DImage( $eq, 200, 200)
EndIf

if $skrzyniamod=1 Then ;skrzynia. skonczyc pod koniec skryptu
_IrrDraw2DImage( $skrzynia, 250, 200)
$rozmowawylaczona=0
_IrrDraw2DImageElement( $choose, $xchoose , $ychoose, 0,0,20,20, $IRR_USE_ALPHA )
EndIf

if $trybnpc=1 Then ;zmienna uruchamiajaca rozmowe z NPC
_IrrDraw2DImage( $trybnpcokno, 200, 200)
_IrrDraw2DImageElement( $choose, $xchoose , $ychoose, 0,0,20,20, $IRR_USE_ALPHA )
$rozmowawylaczona=0
if $wybor=1 then
$ychoose=275
$xchoose=365
EndIf
if $wybor=2 then
$ychoose=305
$xchoose=365
EndIf
if $wybor=3 then
$ychoose=335
$xchoose=365
EndIf
if $wybor=4 Then
$ychoose=445
$xchoose=240
EndIf
if $wybor=5 Then
$ychoose=445
$xchoose=400
EndIf
if $wybor>5 then $wybor=1
if $wybor<1 then $wybor=5

if _IsPressed('28',$dll)=1 Then
$wybor+=1
Sleep(180)
EndIf
if _IsPressed('26',$dll)=1 Then
$wybor-=1
Sleep(180)
EndIf


if $wybor=5 and _IsPressed('0D',$dll)=1 Then
$trybnpc=0
$rozmowawylaczona=1
$wybor=1
Sleep(180)
EndIf

if $wybor=1 and _IsPressed('0D',$dll)=1 Then
$misjawybor=1
EndIf

if $wybor=2 and _IsPressed('0D',$dll)=1 Then
$misjawybor=2
EndIf

if $wybor=3 and _IsPressed('0D',$dll)=1 Then
$misjawybor=3
EndIf
EndIf
_IrrEndScene() ;KONIEC RYSOWANIA SCENY!

granicamapy();sprawdzenie

if $glowna=1 then ;jezeli jestesmy na mapie glownej wtedy zrobi te obiekty. do innych map inny if i inne obiekty i po sprawie...uf
kolizja(350,270,90,80,2) ;parametry: 1-x obrazka,drugi-y obrazka,trzeci-szerokosc, czwarty-wysokosc, 5- tryb. Tryb 0- nie mozna wejsc. tryb 1- npc,tryb 2- wejscie do bagien,
kolizja(640,340,110,60,1)
EndIf

if $miasto=1 Then ;obiekty do miasta !
kolizja(0,0,153,150,0);stodola1
kolizja(44,150,46,40,1);drzwi do tego wyzej po lewej?
kolizja(382,0,195,161,0);stodola 2
kolizja(455,155,48,40,5);drzwi
kolizja(242,144,15,41,0)
kolizja(580,164,110,16,0) ;plotek
kolizja(60,339,40,110,0);wieza po lewej
kolizja(203,339,30,80,0);wieza po prawej
kolizja(650,0,150,110,0);stodola prawy gorny rog
kolizja(650,110,150,50,1)
kolizja(350,155,35,30,0)
kolizja(405,254,187,236,0);karczma
kolizja(473,497,27,40,3);karczemne drzwi 
kolizja(174,0,60,40,4);wyjscie na glowna mape
;starczy obiektow do miasta ...
EndIf

if $pokoj1=1 Then ;obiekty do pokoju1
kolizja(260,500,50,40,2);test
kolizja(707,242,50,50,1);testowy npc
kolizja(0,0,42,600,0);mur po lewej
kolizja(43,313,209,290,0);mur po lewej
kolizja(252,313,70,181,0);mur po lewej
kolizja(460,310,305,290,0);mur po lewej
kolizja(765,0,35,600,0);pasek po prawej muru
EndIf

if $biblioteka=1 Then ;obiekty do biblioteki
kolizja(0,0,43,31,0)
kolizja(756,0,43,31,0);druga skrzynia
kolizja(0,115,225,100,0);polka lewa gora
kolizja(0,280,225,100,0);nizsza polka
kolizja(0,440,225,100,0)
kolizja(575,115,225,100,0)
kolizja(566,452,225,100,0);koniec polek
kolizja(303,275,35,70,0) ;stolik1
kolizja(396,274,35,70,0)
kolizja(496,275,35,70,0)
kolizja(607,275,35,70,0)
kolizja(0,530,45,60,2);wyjscie na miasto
EndIf

if $barszerhp<0 Then
MsgBox(0,'INFO',"Przegrałeś")
Exit
EndIf
Sleep(20)
WEND
EndFunc



func prawo()
if $rozmowawylaczona=1 Then
$bohater[0]+=5*$zrecznosc
EndIf
EndFunc
func lewo()
if $rozmowawylaczona=1 Then
$bohater[0]-=5*$zrecznosc
EndIf
EndFunc
func gora()
if $rozmowawylaczona=1 Then
$bohater[1]-=5*$zrecznosc
EndIf
EndFunc
func dol()
if $rozmowawylaczona=1 Then
$bohater[1]+=5*$zrecznosc
EndIf
EndFunc

func granicamapy()
if $mapaglowna=1 then
if $bohater[0]>750 Then
$bohater[0]-=5
EndIf
if $bohater[0]<0 Then
$bohater[0]+=5
EndIf
if $bohater[1]<0 Then
$bohater[1]+=5
EndIf
if $bohater[1]>550 Then
$bohater[1]-=5
EndIf
EndIf
EndFunc


func test()
petlaokno()
EndFunc

func npc_okno()
$trybnpc=1
EndFunc

func mapazmien($mapasciezka) ;zmienia mape - tylko do wejscia do miasta do niczego wiecej niestety nie sluzy jeszcze.
$mapa=_IrrGetTexture( $mapasciezka )
$glowna=0
$mapaglowna=1 ;ograniczenie mapy
$miasto=1
$bohater[0]=340
$biblioteka=0
$bohater[1]=550
$pokoj1=0
EndFunc

func zyciezmniejsz($ilosc)
$barszerhp-=$ilosc
EndFunc

func manazmniejsz($ilosc)
$barszermp-=$ilosc
EndFunc








func kolizja($obx,$oby,$ob1,$ob2,$interakcja) ;ok...obx i oby to rog lewy gorny przedmiotu. ob2 i ob1 wysokosc i szerokosc
if $interakcja=0 Then
if ($bohater[0] + $bsize[0] > $obx) And ($bohater[1] + $bsize[1] > $oby) And ($bohater[0] < $obx + $ob1) And ($bohater[1] < $oby + $ob2) Then

if $bohater[0]>$obx Then
$bohater[0]+=5
EndIf
if $bohater[0]<$obx Then
$bohater[0]-=5
EndIf
if $bohater[1]<$oby Then
$bohater[1]-=5
EndIf
if $bohater[1]>$oby Then
$bohater[1]+=5
EndIf
EndIf
EndIf






if $interakcja=1 Then

if ($bohater[0] + $bsize[0] > $obx) And ($bohater[1] + $bsize[1] > $oby) And ($bohater[0] < $obx + $ob1) And ($bohater[1] < $oby + $ob2) Then

if $bohater[0]>$obx and _IsPressed('0D',$dll)=1 Then
npc_okno()

EndIf
if $bohater[0]<$obx and _IsPressed('0D',$dll)=1 Then
npc_okno()

EndIf
if $bohater[1]<$oby and _IsPressed('0D',$dll)=1 Then
npc_okno()

EndIf
if $bohater[1]>$oby and _IsPressed('0D',$dll)=1 Then
npc_okno()
EndIf
EndIf
EndIf



if $interakcja=2 Then ;wejscie do miasta
if ($bohater[0] + $bsize[0] > $obx) And ($bohater[1] + $bsize[1] > $oby) And ($bohater[0] < $obx + $ob1) And ($bohater[1] < $oby + $ob2) Then

if $bohater[0]>$obx and _IsPressed('0D',$dll)=1 Then
mapazmien('bitmapy/mapy/mapa2a.jpg')

EndIf
if $bohater[0]<$obx and _IsPressed('0D',$dll)=1 Then
mapazmien('bitmapy/mapy/mapa2a.jpg')

EndIf
if $bohater[1]<$oby and _IsPressed('0D',$dll)=1 Then
mapazmien('bitmapy/mapy/mapa2a.jpg')

EndIf
if $bohater[1]>$oby and _IsPressed('0D',$dll)=1 Then
mapazmien('bitmapy/mapy/mapa2a.jpg')
EndIf
EndIf
EndIf

if $interakcja=3 Then ;wejscie do pokoju1
if ($bohater[0] + $bsize[0] > $obx) And ($bohater[1] + $bsize[1] > $oby) And ($bohater[0] < $obx + $ob1) And ($bohater[1] < $oby + $ob2) Then

if $bohater[0]>$obx and _IsPressed('0D',$dll)=1 Then
$mapa=_IrrGetTexture('bitmapy/mapy/pokoj1.bmp')
$glowna=0
$mapaglowna=1 ;ograniczenie mapy
$pokoj1=1
$biblioteka=0
$bohater[0]=340
$bohater[1]=550
$miasto=0
EndIf

if $bohater[0]<$obx and _IsPressed('0D',$dll)=1 Then
$mapa=_IrrGetTexture('bitmapy/mapy/pokoj1.bmp')
$glowna=0
$mapaglowna=1 ;ograniczenie mapy
$pokoj1=1
$biblioteka=0
$bohater[0]=340
$bohater[1]=550
$miasto=0
EndIf

if $bohater[1]<$oby and _IsPressed('0D',$dll)=1 Then
$mapa=_IrrGetTexture('bitmapy/mapy/pokoj1.bmp')
$glowna=0
$mapaglowna=1 ;ograniczenie mapy
$pokoj1=1
$biblioteka=0
$bohater[0]=340
$bohater[1]=550
$miasto=0
EndIf

if $bohater[1]>$oby and _IsPressed('0D',$dll)=1 Then
$mapa=_IrrGetTexture('bitmapy/mapy/pokoj1.bmp')
$glowna=0
$mapaglowna=1 ;ograniczenie mapy
$pokoj1=1
$biblioteka=0
$bohater[0]=340
$bohater[1]=550
$miasto=0
EndIf
EndIf
EndIf
if $interakcja=4 Then ;wyjscie do glownej mapy
if ($bohater[0] + $bsize[0] > $obx) And ($bohater[1] + $bsize[1] > $oby) And ($bohater[0] < $obx + $ob1) And ($bohater[1] < $oby + $ob2) Then

if $bohater[0]>$obx and _IsPressed('0D',$dll)=1 Then
$mapa=_IrrGetTexture( "bitmapy/mapy/mapa1.jpg" )
$glowna=1
$mapaglowna=1 ;ograniczenie mapy
$pokoj1=0
$biblioteka=0
$bohater[0]=340
$bohater[1]=550
$miasto=0
EndIf

if $bohater[0]<$obx and _IsPressed('0D',$dll)=1 Then
$mapa=_IrrGetTexture( "bitmapy/mapy/mapa1.jpg" )
$glowna=1
$mapaglowna=1 ;ograniczenie mapy
$pokoj1=0
$biblioteka=0
$bohater[0]=340
$bohater[1]=550
$miasto=0
EndIf

if $bohater[1]<$oby and _IsPressed('0D',$dll)=1 Then
$mapa=_IrrGetTexture( "bitmapy/mapy/mapa1.jpg" )
$glowna=1
$mapaglowna=1 ;ograniczenie mapy
$pokoj1=0
$biblioteka=0
$bohater[0]=340
$bohater[1]=550
$miasto=0
EndIf

if $bohater[1]>$oby and _IsPressed('0D',$dll)=1 Then
$mapa=_IrrGetTexture( "bitmapy/mapy/mapa1.jpg" )
$glowna=1
$mapaglowna=1 ;ograniczenie mapy
$pokoj1=0
$biblioteka=0
$bohater[0]=340
$bohater[1]=550
$miasto=0
EndIf
EndIf
EndIf


if $interakcja=5 Then ;wejscie do biblioteki
if ($bohater[0] + $bsize[0] > $obx) And ($bohater[1] + $bsize[1] > $oby) And ($bohater[0] < $obx + $ob1) And ($bohater[1] < $oby + $ob2) Then

if $bohater[0]>$obx and _IsPressed('0D',$dll)=1 Then
$mapa=_IrrGetTexture('bitmapy/mapy/biblioteka.bmp')
$glowna=0
$mapaglowna=1 ;ograniczenie mapy
$pokoj1=0
$bohater[0]=340
$bohater[1]=550
$miasto=0
$biblioteka=1
EndIf

if $bohater[0]<$obx and _IsPressed('0D',$dll)=1 Then
$mapa=_IrrGetTexture('bitmapy/mapy/biblioteka.bmp')
$glowna=0
$mapaglowna=1 ;ograniczenie mapy
$pokoj1=0
$bohater[0]=340
$bohater[1]=550
$miasto=0
$biblioteka=1
EndIf

if $bohater[1]<$oby and _IsPressed('0D',$dll)=1 Then
$mapa=_IrrGetTexture('bitmapy/mapy/biblioteka.bmp')
$glowna=0
$mapaglowna=1 ;ograniczenie mapy
$pokoj1=0
$bohater[0]=340
$bohater[1]=550
$miasto=0
$biblioteka=1
EndIf

if $bohater[1]>$oby and _IsPressed('0D',$dll)=1 Then
$mapa=_IrrGetTexture('bitmapy/mapy/biblioteka.bmp')
$glowna=0
$mapaglowna=1 ;ograniczenie mapy
$pokoj1=0
$biblioteka=1
$bohater[0]=340
$bohater[1]=550
$miasto=0
EndIf
EndIf
EndIf


if $interakcja=6 Then ;skrzynia
if ($bohater[0] + $bsize[0] > $obx) And ($bohater[1] + $bsize[1] > $oby) And ($bohater[0] < $obx + $ob1) And ($bohater[1] < $oby + $ob2) Then

if $bohater[0]>$obx and _IsPressed('0D',$dll)=1 Then
$skrzyniamod=1
EndIf

if $bohater[0]<$obx and _IsPressed('0D',$dll)=1 Then
$skrzyniamod=1
EndIf

if $bohater[1]<$oby and _IsPressed('0D',$dll)=1 Then
$skrzyniamod=1
EndIf

if $bohater[1]>$oby and _IsPressed('0D',$dll)=1 Then
$skrzyniamod=1
EndIf
EndIf


if $interakcja=7 Then ;item
if ($bohater[0] + $bsize[0] > $obx) And ($bohater[1] + $bsize[1] > $oby) And ($bohater[0] < $obx + $ob1) And ($bohater[1] < $oby + $ob2) Then

if $bohater[0]>$obx and _IsPressed('0D',$dll)=1 Then
$skrzyniamod=1
EndIf

if $bohater[0]<$obx and _IsPressed('0D',$dll)=1 Then
$skrzyniamod=1
EndIf

if $bohater[1]<$oby and _IsPressed('0D',$dll)=1 Then
$skrzyniamod=1
EndIf

if $bohater[1]>$oby and _IsPressed('0D',$dll)=1 Then
$skrzyniamod=1
EndIf
EndIf
EndIf

EndIf
EndFunc


Func oknoinformacyjne($misjatresc)
$Main = GUICreate ("test", 200,200,-1,-1,$WS_POPUP+$WS_THICKFRAME)
GUICtrlCreateLabel($misjatresc,0,10,200,100)
$przycisk=GUICtrlCreateButton("Zamknij",75,150,80,35)
GUISetState(@SW_SHOW)
While 1
$nmsg=GUIGetMsg()
Switch $nmsg
Case $przycisk
GUIDelete()
ExitLoop
glownapetla()
EndSwitch
Sleep(50)
WEnd
EndFunc


func starter()
if IniRead("opcje.ini",'Glowne','start',0)=1 Then
Call('misja1')
AdlibUnRegister('starter')
Else
oknoinformacyjne(FileRead("bitmapy/misje/1.txt"))
ConsoleWrite(@CR & "okno OK ")
IniWrite("opcje.ini","Glowne",'start','1')
AdlibUnRegister('starter')
AdlibRegister('misja1cele')

EndIf
EndFunc



func sprawdzmisje($klucz,$tresc,$nastepna,$funkcja='start')
if IniRead("opcje.ini",'Glowne',$klucz,0)=1 Then
Call($nastepna)
AdlibUnRegister($funkcja)
Else
IniWrite("opcje.ini","Glowne",$klucz,'1')
AdlibUnRegister($funkcja)
oknoinformacyjne($tresc)
EndIf

EndFunc



func misja1()
if IniRead("opcje.ini","Glowne",'start','1')=0 then
AdlibRegister('misja1cele',100)
AdlibUnRegister("misja1")
Else
misja2()
EndIf
EndFunc


func misja1cele()
ConsoleWrite("cele start ")
if $miasto=1 Then
$obx=110
$oby=345
$ob1=75
$ob2=60
if ($bohater[0] + $bsize[0] > $obx) And ($bohater[1] + $bsize[1] > $oby) And ($bohater[0] < $obx + $ob1) And ($bohater[1] < $oby + $ob2) Then
oknoinformacyjne(FileRead("bitmapy/misje/2.txt"))
IniWrite("opcje.ini","Glowne",'misja1','1')
AdlibUnRegister('misja1cele')
misja2()

EndIf
EndIf

EndFunc






func misja2()
if IniRead("opcje.ini",'Glowne','misja2',0)=1 Then
misja3()
Else
AdlibRegister('misja2cele')
EndIf
EndFunc

Func misja2cele()
AdlibUnRegister('misja1cele')
if $biblioteka=1 Then
$obx=545
$oby=145
$ob1=70
$ob2=50
if ($bohater[0] + $bsize[0] > $obx) And ($bohater[1] + $bsize[1] > $oby) And ($bohater[0] < $obx + $ob1) And ($bohater[1] < $oby + $ob2) Then
IniWrite("opcje.ini","Glowne",'misja2','1')
AdlibUnRegister('misja2cele')
misja3()
EndIf
EndIf
EndFunc


func misja3()
if IniRead("opcje.ini",'Glowne','misja3',0)=1 Then
MsgBox(0,'','koniec fabuly :P')
Exit
Else
oknoinformacyjne(FileRead("bitmapy/misje/3.txt"))
AdlibRegister('misja3cele')
EndIf
EndFunc

func misja3cele()
AdlibUnRegister('misja1cele')
if $pokoj1=1 Then
$obx=595
$oby=265
$ob1=100
$ob2=80
if ($bohater[0] + $bsize[0] > $obx) And ($bohater[1] + $bsize[1] > $oby) And ($bohater[0] < $obx + $ob1) And ($bohater[1] < $oby + $ob2) Then
IniWrite("opcje.ini","Glowne",'misja3','1')
AdlibUnRegister('misja3cele')
oknoinformacyjne(FileRead("bitmapy/misje/4.txt"))
EndIf
EndIf
EndFunc














 

 

 

Paczka do calosci z kodem , grafika itd.:

Download:

http://www.multiupload.com/RCEFWLPONT

Scan:

http://www.virustotal.com/file-scan/report.html?id=b9bb4af86fe27c5956424f230a6613fc1b220aaa2a602666762cc731df92f0c0-1320008352

 

Jak ktos nie chce sciagac na darmo dla chłamu to screeny:

 

 

ss3vy.jpg

ss2qi.jpg

ss1zm.jpg

 

 

 

Moze graficznie nie jestem swietny ale na grafice sie nie znam :) Jak ktos jest chetny pomoc to jestem otwarty na propozycje ;p

Interakcje potwierdzamy enterem, narazie jest to tylko wchodzenie w pomieszczenia i miasto+nie skonczona rozmowa z NPC ale działa jak należy :)

 

Postanowiłem ,że będę co jakiś czas aktualizował postęp ;p Jak to głupi pomysł to odwleczcie mnie od niego ;p

Opublikowano

Gra na pierwszy rzut oka prezentuje się bardzo fajnie, jutro testne i dam edita, dziś już późno.

Mógłbyś kolizje poszczególnych poziomów zapisywać w pliku txt byłoby przejrzyściej. Każdy poziom w osobnym pliku

 

 

 

#include "au3Irrlicht2.au3"

Czyżby jakaś ciekawa biblioteka graficzna do autoit?

 

 

PS. Zuploaduje ktoś na speedyshare/megaupload?

dobra mam

Opublikowano

@up z tego powodu ze AutoIT nie jest stworzony do takich rzeczy i wszyscy odradzaja takich prob ;)

Poza tym wydaje mi sie ze te 10% dodatkowe co mi zzera procesora to duzo ;p

@Sopel

Co do au3Irrlicht2.au3 to UDF napisany do obslugi silnika graficznego Irrlicht ;p Wlasciwie jest przeznaczony do grafiki 3D, oto co zrobil jeden z uzytkownikow Autoit w nim:

 

 

 

sea.jpg

 

 

 

 

 

Potem widzialem jak zaczynal robic gre z tym statkiem na morzu. Wpisz w google irrlicht au3 i beda wyniki z youtube ;)

Opublikowano

Ok zaraz dam edita, mozliwe ze zapomnialem jakiegos folderu , sorry :)

Dodaje nowa wersje z mozliwoscia rozmowy z npc. Narazie to tylko okno ktore mozna zamykac i nic wiecej bo nie mam pomyslu na system questow..

 

edytowalem pierwszy post, tamte pliki juz sa dobre .

Opublikowano

Ok zaraz dam edita, mozliwe ze zapomnialem jakiegos folderu , sorry :)

Dodaje nowa wersje z mozliwoscia rozmowy z npc. Narazie to tylko okno ktore mozna zamykac i nic wiecej bo nie mam pomyslu na system questow..

 

edytowalem pierwszy post, tamte pliki juz sa dobre .

 

Odpalam, dodaje mi proces 'gra glowny.exe' ale nic pozatym - w trayu nic nie działa ani żadne okno nie wyskakuje

Możliwe, że to błąd od 64 bit. systemów... miałem podobnie z ControlSend..

Win 7 x64

Opublikowano
Opublikowano

dzięki, teraz działa. @up też mam win 7 x64 i działa.

 

zużycie procka na poziomie 0-10 % (na 25% bo mam cztery rdzenie a autoit obsługuje tylko 1)

Fajnie się gra, lecz ispressed strasznie wolno działa. Spróbuj pokombinować z _WinAPI_SetWindowsHookEx, powinno być dużo szybciej

Zauważyłem też, że przy kolizjach gdy trzymam strzałke w góre to na ścianie się nie zatrzymuje tylko powoli skacze w lewo. podobnie jest przy innch kierunkach lecz wtedy rusza się w inne, nie wiem czy to jest zamierzone.

I przy kolizjach strasznie skacze grafika postaci. Można by zrobić tak, aby najpierw sprawdzał kolizje, potem powracał, a potem dopiero rysował. Ogólnie zapowiada się ciekawie. Like it.

 

 

@edit, na mapie mógłbyś zrobić to w stylu nie chodzenia po mapie tylko przeskakiwania, od jednej do drugiej lokacji, a później zostawić mapę tylko jako mapę, a przechodziło by się przez ścieżki i inne obszary. Czyli po przejściu przez krawędź ekranu, tak gdzie to możliwe przenosi na inną mapę.

 

 

PS. aż mnie ta biblioteka nakręciła do napisania czegoś w stylu Electro Bodego (może ktoś pamięta tą gierke pod DOSa) lecz na razie nie mam zbytnio czasu. Może za niedługo :)

Opublikowano

Dzięki Sopel :)

Mapa zostanie jeszcze zmieniona, bo ta jest wzieta z gothic1 dla testow ;)

Co do isspressed to jesli mowisz o tym w rozmowie z npc ze wolno - to wsadzilem tam sleep ;p

Powod: jak nacisnelo by sie enter bez sleepa to owszem zamknal by okno rozmowy, ale potem od razu znowu by je otworzyl, dalem sleepa - zmniejsze go i nie bedzie tego wolnego poruszania :)

Dzieki za pomoc :)

Czekam na jeszcze troche opinii;p

Opublikowano

Ogólnie to kolizje masz źle zrobione, ale to Ci już Sopel pisał :) Zamiast sprawdzać wszystkie obiekty to podziel sobie mapę na mniejsze kafelki, np. 50x50 px, tak też zrób bohatera i zapisuj to w tablicy czy jest to obiekt po którym można chodzić, czy nie :)

 

global $heroPos[2] = [10, 10]
global $mapa[100][100][2];[x][y][0] = tekstura kafla; [x][y][1] = kolizja

if ($mapa[$heroPos[0]+1][$heroPos[1]][1]) then ;kolizja w przypadku gdy idzie w prawo

 

EDIT:

Zrób, żeby bohater się odwracał w zależności w którą stronę idzie.

Jakaś animacje do tego dorób.

Jak się wyłączy rozmowę z NPC, to potem trudno jednym kliknięciem włączyć z powrotem.

Postać powinna szybciej chodzić.//Aha, dobra masz $zrecznosc

 

Gra zapowiada się fajnie :)

Opublikowano

@UP rozmowa z NPC naprawiona dzis i to po wstawieniu tego linku bo sam wlasnie tez to zauwazylem ;p

Co do animacji - zostawie to jeszcze na pozniej ;)

Kolizja...nic nie zrozumiałem z tablic powyzej, trójwymiarowa ...tego jeszcze nie przerabiałem ;p

Czy bardzo zle jest z ta kolizja?:)

Opublikowano

Nie, ale będziesz miał trudno potem robić jakieś bardziej wymagające mapki, bo ustawianie dla każdej mapki kolizje, to będzie troszkę bezsensu ;] Jak rozumiesz tablice 2 wymiarowe to 3, nie powinny być trudne do zrozumienia ;)

Opublikowano

Zaktualizowałem linki.

Dodany system inwentarzu (narazie procz graficznego interfejsu pod 'i' nie ma nic ciekawszego)

Dodana fabuła (liniowa - wychodzi na to ,że przygodówka nie rpg)

Dodane 3 misje

 

PS: jest jakiś chętny grafik do pomocy ?:P

Opublikowano

Jeśli w taki sposób będziesz tworzył misje, to Ci ta gra zajmie tysiące linijek :) Zrób sobie misje w takim pseudo języku:

#Zabij 10 32//10 = ID moobka, 32 = ilość
#Powiedz 3 "Siema, czy chesz zaczac przygode?!"//ID NPC, "tekst"
#Idz 43 1//pozycje do ktorych ma dojść
#wiadomosc "Brawo! Trafiłeś tu!"//wiadomosc w jakims msgboxie
#nagroda 17 4//id itema ilosc

W ten sposób, co prawda nie zrobisz bardzo rozwiniętych questów z kilkoma zakończeniami, ale na pewno będziesz mógł to jakoś bardziej rozbudować i stworzyć fajny system questów :) Każdy Quest np. będzie oddzielony pusta linijką. Gra sobie na początku wczytuje plik z wszystkimi misjami i tworzy tablicę w której ma zapisane kolejne ich kroki. Potem co jakiś czas sprawdzasz wszystkie questy, czy ich status powinien się zmienić w wyniku np. zabicia wilka, albo rozmowy z jakiś NPC. Jeśli w taki sposób jak obecnie będziesz chciał napisać bardziej rozbudowana gierkę, to kod gry będzie tak zagmatwany i długi, że go nie ogarniesz. Poza tym musisz wykonywać misje po kolei, tak jak są napisane. W tym co ja Ci napisałem, możesz mieć dowolną kolejność i ilość zadań. Gra ponadto nie będzie taka liniowa :)

 

#EDIT

Możesz dodać do tego Twojego własnego języka questowego operacje logiczne :) Będzie z tym trochę więcej roboty, ale wtedy będziesz miał wspaniałą podstawę do rozbudowania tej gry :D Każdy quest będzie mógł mieć dowolną ilość zakończeń i rozwiązań :) Nagrody będą mogły być dawane w zależności od lvl'a, czasu w jakim go wykonałeś itd. :D

Opublikowano

Hfaua widze ,że ktoś tu napisał już troche gier ;p

Kurde...teraz wszystko musze zacząc od nowa po tym jak powiedziałeś mi z kolizjami i misjami :P

Opublikowano

Tak chyba będziesz miał korzystnie do dalszego rozwoju gry :) Ale radzę Ci przerzuć się na C++ i Allegro/SDL, bo zobaczysz, że pomimo początkowych trudności będzie Ci się to opłacało :) Ja pisząc pierwszą grę uczyłem się cały czas C++ :P A jak już masz jakieś tam doświadczenie z programowaniem, to będziesz miał łatwiej zaczaić o co w tym chodzi :D W razie problemów pisz na PW :]

Opublikowano

Ok Hfaua już tak mnie nękasz tym C++ ,że dziś wieczorem zacznę to robić w C++ :)

Co do tej gry zawieszam prace (czyt. nigdy nie zostanie ukończona).

Wpadłem na pomysł co by w AutoIT napisać coś innego ale narazie nie ma co mówić ;)

 

Temat do zamknięcia niestety ;)

Opublikowano
Hfaua widze ,że ktoś tu napisał już troche gier ;p
Skończyłem może z 10 ;] A zacząłem pisać i w połowie przerwałem w chuja i jeszcze więcej :P Nigdy nie mam grafika, albo coś się pieprzy, a potem mi się nie chce tego naprawiać ;] Zazwyczaj nie wyłączam jakiegoś timera, albo nie kasuję bitmap :D Poza tym nigdy nie mam czasu pisać niczego :) Jak już znajdę chwilkę czasu na pisanie, to zazwyczaj robię zadania na olimpiadę informatyczną zamiast pisać gierki :/

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...