-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-02-25 10:20 Téma összefoglaló
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Tomi_78
aktív tag
Ja, igen, a hivatkozás a w3schools-ról... Megnéztem, de nem értem egészen, hogy ez hogy működik, míg az egész programot a saját gépemen használom... Tehát URL-nek megadható akár egy mappa is a JavaScript-es programom mellett elérési úttal együtt?
-
Tomi_78
aktív tag
Értem, köszönöm a válaszokat! Tehát gyakorlatilag olyan lehetőség nincs, hogy mellékelem a font állományt a programom mellé, és abban megadom az elérési utat hozzá.
Viszont anélkül is használni fogja az alapértelmezett betűtípust. -
Tomi_78
aktív tag
Sziasztok!
Az volna a kérdésem, hogy ha JS programomban használok egy betűkészletet ily módon:rv.font = "30px Comic Sans MS";rv.fillStyle = "yellow";rv.textAlign = "center";rv.fillText("Betöltés... "+betoltve,vaszon.width/2,vaszon.height-30);
akkor ez az operációs rendszer (esetemben Windows 10) betűkészleteiből meríti azt a bizonyos Comic Sans MS-t? Tehát ha valahol nincs telepítve, akkor nem ír ki semmit?
Ha mellékelném ezt a betűkészletet a programom mellé, akkor hogyan, milyen JS utasítással lehetne ezt beépíteni, a fentebbi rv.font-ot kiváltva vagy kiegészítve? Van valami utasítás erre, ami elérési útból használ betűkészletet?
Illetve a 2. kérdésem, hogy a játék sebességét hogyan vezérelhetem a legpraktikusabban? Mert lehet egyszerűen így is 60 fps-sel:function jatek(60)...
vagy kicsit bonyolultabban:var fps, jateksebessege, most, akkor, eltelt;startAnimating(20);function startAnimating(fps) {jateksebessege = 1000 / fps;akkor = Date.now();jatek();};function jatek() {requestAnimationFrame(jatek);most = Date.now();eltelt = most - akkor;if (eltelt > jateksebessege) {akkor = most - (eltelt % jateksebessege);//
De melyik az üzembiztosabb megoldás? -
Tomi_78
aktív tag
Két dolog:
1. tanuljuk már meg végre, hogy mi a különbség a let és const között
ez a halálom, amikor valaki a legalapabb dolgot is fogalmatlanul használja.
2. nekem ez a megoldás sokkal szimpatikusabb: https://stackoverflow.com/questions/19764018/controlling-fps-with-requestanimationframe minden olyan megoldástól a hideg kiráz, ami animációval kapcsolatos és settimeout / setinterval van benne. Ezt a megoldás még kombinálnám annyival, hogy magát az animációt kiszervezném egy külön worker thread-be, mert ezekben az esetekben az a gond, hogy ha komplex az animáció / nagyon gyenge a futtató vas, akkor lehet, hogy több frame-et is át fogsz lépni, mint eredetileg tervezted.Szia!
1. Ahogy én tudom (nem régóta és meglehet, rosszul), a különbség a let és a var között (e kettő alapján néztem utána) az, hogy a var egy blokkon belül érvényes, tehát ugyanolyan változó már nem lehet azon belül, míg a let esetében ilyen megkötés nincsen.
2. Megcsináltam most az általad ajánlott megoldás alapján; az én gépemen jól működik, tehát remélem, mindenhol így lesz. Csak azt nem értem, hogy a startTime változóra mi szükség van, hiszen azon kívül, hogy egyszer értéket kap, nem használatos?
Tehát itt a kód a játékomból:var fps, jateksebessege, startTime, most, akkor, eltelt;// initialize the timer variables and start the animationstartAnimating(120);function startAnimating(fps) {jateksebessege = 1000 / fps;akkor = Date.now();startTime = akkor;jatekciklus();};function jatekciklus() {requestAnimationFrame(jatekciklus);most = Date.now();eltelt = most - akkor;if (eltelt > jateksebessege) {akkor = most - (eltelt % jateksebessege);//...a program többi, rajzoló része... -
Tomi_78
aktív tag
Sziasztok ismét!
Módosítottam a játékom kódján egy kicsit, hogy - elvileg - minden számítógépen azonos sebességgel fusson, bár ezt még most nem tudom leellenőrizni, mivel pillanatnyilag nem vagyok ama "gyorsabb de a játékot lassabban futtató" gép közelében.
Ezért közzétenném itt a kódom ezt végző részét, hogy megnézhessétek és meg tudjátok mondani, hogy jó-e , ahogy csináltam.
Szóval szerintetek jó ez így? Az én gépemen simán fut. Akkor elvileg minden képfrissítési frekvencián jól működne?let jateksebessege = 100;function jatekciklus() {setTimeout(function() {requestAnimationFrame(jatekciklus);//a játékom fő kódja a rajzolással, stb.}, 1000 / jateksebessege);};requestAnimationFrame(jatekciklus);Egyébként innen puskáztam ki:https://www.kirupa.com/html5/animating_with_requestAnimationFrame.htmés annyit kellett átalakítanom rajta, hogy fentebb az utolsó sorba is be kellett szúrnom a requestAnimationFrame()-et, mert különben csak nagy fehérséget mutatott valamiért. -
Tomi_78
aktív tag
a requestAnimation frame a képernyőfrissítéshez igazodik, nem a gép sebességéhez. Simán lehet, hogy a te gyengébb gépednek 120Hz-es kijelzője van, a másik erősebb gépnek meg 60Hz-es. Ebben az esetben nálad 120fps-t fog eredményezni a requestAnimationFrame, a másik gépen meg 60fps-t.
A SetInterval felejtős, teljesen megbízhatatlan.
requestAnimationframe-nél így tudod fixálni az fps-t, hogy mindenhol azonos sebességet adjon: https://stackoverflow.com/questions/19764018/controlling-fps-with-requestanimationframe
Nyilván fixálni csak lefelé tudod, azaz 60fps-től lefelé.Köszönöm ezt a választ is és átnézem a hivatkozott oldalt, amit küldtél.
Tehát az fps beállításához le kell tudnom kérdeznem a képernyőfrissítési frekvenciát a programjaimban? -
Tomi_78
aktív tag
Sziasztok!
Korábban már kérdezősködtem itt párszor, pl. a játékok sebességét illetően, és ajánlották itt nekem a SetInterval() helyett a requestAnimationFrame() függvény használatát.
Azóta használom is ezt, hiszen az én 4 GB RAM-mal és kb. 3 GHz-es CPU-val rendelkező számítógépemen jól és simán futnak a javascriptes játékaim.
Viszont most kipróbáltam egyiket egy, az enyémnél lényegesen erősebb és gyorsabb számítógépen (pl. 8 GB RAM van benne, tehát kétszerese az enyémnek) és elhűlve tapasztaltam, hogy a játékom lassabban fut, mint a saját gépemen. Pedig egy gagyi kis Pong-szerű, labdapattogtatós játékról van szó.
Miért van ilyen sebességbeli különbség, ráadásul a gyengébb gép javára? És hogyan lehetne megoldani, hogy mindenütt egyforma sebességgel fusson? -
Tomi_78
aktív tag
Karakterkódolási hiba.
Legyen a fájl is UTF8 kódolású, és a meta tagek is ezt állítsák be.Mármint írjam be a kód elejére, hogy:
<meta charset="utf-8" />és állítsam át a Notepad++-t ilyen kódolásúra? -
Tomi_78
aktív tag
Screenshotot, github linket esetleg tudsz csatolni?
-
Tomi_78
aktív tag
Sziasztok újra!
Készítettem nemrég egy kis JS-es játékocskát, és amikor futtattam egy másik gépen, ráadásul Edge böngészőben Chrome helyett, szomorúan tapasztaltam, hogy az ékezetes betűket nem jelenítette meg. Ez miért van? A programhoz kell csomagolni a fontot (betűkészletet)? Ezt hogyan kell csinálni?
-
Tomi_78
aktív tag
"Ez egy rekurzívan hívott függvény, amit a JS grafikus motorja szabályoz (legnagyobb sebesség 60 FPS - ha 16 ms alatt be tudja fejezni a függvény a számolást)."
Akkor ez egyenlő a setInterval(60)-nal?
-
Tomi_78
aktív tag
Köszönöm szépen! Ki is fogom próbálni.
Most utána is néztem ennek az utasításnak; úgy látom, valamelyest bonyolultabb a setInterval-nál, aminél csak meg kellett adni egy számot és kész.
Ez viszont egy kis magyarázatra szorul számomra:function repeatOften() {// Do whateverrequestAnimationFrame(repeatOften);}requestAnimationFrame(repeatOften);Akkor ez paraméterként nem egy képfrissítési számot, hanem egy másik függvényt vár, amiben az ismétlődő dolgok vannak?
-
Tomi_78
aktív tag
Sziasztok!
Az miért van, hogy kicsinyke játékomban villognak a mozgó objektumok?
Ezek egy tömbben vannak és egy for ciklussal végigmegyek rajtuk, miközben a drawImage-dzsel kirajzolom őket a setInterval függvényben, aminek 60 az értéke.
Lehet, hogy kellene még valami külön képernyőújrarajzolási utasítás bele? Van ilyen a JS-ben? -
Tomi_78
aktív tag
Köszönöm mindenkinek, aki segítő szándékkal írt; Cattus (#7532) tippje alapján megkettőztem a sound() függvényt, ami alapján létrehoztam egy csak a zenefájlokat kezelő zene() függvényt, és ebbe írtam bele, hogy:
this.zene.loop=true;
Igaz, hogy így az összes zenét ismétli, de így is jó. -
Tomi_78
aktív tag
Sziasztok ismét!
Tehát, a zenék már mennek, de az az egyetlen bajom ezekkel, hogy a hatterzene.mp3 csak egyszer játszódik le, márpedig ismétlődnie kellene, mivel a játékprogram háttérzenéjéről van szó.
Így kódoltam, de nem működik:
hatterzene = new sound("zenek/hatterzene.mp3");
hatterzene.loop = true;
Hogyan lehetne ezt a problémát megoldani?U.I.: a 7525. hozzászólásban van a kódom a zenék inicializálásáról.
-
Tomi_78
aktív tag
Body onload?
Vagy használj egyéni eventeket és adj ki egyet amikor betöltött a játék, és egy event handler elindítaná a zenédet.
A body onload-ra sem csinált semmit. Egyébként megoldottam a Martonx javaslatához hasonló módon egy ráadás egér eseménnyel, de akkor is furcsállom, hogy miért van erre szükség: egy sima cimzene.play() miért nem működik akárhol?
-
Tomi_78
aktív tag
Sziasztok ismét!
Visszakanyarodnék a JS-es hanglejátszáshoz. Ezzel a kóddal inicializálnám a zenét:function sound(src) {
this.sound = document.createElement("audio");
this.sound.src = src;
this.sound.setAttribute("preload", "auto");
this.sound.setAttribute("controls", "none");
this.sound.style.display = "none";
document.body.appendChild(this.sound);
this.play = function(){
this.sound.play();
};
this.stop = function(){
this.sound.pause();
};
Ez pedig a zeném (kb. 1,7 MB méretű):var cimzene;
cimzene = new sound("zenek/cimzene.mp3");És az a gondom, hogy ez a zene csak akkor indul el, ha bekövetkezik valami menüben a kattintás esemény, egyébként meg nem. Hogyan indíthatnám el a zenét már akkor, amikor elindul a játék?
-
Tomi_78
aktív tag
- a szamlal function üres, nem csinál semmit sem, így undefined lesz JS oldalon a valami.
- az extra // bezavarhat html parseoláskor (bár a modern böngészők tudnak vele együtt élni)
- a return $num; okozhatja a furcsa viselkedést, ott egy ilyen kellene, hogy helyes legyen:echo 'return '. $num . ';' ;így a szamol helyes értékkel térne vissza és később nem kellene az echo $numA 8. sorban a <?php utasítás nem tetszik neki valamiért; erre írja ki, hogy:
Uncaught SyntaxError: Unexpected token '<' -
Tomi_78
aktív tag
Értem.
Azért nem írja ki, mert a $num változót az if szkópján belül deklarálod.
Tegyél egy $num=0 értékadást az if elé, így elérhető lesz az ifen kívülről is.De ha rám hallgatsz, becsomagolod az egészet egy szamlal() függvénybe, ami elvégzi a kívánt műveletet, majd a végén visszaadja a $num értékét.
Ezután csak meg kell hívnod a.függvényed ahol számlálni akarsz, esetedben a javascript tagon belül, és így nem kell aggódnod a változó szkópok miatt, és a globális névteret sem szennyezed be.
Tényleg el kellene döntened, hogy user szintű vagy globális számlálót akarsz, mert a jelenlegi megvalósítás az egy globális számlálót valósít meg, és az összes usered ugyanazt a számlálót fogja növelni.
Persze, ha ez egy látogató számláló akkor ez a kívánt viselkedés.
Miért van szükséged javascriptre?
Ezt az értéket simán kiírhatnád a bodyba is PHPvel.Bocsi a hiányzó formázásért, telefonról vagyok.
Sajnos nem működik még, pedig adtam az if előtt kezdőértéket a $num-nak, meg függvényt is létrehoztam. Most a JS függvényen belüli PHP-zés nem tetszik valamiért a programnak. Így néz ki most a kódom:
<html>
<head>
<title>Fájlkezelő</title>
</head>
<body>
<script type="text/javascript">
function szamlal() {
<?php
$File = 'adat.txt'; // A számláló file neve
$num=0;
if (file_exists($File)) // Létezik a file?
{
$fp = fopen($File,"r"); // Megnyitjuk olvasásra
$num = fread($fp, filesize($File)); // Beolvassuk a tartalmát a $num változóba.
fclose($fp); // Zárjuk a filet.
$num=$num+1; // A változó értékét megnöveljük
$fp = fopen($File,"w"); // Megnyitjuk ugyanazt a filet, de most írásra
fwrite($fp, $num, 10); // Kiírjuk a változó értékét.
fclose($fp); // Zárjuk a fájlt
return $num;
}
?>
};
//<script type="text/javascript">
valami = szamlal();//'<?php echo $num ?>'; //Ha elhagyom az idézőjeleket, UNEXPECTED TOKEN hiba lesz a konzolban, ha nem, akkor meg kiír mindent közte!!!
alert(valami);
</script>
</body>
</html> -
Tomi_78
aktív tag
Mit jelent az, hogy nem működik?
Nem ír fájlba, nem számol, hibát ad, nem írja ki a JS amit szeretnél?Ha csak a kliensnek a saját számlálóját kell kezelni akkor JSsel cookieba vagy local storagebe el tudod menteni.
Ha kell a szerveren is az adat akkor marad amit csináltál, bár célszerű lenne MySQLbe tenni az adatot, illetve ez nem a PHP topik.
"nem írja ki a JS amit szeretnél?"
Pontosan ez a helyzet. Odaírtam a kódba megjegyzésként a kiírás mellé.
Ugyanis vagy magát a kódsort írja ki, ha idézőjelek között van, vagy semmit, mert hibaüzenetet ad a konzol a Google Chrome-ban. -
Tomi_78
aktív tag
Sziasztok!
Azt szeretném megcsinálni egy honlappal, hogy bizonyos dolgokat lehessen a Tetszik/Nem tetszik gombokkal értékelni. Ezek képek lennének, amikre kattintva a tetszik vagy a nemtetszik változók értéke növelődik.
Ezt JS-ben nem nehéz beállítani, de valahogy tárolni is kéne ezen adatokat, hogy ne vesszenek el, és a következő látogatáskor is láthatók legyenek a legutóbbi állapotok.
Ehhez egy .txt állományba menteném le a változók értékeit, tehát csupán két számot.
Ezt viszont úgy tűnik, a sima JS nem tudja megoldani, kell tehát némi PHP-s kiegészítés is hozzá.
igen ám, de akkor meg tudnom kellene, hogy a változókat hogyan lehet ide-oda "dobálni" JS és PHP között. Na, ez az, ami sajnos nem megy.
Írtam, pontosabban összeollóztam egy kis példaprogramot a világhálóról kipuskázott példák alapján, de ez sem működik.
Íme a kód:<html><head><title>Fájlkezelő</title></head><body><?php$File = 'adat.txt'; // A számláló file neveif (file_exists($File)) // Létezik a file?{$fp = fopen($File,"r"); // Megnyitjuk olvasásra$num = fread($fp, filesize($File)); // Beolvassuk a tartalmát a $num változóba.fclose($fp); // Zárjuk a filet.$num=$num+1; // A változó értékét megnöveljük$fp = fopen($File,"w"); // Megnyitjuk ugyanazt a filet, de most írásrafwrite($fp, $num, 10); // Kiírjuk a változó értékét.fclose($fp); // Zárjuk a fájlt}?><script type="text/javascript">var valami = <?php echo $num ?>; //Ha elhagyom az idézőjeleket, UNEXPECTED TOKEN hiba lesz a konzolban, ha nem, akkor meg kiír mindent közte!!!//alert(valami);</script></body></html> -
Tomi_78
aktív tag
Sziasztok!
Zenét szeretnék lejátszani egy JS-es játékomban, amely zene OGG vagy MP3 formátumban van. Úgy tapasztaltam, hogy a JS alapban ezeket nem, csak WAV-okat képes lejátszani, így kénytelen vagyok letölteni valami audió bővítést.
Elsőre a howler.js-re esett a választásom, de nem boldogulok vele:
a howler.js állományt bemásoltam a játékom mellé, majd - ahogy a howler dokumentációjában is olvasható - beírtam a játékomba ezen sorokat:
<script src="/howler.js"></script>
<script> var zene = new Howl({ src: ['cimzene.mp3'] }); </script>
De hiába futtatom, mert nem érti a progi, hogy mi az a Howl. Beírtam utána még ezeket is:
import {Howl, Howler} from 'howler';
const {Howl, Howler} = require('howler');
de így sem működött.
Valaki ért ehhez, hogy leírhassa a megoldást nekem? Előre is köszönöm! -
Tomi_78
aktív tag
Nem értem...

Beírtam ezt a HEAD tagok közé:kilepszov {
position: fixed;
left: 10px;
top: 10px;
szovege = "<ESC>: kilépés";
}
és ennek eredményeképp ezt az egészet kiírja nekem feketével a vászon fölé, de ezt is úgy, hogy ha elgördítem, akkor eltűnik. Ebből hogy lehet kinyerni a szovege által kiíratandó részt a képernyő fix pontjára mondjuk sárgával? -
Tomi_78
aktív tag
Köszi mindkettőtöknek, de mi van, ha egy változó tartalmát akarom így kiíratni, vagy egy játék HUD tartalmát mutatni, amin változhatnak az elemek? Azt is ugyanígy kell? Elérhető a JS-en belülről?
-
Tomi_78
aktív tag
Sziasztok!
Egy olyan JS progit készítek, amelyben a vászon nagyobb a kijelzőnél, tehát a képernyő görgethető. Az lenne a kérdésem, hogy milyen utasítással lehet szöveget és képet elhelyezni úgy, hogy az görgetéstől függetlenül mindig látszódjon pl. az ablak bal felső sarkában?
Eddig így:var vaszon = document.getElementById('rajzvaszon');
var rv = vaszon.getContext('2d');
(...)
rv.font = "30px Comic Sans MS";
rv.fillStyle = "yellow";
rv.textAlign = "left";
rv.textBaseline = "top";
rv.fillText("<ESC>: kilépés",vaszon.pageX+10,vaszon.pageY+10);
próbáltam, de nem vezetett eredményre (sem a vaszon.pageX, sem rv-vel sem canvas-sal).
Új hozzászólás Aktív témák
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Arc Raiders
- BMW topik
- Kuponkunyeráló
- Gumi és felni topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- AMD FX
- Milyen billentyűzetet vegyek?
- Mibe tegyem a megtakarításaimat?
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- Beszámítás! VALVE Steam Deck OLED 512GB SSD kézikonzol garanciával hibátlan működéssel
- ASUS TUF A14 Gaming Notebook! Ryzen AI HX 370 / RTX 4050 / 16GB DDR5 / 1TB NVMe! BeszámítOK!
- Apple iPhone Air - Black - 512GB - Újszerű - ALZA Jótállás: 2028.09.28-ig
- ASUS ROG Strix SCAR 16 / Ultra 9 275HX / RTX5090 / 32GB / 2TB NVMe! BeszámítOK
- Samsung Galaxy A53 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

ez a halálom, amikor valaki a legalapabb dolgot is fogalmatlanul használja.

