- Megfizethető, Pulse szériás Sapphire alaplap DDR5-ös Ryzenek alá
- Vélemény: nem úgy tűnik, de Lip-Bu Tan most menti meg az Intelt
- Változik az internet, pénzt csinálhatnak a weboldalak az AI miatt
- Nem keres több megrendelőt az Intel 18A node-ra az Intel
- Lehet, hogy az OpenAI rakja össze az Apple Siri asszisztensét
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Milyen belső merevlemezt vegyek?
- 5.1, 7.1 és gamer fejhallgatók
- AMD vs. INTEL vs. NVIDIA
- Milyen házat vegyek?
- Azonnali VGA-s kérdések órája
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Azonnali informatikai kérdések órája
- Hisense LCD és LED TV-k
- Milyen SSD-t vegyek?
-
PROHARDVER!
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
É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
válasz
martonx #7773 üzenetére
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 animation
startAnimating(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
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
válasz
instantwater #7634 üzenetére
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
válasz
instantwater #7627 üzenetére
-
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
válasz
Rickeffe #7593 üzenetére
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 whatever
requestAnimationFrame(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
válasz
instantwater #7526 üzenetére
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
válasz
instantwater #7490 üzenetére
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
válasz
instantwater #7487 üzenetére
"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 neve
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
}
?>
<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
Hirdetés
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- sziku69: Fűzzük össze a szavakat :)
- One mobilszolgáltatások
- Goddess of Victory: Nikke
- Milyen belső merevlemezt vegyek?
- Változik az internet, pénzt csinálhatnak a weboldalak az AI miatt
- 5.1, 7.1 és gamer fejhallgatók
- AMD vs. INTEL vs. NVIDIA
- Milyen házat vegyek?
- Azonnali VGA-s kérdések órája
- További aktív témák...
- LG 65BX - 65" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready!
- Macbook White 13" unibody
- Eladó Új Motorola G31 4/64GB szürke / 12 hónap jótállással!
- AKCIÓ! MSI Z790 i5 14600KF 64GB DDR5 512GB SSD RTX 3070 8GB Rampage SHIVA Enermax 750W
- Csere-Beszámítás! Gamer PC Számítógép! I5 12600KF / RTX 3070 / 32GB DDR4 / 512GB SSD
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged