játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5448
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2520

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2188
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] > 8 < [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [89]
miso - Tag | 15 hsz       Online status #141159   2010.09.18 19:04 GMT+1 óra  
Igazán nincs mit. Próbálgasd ki különböző értékekkel, amíg meg nem találod a neked kellőeket.

Csinálhatsz belőlük funkciót is, akkor sokkal szebb lesz, csak vigyázz, hogy a változóid ne lokálisak legyenek.
Kód:
`=========Constants=========`
`===========================`

`==========Globals==========`
// Perftimer globals. All movement and rotation must be corrected with *SyS_PTA, to get FPS independent results
Global SyS_Newtime          as Integer  `variable for perfect timer based movement
Global SyS_OldTime          as Integer  `variable for perfect timer based movement
Global SyS_ElapsedTime      as Integer  `Variable for perfect timer based movement, remained unused
Global SyS_PTA              as Float    `Multiplier for moves
`===========================`

`===========Types===========`
`===========================`

`=========Functions=========`

// Timer based movement functions
`____________________________________________________________________________
Function SyS_ResetTimer()
//**************
//*
//*    Timer based mozgasokhoz. Helyezd el a Do után közvetlenül.     
//*
//**************
If Sys_NewTime>0 then SyS_OldTime=SyS_Newtime
SyS_NewTime=timer()
Endfunction


Function SyS_CountPTA()
//**************
//*             
//*     Timer based mozgasokhoz. Helyezd el a Loop elé közvetlenül.
//*
//**************
SyS_ElapsedTime=SyS_newtime-SyS_Oldtime
SyS_PTA=SyS_ElapsedTime*0.02:` minden timer based mozgast és forgatást szorozz be SyS_PTA-val.
if SyS_PTA>10 then SyS_PTA=10
Endfunction
`_____________________________________________________________________________

Ezt a hozzászólást miso módosította (2010.09.18 19:20 GMT+1 óra, ---)

   
robee00 - Tag | 90 hsz       Online status #141158   2010.09.18 18:57 GMT+1 óra  
oh, 1000x köszi, ez kicsit érthetőbb

   
miso - Tag | 15 hsz       Online status #141156   2010.09.18 15:19 GMT+1 óra  
A lényeg, hogy gyorsabb gépeken többször fut le a main loopod, így többször értelmezi a számítógép a programrészletet ami mondjuk a kamerádat mozgatja, ezért gyorsabb lesz.

A fapados verzió a következő lenne:
(nem kódolok sokat, sajnos nagytakarításban vagyok )

Válaszd ki, milyen FPS legyen a mozgásokhoz (nem képernyőfrissítésekhez)

Szerk: Célszerű a a kívánt képernyőfrissítési gyakoriságánál kisebb értéket választani ehhez.
Kód:
movefps=60


1 másodperc az 1000 milisec, készíts egy arányváltozót a mozgásokhoz

Kód:
deltamove#=movefps/1000.0


Hozz létre egy sebesség változót 1 másodperc alatt történő kamera elmozduláshoz, ezt persze menet közben dinamikusan változtathatod.

Kód:
Cameraspeed=10



Ezután le kell mérned a loopod sebességét, és minden mozgást szorozz be az (elteltidő*deltamove#) értékével.

Kód:
Global SyS_PTA as Float

do
If Sys_NewTime>0 then SyS_OldTime=SyS_Newtime
SyS_NewTime=Timer()

//.....itt jön a programod
//.....elmozdulas esetén szorozz

Move Camera Cameraspeed*SyS_PTA

//.....
Sync
//..... loop előtt számold ki, ez a loop mennyi ms volt, a következő loop elmozdulásait ez határozza majd meg

SyS_ElapsedTime=SyS_NewTime-SyS_Oldtime
SyS_PTA=SyS_ElapsedTime*deltamove#:` minden timer based mozgast és forgatást szorozz be SyS_PTA-val.

Loop



Ez persze csak az alap, ami bár jól működik, újabb, más jellegű problémákat okozhat.
Hosszú loop esetén például áteshetsz a terrain modelleden, ha túl nagy az elmozdulásod egy ugrás végén, stb.

Csúnya és nem tökéletes, ellenben egyszerű megoldás lehet erre, ha maximalizálod az arányváltozód mértékét:
Szerk: Így egy hosszabb ideig tartó művelet, mondjuk egy új pálya betöltése után sem találod magad a végtelen mélységben a gravitációs elmozdulás és az előző loop időbeni hossza miatt.
Kód:
//.....
Sync
SyS_ElapsedTime=SyS_newtime-SyS_Oldtime
SyS_PTA=SyS_ElapsedTime*deltamove#:` minden timer based mozgast és forgatást szorozz be SyS_PTA-val.
//....Itt jön a limitáló rész
if SyS_PTA>1 then SyS_PTA=1
loop

Ezt a hozzászólást miso módosította (2010.09.18 16:03 GMT+1 óra, ---)

   
robee00 - Tag | 90 hsz       Online status #141154   2010.09.18 13:29 GMT+1 óra  
na hát én meg próbáltam értelmezni amit írtál kicsy, meg olvastam is a forumokon,de semmi használhatót nem sikerült szereznem

   
kicsy - Szerkesztő | 4304 hsz       Online status #141149   2010.09.18 09:43 GMT+1 óra  
Vincent3d - Tag | 160 hsz       Online status #141147   2010.09.18 08:15 GMT+1 óra  
Hmmm... ez érdekes, ott valami nem ok. 30fps alatt megérteném, de 60-nál még bőven jónak kellene lenni. Erre én is is kiváncsi vagyok, meg arra hogy nálad mi lehet a bibi.
   
robee00 - Tag | 90 hsz       Online status #141146   2010.09.18 08:10 GMT+1 óra  
hogyan tudnék fps alap mozgást "létrehozni"?? mert nagyon idegesítő mikor ha esetleg lemegy 60 fpsre a játék, és ugy akarom tesztelni és nagyon lassan mozog, de alapból 100 fpsn meg a normális sebességen,.

   
Dookle - Tag | 478 hsz       Online status #140809   2010.09.11 12:14 GMT+1 óra  
Hát én se úgy gondoltam hogy manuálisan pötyögöd be a koordinátákat ha erre gondoltál
A 3d linet valamilyen pályaszerkesztőből exportálnád ? Nemtudom hogy az ilyen shapeket mennyire támogatja a dbpro de olyant csináltam már 3ds maxban lerakok a pályára egyszerű 3d objecteket (pl kockák ) aztán kiexportálom. Ha beolvasom a dbp-be a kiexportált objektumot minden lerakott kocka egy limb lesz .aztán beolovasom minden kocka pozicióját (limb position x (1) limb position x(23) stb).Ez tuti működő kipróbált dolog
STEVIE RAY VAUGHAN FOREVER !!!!!

http://pinkcatgames.ucoz.com/
   
Tommy50 - Tag | 39 hsz       Online status #140806   2010.09.11 11:37 GMT+1 óra  
Természetesen a buszt newton motor hajtja. engem csak a "külsős" forgalom vezérlése zavar. A baj az hogy ezt nagyon hosszú pályáknál iszonyatosan sok idő lenne megoldani. Viszont az járhatóbb lenne ha megoldható lenne hogy egy 3d line töréspontjait(vertex) kiolvasni és azokat követtetni. megoldható ez szerintetek?

   
Dookle - Tag | 478 hsz       Online status #140804   2010.09.11 11:08 GMT+1 óra  
Idézet
Tommy50 :
1214-demo006.jpg

Sziasztok. Nagyon régen írtam nektek de most elakadtam és egy kis segítségre lenne szükségem.
Mint látjátok egy buszos játékot fejlesztek. az érdekelne engem hogy a forgalmat ti hogyan oldanátok meg? Én arra gondoltam hogy előre írt útvonalakkal. úgy gondolom mintha sinen mennének az autók csak a sin természetesen vagy nem látszik vagy maga az út objectuma szolgál sinként. Ezt hogyan lehetne megvalósítani szerintetek? vagy van valami egyszerübb módszer? Köszönöm a segítséget előre is. Sziasztok és mindenkinek jó fejlesztgetést



Én valami olyat csinálnák hogy pl 1 tömben tárolnlnám az útvonal pontjait :

Kód:
type TPoints
       x as float
       y as float
       z as float
endtype

dim pontok(100) as TPoints


point object busz , pontok(1).x ,  pontok(1).y  pontok(1).z
move object busz,speed

//ha odaért a ponthoz akkor veszi a következő pontot stb és lassan halad a megadott pontokon


Ezzel az a baj hogy ha pl valami brutális játékot tervezel hogy a busszal pl kilöksz autókat a pályáról embereket ütsz el , vér meg robbanás mindenhol stb akkor utánna nehéz vissza terelni a megadott útvonalra .Pl ha kilökted , logikus hogy keresse a legközelebbi pontot és az felé haladjon , de a pont és a busz között lehet valamilyen akadály pl egy ház amin a busz simán átmegy vagy előtte egy másik autó ami áll vagy bármilyen utólag megjelent akadály a pályán.Ezért valami egyszerű útvonal keresés se ártana. a másik gond a fordulás pl kereszteződésnél a busz beér akkor elfordul 90 fokot és megy tovább.ez elég hülyén nézne ki.Physx vagy Newton car rigid bodyval sztem egyszerűbb lenne görbéket számolni fordulásnál.És a collision is meg lesz oldva egy kalap alatt. Raycastingal pedig lehetne írni valami egyszerű akadály kikerülő rendszert.

Persze ez az én véleményem és az egész csak egy elmélet , de az biztos hogy ha buszos játékot írnék akkor valami fizika motor irányábakezdenék gondolkodni
STEVIE RAY VAUGHAN FOREVER !!!!!

http://pinkcatgames.ucoz.com/
   
Tommy50 - Tag | 39 hsz       Online status #140798   2010.09.11 09:02 GMT+1 óra  
1214-demo006.jpg

Sziasztok. Nagyon régen írtam nektek de most elakadtam és egy kis segítségre lenne szükségem.
Mint látjátok egy buszos játékot fejlesztek. az érdekelne engem hogy a forgalmat ti hogyan oldanátok meg? Én arra gondoltam hogy előre írt útvonalakkal. úgy gondolom mintha sinen mennének az autók csak a sin természetesen vagy nem látszik vagy maga az út objectuma szolgál sinként. Ezt hogyan lehetne megvalósítani szerintetek? vagy van valami egyszerübb módszer? Köszönöm a segítséget előre is. Sziasztok és mindenkinek jó fejlesztgetést

   
robee00 - Tag | 90 hsz       Online status #140759   2010.09.10 14:48 GMT+1 óra  
az image amit spriteként a játékba rakok, az mért lesz nálam "homályos"? a minősége mintha leromlana

   
ragoon - Törzstag | 384 hsz       Online status #140604   2010.09.07 19:19 GMT+1 óra  
Még jó, hogy beírtam ide a kódot, nekem is épp most kell, úgyhogy ki is másolom gyorsan
   
robee00 - Tag | 90 hsz       Online status #140598   2010.09.07 17:23 GMT+1 óra  
hát egyenlőre jó lesz az amit ragoon írt, mert amit küldtél az DarkGDK-s (C++), de átlehet írni DBbe, de egyenlőre boldog vagyok az előzővel

   
Bacce - Bacce | 1783 hsz       Online status #140591   2010.09.07 14:30 GMT+1 óra  
Vagy ilyen lehetőség nem tudom van-e Db-ben hogy keydown, keyup, mint visual basic-ben mert akkor azt lenne érdemes használni és akkor nem kéne azon aggódni hogy minden frissítésnél lefut.
Szerk: Kicsit utánafutottam, van rá mód:
Kód:
static int RUNNING_MODE = FALSE;
static int RUNNING_KEY_PRESSED = FALSE;

int CurrentlyPressed = dbKeyState(RUNNING_KEY);

if (CurrentlyPressed) {
  if (!RUNNING_KEY_PRESSED)
  {
    RUNMODE = !RUN_MODE;
    RUNNING_KEY_PRESSED = TRUE;
    return;
  }
} else RUNNING_KEY_PRESSED = FALSE;

A kód innen van
valami ilyesmi, nem tudom segít-e.
Making the world a better place, one line of code at a time.
http://bacce.uw.hu
   
robee00 - Tag | 90 hsz       Online status #140554   2010.09.06 16:02 GMT+1 óra  
Idézet
ragoon :
...
próbáld ezt ez tutira működik:

Kód:
if spacekey()=1 and skey=0 then klikk=1
if spacekey()=1 and skey=1 then klikk=2

if spacekey()=0 and klikk=1
skey=1 : klikk=0
endif

if spacekey()=0 and klikk=2
skey=0 : klikk=0
endif




áhh, kössz, télleg müködik, sokat segítettél )

   
dothumour - Tag | 75 hsz       Online status #140533   2010.09.06 08:42 GMT+1 óra  
Értem, arról valahogy elfelejtkeztem, hogy ez minden frissítésnél lefut.
٩(͡๏̯͡๏)۶

   
ragoon - Törzstag | 384 hsz       Online status #140532   2010.09.06 08:18 GMT+1 óra  
Az elsőnél, ha hosszabban nyomva tartod a space-t, akkor az lesz a probléma, hogy váltogatja magát az érték. A másodikról nem tudok nyilatkozni... nálam nem megy.
   
dothumour - Tag | 75 hsz       Online status #140531   2010.09.06 07:39 GMT+1 óra  
Előre megjegyzem nem ismerem a DB/DB Pro-t. Nagyon régen írtam utoljára Basic kódot úgyhogy az ez irányú ismereteim is minden bizonnyal jócskán megkoptak. Azonban lenne pár apróbb észrevételem...

Az első dolog ami felvetődött bennem az az, hogy vajon van-e "ELSE" DarkBasic-ben. A Dark Basic alapozó II. szerint van. Így az alábbi probléma megoldása ennyi:
Kód:
if spacekey()=1 then
  if skey = 0 then skey = 1 else skey = 0
endif


A másik ami szembe ötlött az pedig az, hogy ha van "MOD" (modulus) akkor az egész csak ennyi:
Kód:
if spacekey()=1 then skey = (skey + 1) mod 2
٩(͡๏̯͡๏)۶

   
Vincent3d - Tag | 160 hsz       Online status #140530   2010.09.06 07:37 GMT+1 óra  
Helyes a felvetés.
   
ragoon - Törzstag | 384 hsz       Online status #140519   2010.09.05 21:54 GMT+1 óra  
Kód:
skey=0
if spacekey()=1 and skey=0 then skey=1
if spacekey()=1 and skey=1 then skey=0


persze hogy nem megy, mert ha skey=1 lesz, akkor a másik parancs is végrehajtódik így a vége megint nulla...

próbáld ezt ez tutira működik:

Kód:
if spacekey()=1 and skey=0 then klikk=1
if spacekey()=1 and skey=1 then klikk=2

if spacekey()=0 and klikk=1
skey=1 : klikk=0
endif

if spacekey()=0 and klikk=2
skey=0 : klikk=0
endif

Ezt a hozzászólást ragoon módosította (2010.09.05 22:37 GMT+1 óra, ---)
   
robee00 - Tag | 90 hsz       Online status #140515   2010.09.05 21:13 GMT+1 óra  
mindkettőt próbáltam már, de egyik se működik jól jó lenne azért télleg, ha vki más is írna

   
Vincent3d - Tag | 160 hsz       Online status #140512   2010.09.05 20:38 GMT+1 óra  
pl.

Ha egyszer megnyomod a space-t akkor az skey=1, ha újra megnyomod és skey=1 akkor skey=0 lesz.

Kód:
skey=0
if spacekey()=1 and skey=0 then skey=1
if spacekey()=1 and skey=1 then skey=0


A másik (mert nem értem pontosan mire gondolsz ):
Ha a space le van nyomva akkor skey=1, de ha nincs akkor skey=0

Kód:
if spacekey()=1 then skey=1 else skey=0


Ennél az lesz a baj hogy nagyon gyorsan kell megnyomni, és nem mindig azt az értéket fogja adni. Lehet használni "wait (valamennyi)" parancsot, de akkor beáll a progi arra az időre. Na mindegy probálgasd. Remélem más is hozzászól, mert engem is érdekelne egy perfect megoldás.
   
robee00 - Tag | 90 hsz       Online status #140498   2010.09.05 17:23 GMT+1 óra  
Idézet
Vincent3d :
Enyém az ilyen jelenleg : Ingame



szép, tetszik, az enyém jelenleg ilyen:

http://noob.hu/2010/09/05/ingame.png

még nem nagyon fordítottam időt a terrainra, karakterre, meg ugy semmire, most épp egy "alap" ui-n dolgozok

amugy:
nincs ötletem sajnos, mért nem jeleníti meg

de most nekem is van pár kérdésem:
hogy lehet stringet törölni a képről?
hogyan lehet vizsgálni hogy a gomb LENYOMÁSra került-e? pl egy változó ami: ha egyszer lelett nyomva akkor 1, ha megint akkor 0, próbáltam mindent de semmi

Ezt a hozzászólást robee00 módosította (2010.09.05 18:01 GMT+1 óra, ---)

   
Vincent3d - Tag | 160 hsz       Online status #140481   2010.09.05 12:42 GMT+1 óra  
Nos, kedvet kaptam én is egy hasonló dologhoz. Amikor víz alatt van a player(nálam fps kamera), akkor szeretném ha fogyna a levegő. Sajnos már az elején problémákba ütköztem.

Egy külön dba fileból töltöm be a sprite képeit és csinálom meg a spriteot. Itt van:
Kód:
REM "images load & make sprite" function

function imgload()

rem Underwater Air
airxpos=0
airypos=0
load image "Data/Images/Air/air100.png",100
load image "Data/Images/Air/air90.png",101
load image "Data/Images/Air/air80.png",102
load image "Data/Images/Air/air70.png",103
load image "Data/Images/Air/air60.png",104
load image "Data/Images/Air/air50.png",105
load image "Data/Images/Air/air40.png",106
load image "Data/Images/Air/air30.png",107
load image "Data/Images/Air/air20.png",108
load image "Data/Images/Air/air10.png",109

rem  Spritok elkélszítése
for air=100 to 109
sprite air,airxpos,airypos,air
next air
rem spriteok elrejtése
for air=100 to 109
hide sprite air
next air

endfunction


Szóval meghívom a főprogiból, minden fasza semmi hibaüzenet. Csinálok a levegőnek egy globális változót, és figyelem hogy ez a változó mikor mennyi.

Kód:
global airnum as integer
airnum=100
REM LEVEGŐ A VÍZ ALATT
if airnum=100 then airsprite=100
if airnum=90 then airsprite=101
if airnum=80 then airsprite=102
if airnum=70 then airsprite=103
if airnum=60 then airsprite=104
if airnum=50 then airsprite=105
if airnum=40 then airsprite=106
if airnum=30 then airsprite=107
if airnum=20 then airsprite=108
if airnum=10 then airsprite=109

if underwater=1 then show sprite airsprite else hide sprite airsprite


Tehát ha víz alatt van (underwater=1) akkor jelenítse meg. És ez itt a gond hogy nem jelenit meg semmit. Próbáltam úgy is hogy csak simán a főprogrmból töltök be egy képet, de úgy sem jeleníti meg a spriteot. Most akkor mi van??

Enyém az ilyen jelenleg : Ingame

Ezt a hozzászólást Vincent3d módosította (2010.09.05 12:48 GMT+1 óra, ---)
   
Vincent3d - Tag | 160 hsz       Online status #140471   2010.09.05 09:38 GMT+1 óra  
Szivessen.

Linkelj már egy képet légyszi, kíváncsi vagyok min melózol.
Én is hasonló dologgal szenvedek, mondjuk én még mindig csak a engine részét csinálom.
   
robee00 - Tag | 90 hsz       Online status #140448   2010.09.04 21:09 GMT+1 óra  
ez a 100-as skálás dolog bejött, most müködik a gond sztem a kiszámítás volt, de most ahogy leírtad Vincent3d, most már megértettem, és megy, köszi még 1x, és neked is Bacce

   
Vincent3d - Tag | 160 hsz       Online status #140440   2010.09.04 18:24 GMT+1 óra  
Mindenképpen én is azt javaslom hogy 100-as skálával dolgozz! Remélem nem írok most túl hülyeséget, de én így oldanám meg. (nem vagyok programozó )

100% a full hp, na most.

mondjuk lv5 150HP=100% ->1,5HP=1%, 10hp sebzésnél marad 140HP
140/1,5=93% (Egésszre emelve)

még egy eset :
mondjuk lvl15 12500HP=100% -> 125HP=1%, 350 sebzésnél marad 12150HP
12150HP/125=97% (egészre emelve)

A százalékhoz rendeld hozzá a csik hosszúságát. A lentinél amit írtál, nem az lehet a gond hogy nem frissited a csikot? Tehát lehet hogy az elején megadod, de a föciklusban(ból) nincs frissítve.
   
Bacce - Bacce | 1783 hsz       Online status #140439   2010.09.04 18:01 GMT+1 óra  
Egyszerűbb lenne egy létező sprite-tról csak annyit kirajzolni amennyi az élete a figurának, gondolom ez dark basic-ben is megoldható. Sztem kevésbé számításigényes és valamivel elegánsabb is mint ciklussal meg 100 sprite-al.
Amúgy először próbáld meg hogy simán csak százas skálával dolgozol nem 103-al és ha úgy megy akkor az a 3 ami bekavar.
Making the world a better place, one line of code at a time.
http://bacce.uw.hu
   
robee00 - Tag | 90 hsz       Online status #140437   2010.09.04 17:23 GMT+1 óra  
srácok

sikerült túl lépnem a spriteos dolgon fps veszteség nélkül...na szóval, most az a helyzet h van egy
Player.HP nevű global változóm,aminek az értéke 103 ( nem kérdezősködik, elfogadja ), maxHP szintén 103
és van egy ilyen kódom:
Kód:
    for i = 1 to int((Player.HP/Player.MaxHP)*100)
        paste sprite 1001,50+i,19
    next i

ez kirajzol egy csíkot, ami a hpt mutatja, annyi 1px-s kép ahány %. eddig remélem érthető
na de, ha átállítom futás közben az életerőt, kevesebbre mint amennyi volt ,egyszerűen csak eltűnik a csík...ezmért lehet? szerintem a konvertálásnál lehet a hiba,mert ha kiírom a képre, az értékét, akkor 0-rá ugrik, ha megváltoztatom

   
robee00 - Tag | 90 hsz       Online status #140275   2010.09.02 11:14 GMT+1 óra  
de az írást dinamikusra akarom, de amig nem müködik, addig lehet h azt csinálom amit mondtál vincent, de most még suliba vagyok, majd otthon megnézem

edit: sikerült, köszi

Ezt a hozzászólást robee00 módosította (2010.09.02 15:02 GMT+1 óra, ---)

   
Vincent3d - Tag | 160 hsz       Online status #140271   2010.09.02 05:06 GMT+1 óra  
draw sprite first

valahova a do.....loop elé beírod, jónak kell lennie. Nálam müködik. Egyégként meg lehet hogy + munka, de eleve úgy csináld a sprite képét hogy rajta van az írás. Délután , ha lesz idöm csinálok egy gombos dolgot és felrakom és belinkelem. Ha addig nem sikerül megoldanod.
   
Dookle - Tag | 478 hsz       Online status #140268   2010.09.02 02:12 GMT+1 óra  
Idézet
robee00 :
Kód:
load image "media/sprites/frame_bg.png",1000
sprite 1000,0,0,1000
text sprite x(1000)+5 , sprite y(1000)+5,"HELO"


nem írja ki a szöveget rá, és a main loopbavan..



main loop előtt:

Kód:
draw sprites first


Ha akkor sem írja ki akkor nincs ötletem...
STEVIE RAY VAUGHAN FOREVER !!!!!

http://pinkcatgames.ucoz.com/
   
robee00 - Tag | 90 hsz       Online status #140264   2010.09.01 22:09 GMT+1 óra  
Kód:
load image "media/sprites/frame_bg.png",1000
sprite 1000,0,0,1000
text sprite x(1000)+5 , sprite y(1000)+5,"HELO"


nem írja ki a szöveget rá, és a main loopbavan..

   
Dookle - Tag | 478 hsz       Online status #140263   2010.09.01 22:01 GMT+1 óra  
Idézet
robee00 :
hogy tudok sprite-ra írni?

edit: áááh sehogy sem akar összejhönni



Úgy hogy offseteled a spritehoz a szöveget

Kód:
do

text sprite x(spritenum)+offsetx , sprite y(spritenum)+offsety , "Ez a szöveg"

loop
STEVIE RAY VAUGHAN FOREVER !!!!!

http://pinkcatgames.ucoz.com/
   
robee00 - Tag | 90 hsz       Online status #140262   2010.09.01 21:37 GMT+1 óra  
hogy tudok sprite-ra írni?

edit: áááh sehogy sem akar összejhönni

   
Vincent3d - Tag | 160 hsz       Online status #140259   2010.09.01 19:20 GMT+1 óra  
Hmmmm, ezt most én nem értem mit mondasz. Copy-zd be ide a részletet, hátha jobban átlátjuk. De addig is :

Kód:
REM képek betöltése
load image "box.png",10
load image "boxuse.png",11
load image "mousepointer.png",1000 <---- ez egy 1px*1px kép (csak egy pont), lehetőleg ne fekete legyen. Ezzel vizsgáljuk majd az ütközést.
load image "kurzor.png",1001

