Вопросы новичка
Участников: 4
Страница 6 из 8
Страница 6 из 8 • 1, 2, 3, 4, 5, 6, 7, 8
Re: Вопросы новичка
прости нас холопов! не усмотрели.
на самом деле я очень редко им пользуюсь. мне проще где нужно console.log вывести
на самом деле я очень редко им пользуюсь. мне проще где нужно console.log вывести
Re: Вопросы новичка
как зашла речь, я вспомнил, что есть такая штука. Но в реале ни разу не пользовался.
Dessan, в мире полно всякой фигни. Скилл кодинга - это не столько знания, сколько умение читать чужой код и быстро разбираться в новых технологиях. Хотя, конеш, опыт помогает. Это мое имхо.
Поэтому когда чего-то не знаешь, не должно быть зазорно спросить. Даже гуру кодинга задают вопросы. Ну и типа требовать от кого-то, чтобы он знал все на свете - это наивность чтоле.
Ну а если узнал что-то классное, то круто поделиться этим с товарищими.
P.S. Ладно, я понимаю, почему ты удивляешься. Кодинг клевая штука, если быть открытым, то удивляться всегда будет чему.
Dessan, в мире полно всякой фигни. Скилл кодинга - это не столько знания, сколько умение читать чужой код и быстро разбираться в новых технологиях. Хотя, конеш, опыт помогает. Это мое имхо.
Поэтому когда чего-то не знаешь, не должно быть зазорно спросить. Даже гуру кодинга задают вопросы. Ну и типа требовать от кого-то, чтобы он знал все на свете - это наивность чтоле.
Ну а если узнал что-то классное, то круто поделиться этим с товарищими.
P.S. Ладно, я понимаю, почему ты удивляешься. Кодинг клевая штука, если быть открытым, то удивляться всегда будет чему.
raingo- Отдел прокрастинации
- Сообщения : 756
Дата регистрации : 2017-12-25
Re: Вопросы новичка
Pyro338 пишет:прости нас холопов! не усмотрели.
Ат юморист)
Я просто удивляюсь как вам не лень было объяснять это все когда есть такой тул. Спасибо
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы новичка
Pyro338 пишет:
потом в функции update игрока
- Код:
if(this.keyboarder.isDown(this.keyboarder.KEYS.LEFT)){
if(this.position.x > 0){
this.position.x -= 2;
}
}
if(this.keyboarder.isDown(this.keyboarder.KEYS.RIGHT)){
if(this.position.x < this.gameSize.x-this.size.width){
this.position.x += 2;
}
}
Посмотри мой код с отрисовкой 1 квадрата и движением вправо:
- Код:
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var dx ;
var dy ;
var drawRect = function (x,y){
context.fillStyle = 'black'; //цвет для рисования
context.clearRect(0,0,800,450);//очистка экрана
context.fillRect(x,y,30,30); // рисование квадрата
dx = x;
dy = y;
}
document.onkeydown = function (event) {
if (event.key == 'ArrowRight'){
var x = dx;
var y = dy;
gameLoopRight(x,y);
dx++;
}
}
function drawGrid(){
for (var i = 0; i < 1; i++) {
var x = Math.floor((Math.random() * ((canvas.width-50) - 0 + 1)) + 0);
var y = Math.floor((Math.random() * ((canvas.height-50) - 0 + 1)) + 0);
drawRect(x,y);
}
}
var gameLoopRight = function(x,y){
drawRect(x,y);
if (x>=700){
// условие
}
};
drawGrid();
в HTML только
- Код:
<canvas id="canvas" width="800" height="450" style="border: 1px solid red;"></canvas>
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы новичка
Чет у меня настроение странное. Меланхолия типа. Хз.
Все мы сдохнем.
Все мы сдохнем.
raingo- Отдел прокрастинации
- Сообщения : 756
Дата регистрации : 2017-12-25
Re: Вопросы новичка
конечно все мы сдохнем, поэтому не теряй время, садись и работай над своими проектами уже сейчас
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы новичка
raingo пишет:
Компьютерный аналог игра для застолья. Типа компанейские игры - мафия, дженга. Только это может быть рпг или другой жанр. Эх.. у меня целый пласт мыслей по этому поводу..
Реингоу, рассказывай, что там за пласты у тебя такие про рпг или другие жанры?Рассказывай.
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы новичка
да харош мне разводить писанину. делом пора заняться. Все проекты простаивают
raingo- Отдел прокрастинации
- Сообщения : 756
Дата регистрации : 2017-12-25
Re: Вопросы новичка
Посмотри мой код с отрисовкой 1 квадрата и движением вправо:
посмотрел.
- Код:
game.js:2 Uncaught TypeError: Cannot read property 'getContext' of null
at game.js:2
(anonymous) @ game.js:2
Re: Вопросы новичка
во первых надо обернуть твой скрипт в document ready, потому что ДОМ не успевает прогрузиться и из за этого переменная canvas получается null
во вторых ты хочешь подвинуть свой квадрат, но не даешь ему никакого прирощения координаты, а просто присваиваешь то же значение x, которое у него и было
во вторых ты хочешь подвинуть свой квадрат, но не даешь ему никакого прирощения координаты, а просто присваиваешь то же значение x, которое у него и было
- Код:
$( document ).ready(function(){
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var dx ;
var dy ;
var drawRect = function (x,y){
context.fillStyle = 'black'; //цвет для рисования
context.clearRect(0,0,800,450);//очистка экрана
context.fillRect(x,y,30,30); // рисование квадрата
dx = x;
dy = y;
}
document.onkeydown = function (event) {
console.log(event.key);
if (event.key == 'ArrowRight'){
var x = dx+1;//вот на эту строчку внимание обрати
var y = dy;
gameLoopRight(x,y);
dx++;
}
}
function drawGrid(){
for (var i = 0; i < 1; i++) {
var x = Math.floor((Math.random() * ((canvas.width-50) - 0 + 1)) + 0);
var y = Math.floor((Math.random() * ((canvas.height-50) - 0 + 1)) + 0);
drawRect(x,y);
}
}
var gameLoopRight = function(x,y){
drawRect(x,y);
if (x>=700){
// условие
}
};
drawGrid();
});
Re: Вопросы новичка
у успеха оригинальной игры были другие причины. Отсутствие конкуренции, лидерство на рынке (клоны почти всегда проигрывают), новизна, распространенность. Она была почти в каждом игровом центре на больших таких игровых автоматах.
Считай что марио. В которую сейчас играют только из за ностальгии.
А еще, новые игровые элементы, это новые враги со слегка измененной атакой. Новые астероиды, у которых чуть больше броня. Новые бонусы и виды оружия, которые откроются постепенно, а не сразу в первом уровне. Новые кристалы, которые стоят в два раза дороже, но ничем не отличаются.
В идеале, да, в 2018 году мы привыкли к более радикальным изменеиям. Но от однообразия не сложно избавиться
Считай что марио. В которую сейчас играют только из за ностальгии.
А еще, новые игровые элементы, это новые враги со слегка измененной атакой. Новые астероиды, у которых чуть больше броня. Новые бонусы и виды оружия, которые откроются постепенно, а не сразу в первом уровне. Новые кристалы, которые стоят в два раза дороже, но ничем не отличаются.
В идеале, да, в 2018 году мы привыкли к более радикальным изменеиям. Но от однообразия не сложно избавиться
raingo- Отдел прокрастинации
- Сообщения : 756
Дата регистрации : 2017-12-25
Re: Вопросы новичка
еп твою мать, не туда написал, с телефона пишу..
raingo- Отдел прокрастинации
- Сообщения : 756
Дата регистрации : 2017-12-25
Re: Вопросы новичка
Pyro338 пишет:во первых надо обернуть твой скрипт в document ready, потому что ДОМ не успевает прогрузиться и из за этого переменная canvas получается null
- Код:
$( document ).ready(function(){
});
Странно, ни в одном видео я этого не видел,включая видео сканера. К тому же jquery совмещать с javascript?Я читал, что такое никто не делает. Используется либо javascript либо jquery.
да, получаю координату при создании объекта, сохраняю, присваиваю и увеличиваю уже присвоенное. Я ничего умнее не придумал просто. А как нужно?Вообще как мне создать множество объектов и всех их двигать в какую-то сторону с одинаковой скоростью? И как мне задать каждому объекту свою скорость?Вот такой вот "снегопад" квадратов как мне сделать?Pyro338 пишет:во вторых ты хочешь подвинуть свой квадрат, но не даешь ему никакого прирощения координаты, а просто присваиваешь то же значение x, которое у него и было
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы новичка
ни в одном видео я этого не видел,включая видео сканера
я полагаю, что в PointJS это встроено. а например в примере инвейдеров на чистом JS, там, если ты посмотришь код, икровой цикл вызывается
- Код:
window.onload = function(){
new Game('screen');
}
что в принципе тоже самое, что я тебе написал
К тому же jquery совмещать с javascript?Я читал, что такое никто не делает
я делаю. ну если не нравится - замени $( document ).ready(function() на window.onload = function() и будет тебе счастье.
так ты там ничего не увеличивал. у тебя былои увеличиваю уже присвоенное
- Код:
document.onkeydown = function (event) {
console.log(event.key);
if (event.key == 'ArrowRight'){
var x = dx;
а +1 - это уже я дописал
- Код:
document.onkeydown = function (event) {
console.log(event.key);
if (event.key == 'ArrowRight'){
var x = dx+1;
А как нужно?Вообще как мне создать множество объектов и всех их двигать в какую-то сторону с одинаковой скоростью? И как мне задать каждому объекту свою скорость?Вот такой вот "снегопад" квадратов как мне сделать?
нужно создать массив объектов и потом не каждый раз пересоздавать его, как ты делаешь сейчас, а в функции update менять координату уже созданных объкутов. опять же смотри код инвейдеров - там все это есть
Re: Вопросы новичка
Кто-нибудь может сказать, нормально ли синхронизировать каждое движение игроков с БД, будет ли такой способ нагружать сервер? Или лучше синхронизировать данные с БД только при выходе игрока из игры?
- Код:
socket.on('move', function (msg) {
for (let a=0; a < users.length; a++){
if (users[a].id == ID){
users[a].x = msg.x;
users[a].y = msg.y;
pool.getConnection(function(err, connection){
connection.query('UPDATE test SET x = ' + msg.x + ', y = ' + msg.y + ' WHERE username = "' + users[a].username + '"',
function(error, result, fields){connection.release();})});
break;
}
}
socket.broadcast.emit('userMove', {id: ID , 'x' : msg.x, 'y' : msg.y, p: msg.p });
});
Re: Вопросы новичка
Не нормально. А еще sql подобные бд по-моему не лучшее решение для игр.
Вообще, сколько не пытался найти хотя бы приблизительную статистику по нагрузке на vps в зависимости от кол-ва игрока, активностей и т.д. - никто ничего не знает. Если попадется подобная инфа, буду счастлив выслушать.
На мой взгляд, в БД записывать позицию только при входе в новую локацию и при выходе. Но это хз какая игра. Я бы старался никак не нагружать сервер в начале разработки.
А еще можно так оптимизировать. Собирать все входящие сигналы воедино, но не сразу оповещать об них. А ждать какое-то кол-во микросекунд, пока не соберется много, и бродкастить скопом все.
Вообще, сколько не пытался найти хотя бы приблизительную статистику по нагрузке на vps в зависимости от кол-ва игрока, активностей и т.д. - никто ничего не знает. Если попадется подобная инфа, буду счастлив выслушать.
На мой взгляд, в БД записывать позицию только при входе в новую локацию и при выходе. Но это хз какая игра. Я бы старался никак не нагружать сервер в начале разработки.
А еще можно так оптимизировать. Собирать все входящие сигналы воедино, но не сразу оповещать об них. А ждать какое-то кол-во микросекунд, пока не соберется много, и бродкастить скопом все.
raingo- Отдел прокрастинации
- Сообщения : 756
Дата регистрации : 2017-12-25
Re: Вопросы новичка
pyro, спасибо, что указал на недочёт, я ночью упустил этот момент.
Только тогда уже надо вот так вообще:
Только тогда уже надо вот так вообще:
- Код:
document.onkeydown = function (event) {
console.log (event);
if (event.key == 'ArrowRight'){
var x = dx+5;
var y = dy;
gameLoopRight(x,y);
}
}
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы новичка
SeeDBe пишет:Кто-нибудь может сказать, нормально ли синхронизировать каждое движение игроков с БД, будет ли такой способ нагружать сервер? Или лучше синхронизировать данные с БД только при выходе игрока из игры?
Я не знаю как синхронизировать, но если не синхронизировать сразу, то твою игру взломают даже с wpe pro например
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы новичка
Только тогда уже надо вот так вообще:
+1 или +5 - это уж как душе угодно
Кто-нибудь может сказать, нормально ли синхронизировать каждое движение игроков с БД
это плохо. каждый запрос к бд - это нагрузка на сервер. представь - у тебя тысяча игроков и они двигаются каждую миллисекунду. любой сервер мнгновенно ляжет.
целесообразно делать т. н. "слепок мира" и писать его в БД одним запросом. ито не каждый тик, а через какой-то промежуток времени. даже если всё ляжет к псам - потерять изменения за последнюю минуту - это не так уж и криминально.
каждый раз следует писать такие варианты как например изменения статов, покупки и так далее. и то нужно смотреть в каждом случае отдельно
Re: Вопросы новичка
Да, не в +5 или +1 дело, а в том что я dx++; строку удалил вообще)Pyro338 пишет:
+1 или +5 - это уж как душе угодно
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Re: Вопросы новичка
Pyro338 пишет:
целесообразно делать т. н. "слепок мира" и писать его в БД одним запросом. ито не каждый тик, а через какой-то промежуток времени. даже если всё ляжет к псам - потерять изменения за последнюю минуту - это не так уж и криминально.
каждый раз следует писать такие варианты как например изменения статов, покупки и так далее. и то нужно смотреть в каждом случае отдельно
Если локацию, статы, инвентарь сохранять каждую секунду, то что же останется не сохранять тогда?))
Dessan- Юный падаван
- Сообщения : 426
Дата регистрации : 2017-12-25
Страница 6 из 8 • 1, 2, 3, 4, 5, 6, 7, 8
Страница 6 из 8
Права доступа к этому форуму:
Вы не можете отвечать на сообщения