REM spriteok létrehozása
sprite 10,xpos,ypos,10
sprite 11,xpos,ypos,11

REM ami nincs használatban elrejtjük
hide sprite 11
REM elrejtjuk a mose pointert is
hide sprite 1000

REM elrejtjük az egeret
hide mouse

REM mindig a spriteot rajzolja előre az írás elé, ha van
draw sprite first

REM ----- FŐCIKLUS ----------------------------------
do
REM mouse pointer az egér x és y pozicióján
sprite 1000,mousex(), mousey(),1000
REM és maga kurzor ugyancsak egér x és y pozicióján, ezt látjuk játék közben
sprite 1001,mousex(), mousey(),1001


REM Ha sprite ütközés van cserélje ki a képet
if sprite collision(10,1000)=1 then hide sprite 10 and show sprite 11 and boxuse=1
REM Ha nincs sprite ütközés cserélje vissza
if sprite collision(10,1000)=0 then hide sprite 11 and show sprite 10 and boxuse=0

REM ha sprite ütközés van + ball egér klikk
if boxuse=1 and moseclick()=1 then ez történjen.... stb.

sync
loop


Remélem erre gondoltál.

Ezt a hozzászólást Vincent3d módosította (2010.09.01 19:55 GMT+1 óra, ---)
   
robee00 - Tag | 90 hsz       Online status #140258   2010.09.01 18:24 GMT+1 óra  
okés, meg nézem hogy mit tudok a spriteokkal produkálni, és kösz a tippet azért

   
Dookle - Tag | 478 hsz       Online status #140256   2010.09.01 17:52 GMT+1 óra  
akkor is rajzolsz , és azt dbproban nem kell csinálni ha nem muszáj... továbbra is azt mondom hogy : sprite
STEVIE RAY VAUGHAN FOREVER !!!!!

http://pinkcatgames.ucoz.com/
   
robee00 - Tag | 90 hsz       Online status #140253   2010.09.01 16:22 GMT+1 óra  
nem paste image, simán csak draw, szoval box x1,y1,x2,y2,szinek..ennyit rajzolok

   
Dookle - Tag | 478 hsz       Online status #140243   2010.08.31 23:18 GMT+1 óra  
Idézet
robee00 :
én meg olyan problémával küzködök, hogy ki akarom rajzolni az UI-t (user interface), és 2 problémám van:
1 - ha a main loopba rajzolom ki, ugye akkor minden egyes frissitésnél kirajzolja, és az fps 100-ról lemegy 57-60ra, ezt ugy próbáltam megoldani hogy csak egy boxot és 4 szöveget ír ki, de akkor is lemegy az fps
2 - és arra gondoltam hogy csak akkor ujra rajzolni a csikokat ha változott, ez okés, de azt hogy tudom h a main loop előtt rajzolja ki, és ne frissítse?? mert ha berakom a do elé, akkor nem mutatja, ugye mert nem sync-eli, és hát nem vágom

remélem értitek amit leszerettem volna írni



Ha paste image-t használsz , az a lehető legrosszabb-leglassabb megoldás, a paste image nem erre van kitalálva.Cserélj le mindent spriteokra akkor be fog gyorsulni. A paste image-t csak végső esetben szabad használni (sztatikus intró kép , logó a játék elején , stb amíg a sebesség rohamos csökkenése nincs akkora kihatással a játékra)
STEVIE RAY VAUGHAN FOREVER !!!!!

http://pinkcatgames.ucoz.com/
   
robee00 - Tag | 90 hsz       Online status #140219   2010.08.31 18:29 GMT+1 óra  
én meg olyan problémával küzködök, hogy ki akarom rajzolni az UI-t (user interface), és 2 problémám van:
1 - ha a main loopba rajzolom ki, ugye akkor minden egyes frissitésnél kirajzolja, és az fps 100-ról lemegy 57-60ra, ezt ugy próbáltam megoldani hogy csak egy boxot és 4 szöveget ír ki, de akkor is lemegy az fps
2 - és arra gondoltam hogy csak akkor ujra rajzolni a csikokat ha változott, ez okés, de azt hogy tudom h a main loop előtt rajzolja ki, és ne frissítse?? mert ha berakom a do elé, akkor nem mutatja, ugye mert nem sync-eli, és hát nem vágom

remélem értitek amit leszerettem volna írni

   
Vincent3d - Tag | 160 hsz       Online status #140208   2010.08.31 16:41 GMT+1 óra  
Idézet
miso :
Idézet
Vincent3d :
A nagy baj hogy nem lehet frissiteni a terraint, tehát nem tudod csak egyszer beállítani. Ergo a fényekkel nem lehet variálni.



Nem próbáltam ki, de ez szerintem működik:

Kód:
set terrain light 1, 1,0.25, 0, 1, 1, 0.78, 0.5
update terrain 1





Kipróbáltam, de nem müködik. Az ADVANCED TERRAIN helpjében sincs ilyen parancs hogy update terrain (terrainID)
   
Vincent3d - Tag | 160 hsz       Online status #140183   2010.08.31 05:04 GMT+1 óra  
Köszi! Bepróbálom amint oda jutok.
   
miso - Tag | 15 hsz       Online status #140175   2010.08.31 02:06 GMT+1 óra  
Idézet
Vincent3d :
A nagy baj hogy nem lehet frissiteni a terraint, tehát nem tudod csak egyszer beállítani. Ergo a fényekkel nem lehet variálni.



Nem próbáltam ki, de ez szerintem működik:

Kód:
set terrain light 1, 1,0.25, 0, 1, 1, 0.78, 0.5
update terrain 1

   
robee00 - Tag | 90 hsz       Online status #140166   2010.08.30 22:59 GMT+1 óra  
igen próbáltam azt, de az egér mindig "túl messze volt"

edit: igen! sikerült találnom egy müködő 3d mouse-t ) most sikerülni fog,érzem

Ezt a hozzászólást robee00 módosította (2010.08.30 23:30 GMT+1 óra, ---)

   
Vincent3d - Tag | 160 hsz       Online status #140162   2010.08.30 21:55 GMT+1 óra  
A 3d mouse-hoz rendelj hozzá egy objectet. Ha az és az enemy között collision van és pl. bal egér gomb akkor kijelöli.

Igazából vannak itt olyan emberkék akik sokkal jobban tudják hogy kell.
Nem tudom miért nem írnak semmit.
   
robee00 - Tag | 90 hsz       Online status #140143   2010.08.30 13:34 GMT+1 óra  
hát sikerült "szereznem" 3d mouse-t de nem sikerült megoldanom a targetolást addig szerintem berakok egy olyat hogy gombnyomásra targetoljon és majd később megoldom

   
Vincent3d - Tag | 160 hsz       Online status #140141   2010.08.30 11:04 GMT+1 óra  
Idézet
Vincent3d :
Van egy ilyen terrain objectem :

load image "Data/Maps/Map001/map1texture.bmp", 1
load image "Data/Maps/Map001/detail1.tga", 2
make object terrain stageobjects
set terrain heightmap stageobjects, "Data/Maps/Map001/map1heigh.bmp"
set terrain scale stageobjects,80, 3.5,80
set terrain split stageobjects, 1
set terrain tiling stageobjects, 1
set terrain light stageobjects, 1, -0.25, 0, 1, 1, 0.78, 0.5
set terrain texture stageobjects, 1, 2
build terrain stageobjects
position object stageobjects,0,-230,0

ide csak maga a terraint raktam be. vectorok és minden más rendben, mert más objectekre hat az fx, csak erre nem. Tippek, tanácsok??




Reggel felkeltem és bejött!!
A MEGOLDÁS:
set terrain light stageobjects, x vector4(1),y vector4(1),z vector4(1), 1, 1, 0.78, lightrange

A nagy baj hogy nem lehet frissiteni a terraint, tehát nem tudod csak egyszer beállítani. Ergo a fényekkel nem lehet variálni.
   
Vincent3d - Tag | 160 hsz       Online status #140140   2010.08.30 08:42 GMT+1 óra  
Idézet
robee00 :
én most nem hibával, hanem kérdés/kéréssel fordulok hozzátok
egy 3d-s rpgt szeretnék készíteni, és hogy tudom megoldani a "target"-olást. szal ha "rákattintok" az ellenfélre, akkor beállitja az enemy.targeted-et 1-re. a problémám a targetolás, nemtudok rájönni hogy tudnám megoldani



Kell hozzá egy 3d mouse , ami rendesen müködik is.

Keress rá ITT.
Hátha találsz valami. Remélem erre gondoltál. Ha a térben megvan az egér poziciója, akkor már ki tudsz majd jelölni, csak hozzáírod a megfelelő dolgokat.
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] > 8 < [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [89]