phaser – Camera bounds with container overflow

I’m using Phaser to create a small web based game, but I would like some advice on how to handle multiple resolutions and scrolling.

Basically what I would like to achieve is the following :

  • The game view must fit in a container (maybe smaller than the browser window) of any size and still cover it all
  • The aspect ratio must be maintained
  • The camera must follow the player and stop scrolling when the world’s bounds are reached

The world has a fixed size that never changes (pretty small).

The framework seems to already have everything required to do what I described.

For the game config I use:

{
    width: 1280,
    height: 700,
    scale: {
        mode: Phaser.Scale.ENVELOP
    },
    ...
}

Then for the camera:

this.cameras.main.startFollow(this.player);
this.cameras.main.setBounds(0, 0, this.gridSizeX * this.gridCellSize, this.gridSizeY * this.gridCellSize);

Very basic stuff, but the scale mode make the game area overflow its container.
That’s exactly what I want but the camera bounds become incorrect as demonstrated here:

enter image description here

Do you know a way to setup the camera to scroll until the end of the overflowing area ?

Thanks a lot!

Estrutura de dados C++ – Stack Overflow em Português

Estava a analizar um codigo em C++ e me deparei com a seguinte estrutura…

Para que serve a 4º alinha desse trecho

struct ligacao {
  int v_;
  int w_;
  int ComEXp; 
  ligacao(int v, int w, int ComEXp1) : v_(v), w_(w), ComEXp(ComEXp1) {} // Minha duvida seria concretamente aqui
};

Salva...Obrigado desde ja galera

Video MP4 Delphi Android – Stack Overflow em Português

Boa noite,

Tenho uma aplicação simples de slide em android, com imagens e videos. Funciona da seguinte forma:
Quando for uma imagem o videocontrol seto como visible:= false; e o imgconteudo seto visible:= true; e se for video é o contrario.

Porém no caso do videocontrol não respeita fica um quadro preto do videocontrol.
Segue o código que utilizo.

if dtmod.imagenslocvideo.Text <> ‘1’ then
begin
MediaPlayer1.STOP;
MediaPlayerControl1.Visible:= False;
imgconteudo.Visible:= True;
end;

if dtmod.imagenslocvideo.Text = ‘1’ then
begin
imgconteudo.Visible:= false;
MediaPlayerControl1.Visible:= true;
MediaPlayer1.CurrentTime:= 1;
MediaPlayer1.media.Play;

end;

média escolar usando python – Stack Overflow em Português

Estou com problemas para executar o código abaixo. Já tentei varias vezes.
nome = input(‘Digite o nome do aluno: ‘)

nota1 = float(input(‘Digite a nota da Prova 1: ‘))
nota2 = float(input(‘Digite a nota da Prova 2: ‘))
faltas = int(input(‘Digite o total de faltas: ‘))

media = (nota1+nota2)/2
assid = (20-faltas)/20

if media >= 6 and assid >= 0.7:
resultado = ‘Aprovado’

elif media < 6 and assid < 0.7:
resultado = ‘Reprovado por média e por faltas’

elif media < 6:
resultado = ‘Reprovado por média’

elif assid < 0.7:
resultado = ‘Reprovado por faltas’

else:
print(‘Erro’)

print(‘Nome:’,nome)
print(‘Média:’,media)
print(‘Assiduidade:’,(assid*100)+’%’)
print(‘Resultado:’,resultado)

array – Cómo evitar heap overflow en nodejs

Estoy recogiendo registros de una base de datos de oracle. Es de unos productos. El caso, es que cuando relizo la petición, todo funciona perfectamente. Cuando llega el problema, es cuando envío esos datos a una función con la cual creo un array de objetos con los datos obtenidos. Por aquí pongo algo de código:
Función de controlador, donde realizo la consulta sql a oracle. Es algo simple, ya que estaba haciendo unas pruebas:

async function getStockFromMilena(req, res, next) {
    try {
        let c = await dbOraController.connect();
        let sql = "SELECT * FROM ARTICULOS WHERE ENTIDAD = 9"
        let result = await c.execute(sql, {}, {});
        let structure = utils.dbStructureArray(result.metaData, result.rows);
        return res.send(structure);
    } catch (e) {
        next(e);
    }
}

La función dbStructureArray es la que se ocupa de recibir los metadatos y las filas del resultado de la consulta:

function dbStructureArray(metadata, rows){
    try{
        let arrayObjects = ();
        rows.forEach((row, index) => {
            let dbObject = {};
            row.forEach((r, i) => {
                dbObject(metadata(i).name) = row(i);
            });
            arrayObjects.push(dbObject);
        });
        return arrayObjects;
    }catch(e){
        throw e;
    }
}

Al insertar los objetos en el array me arroja este error:

<--- Last few GCs --->

(6148:000002B7D039E070)    15362 ms: Mark-sweep 1067.9 (1147.9) -> 1067.9 (1113.4) MB, 137.0 / 0.0 ms  (average mu = 0.743, current mu = 0.000) last resort GC in old space requested
(6148:000002B7D039E070)    15506 ms: Mark-sweep 1067.9 (1113.4) -> 1067.9 (1112.9) MB, 143.7 / 0.0 ms  (average mu = 0.577, current mu = 0.000) last resort GC in old space requested


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame (pc: 000000F2F0B5C5C1)
Security context: 0x03447379e6e9 <JSObject>
    1: byteLength(aka byteLength) (000000CE683F9241) (buffer.js:531) (bytecode=000000534A1529F1 offset=204)(this=0x0331a4f826f1 <undefined>,string=0x01d3a3f1af41 <Very long string(215438590)>,encoding=0x0344737be2e1 <String(4): utf8>)
    2: arguments adaptor frame: 3->2
    3: fromString(aka fromString) (00000392DD313251) (buffer.js:342) (bytecode=0000005...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: 00007FF6756EC6AA v8::internal::GCIdleTimeHandler::GCIdleTimeHandler+4506
 2: 00007FF6756C7416 node::MakeCallback+4534
 3: 00007FF6756C7D90 node_module_register+2032
 4: 00007FF6759E189E v8::internal::FatalProcessOutOfMemory+846
 5: 00007FF6759E17CF v8::internal::FatalProcessOutOfMemory+639
 6: 00007FF675BC7F94 v8::internal::Heap::MaxHeapGrowingFactor+9620
 7: 00007FF675BC645B v8::internal::Heap::MaxHeapGrowingFactor+2651
 8: 00007FF675CF02BB v8::internal::Factory::AllocateRawWithImmortalMap+59
 9: 00007FF675CF2D6D v8::internal::Factory::NewRawTwoByteString+77
10: 00007FF675A3DDA8 v8::internal::Smi::SmiPrint+536
11: 00007FF6759D4EAB v8::internal::StringHasher::UpdateIndex+219
12: 00007FF6759FA2C6 v8::String::Utf8Length+22
13: 00007FF6756B07AC node::Buffer::New+4332
14: 00007FF675BF4382 std::vector<v8::internal::compiler::MoveOperands * __ptr64,v8::internal::ZoneAllocator<v8::internal::compiler::MoveOperands * __ptr64> >::_Umove+79442
15: 00007FF675BF580D std::vector<v8::internal::compiler::MoveOperands * __ptr64,v8::internal::ZoneAllocator<v8::internal::compiler::MoveOperands * __ptr64> >::_Umove+84701
16: 00007FF675BF4866 std::vector<v8::internal::compiler::MoveOperands * __ptr64,v8::internal::ZoneAllocator<v8::internal::compiler::MoveOperands * __ptr64> >::_Umove+80694
17: 00007FF675BF474B std::vector<v8::internal::compiler::MoveOperands * __ptr64,v8::internal::ZoneAllocator<v8::internal::compiler::MoveOperands * __ptr64> >::_Umove+80411
18: 000000F2F0B5C5C1

Lo que me deja iun poco loco, es que simplemente existen 78000 registros en esa base de datos… nunca antes me había pasado esto, y he manejado consultas algo más grande. ¿Tengo algún error que no está viendo? ¿Hay alguna forma de tratar estos errores sin aumentar la --max_old_space_size?

Eclipse atalhos – Stack Overflow em Português

Obrigado por contribuir com o Stack Overflow em Português!

  • Certifique-se de responder à pergunta. Entre em detalhes sobre a sua solução e compartilhe o que você descobriu.

Mas evite

  • Pedir esclarecimentos ou detalhes sobre outras respostas.
  • Fazer afirmações baseadas apenas na sua opinião; aponte referências ou experiências anteriores.

Para aprender mais, veja nossas dicas sobre como escrever boas respostas.

python – Input overflowed – Stack Overflow

I have the problem of input overflowing and I can’t figure out how to manage it.
So let me give you my code and explain it:

p = pyaudio.PyAudio()
stream = p.open(format=FORMAT, channels=1, rate=SAMPLERATE, input_device_index=chosen_device_index, input=True, frames_per_buffer=CHUNK)
frames = ()

for i in range(0, int(SAMPLERATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    decoded = np.frombuffer(data, 'int16')
    mfcc_feat = mfcc(decoded, samplerate=SAMPLERATE/3, winlen=WINDOW_SIZE, winstep=WINDOW_STEP, nfft=NFFT)    
    if len(frames) < 299:
        frames.append(mfcc_feat)        
    elif len(frames) >= 299:
        predict_test = tf.convert_to_tensor(frames)
        result = model.predict(predict_test)
        frames = ()
        frames.append(mfcc_feat)

stream.stop_stream()
stream.close()
p.terminate()

So basiclly what I’m doing here is to using a trained tensorflow model to predict on audio features, that are generated in realtime.

First I open up a stream. Then I read the audio data in that stream using a for loop. This happens when I set the samplerate to 48000 and the chunk size to 192 excatly 250 times a second.
So 250 times a second I read in the next chunk, decode it using numpy.frombuffer and then calculating the features. The features are stored in the array frames. Each time, the length of the frames array is 299, i will use this array to predict with my tensorflow model.

And there is the problem:

Since the for loop iterates 250 times a second, each iteration has 0.004 seconds to complete, otherwise, the input of the stream will overflow (data = stream.read(CHUNK)). When I just calculate the features in each iteration, this gets done faster than 0.004 s and the input does not overflow. Since the model prediction takes more than 0.004 seconds, the input overflows.

What can I do so that the prediction of my model gets done every 299 iteration steps, without letting the next for loop iteration wait?

Chaves dinâmicas TypeScript – Stack Overflow em Português

Estou tentando criar uma interface com chaves dinâmicas:

type Keys = 'a' | 'b' | 'c';

interface MyInterface {
  [key: Keys]: string;
}

Fazendo isto, recebo o seguinte erro: An index signature parameter type cannot be a union type. Consider using a mapped object type instead.

Utilizando outra sintaxe, consigo um resultado que funciona, porém não da maneira que preciso:

type Keys = 'a' | 'b' | 'c';

type MyInterface = {
  [key in Keys]: string;
};

Desta forma, consigo utilizar esta tipagem em um objeto, porém o TS solicita o preenchimento dos valores de todas as Keys, no caso a, b e c:

// Objetivo:
// Erro: Type '{ a: string; }' is missing the following properties from type 'MyInterface': b, c
const myObject: MyInterface = {
  a: 'OK',
};

// Sem erros:
const myObject: MyInterface = {
  a: 'OK',
  b: 'OK',
  c: 'OK',
};

Teria alguma maneira de tornar as chaves opcionais?

OBS: Não estou utilizando [key: string]: string pois quero que o Lint mostre os campos disponíveis para preenchimento.

Class ‘PHPMailerPHPMailerException’ not found – Stack Overflow em Português

Estou encontrando alguns problemas para enviar e-mails usando o PHPMailer. Estou usando o Ubuntu 20.04 com PHP PHP 7.4.3. Clonei o repositório do PHPMailer do github (usei esta opção ao invés do Composer porque em produção a hospedagem é compartilhada).

Segue abaixo o código que estou usando para o envio:

<?php

require_once("PHPMailer/src/PHPMailer.php");
require_once("PHPMailer/src/SMTP.php");
 $mail = new PHPMailerPHPMailerPHPMailer();
 $mail->setLanguage('pt_br', 'PHPMailer/language/phpmailer.lang-pt_br.php');
 $mail->IsSMTP(); // enable SMTP
 $mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
 $mail->SMTPAuth = true; // authentication enabled
 $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
 $mail->Host = "mail.servidor.com.br";
 $mail->Port = 465; // or 587
 $mail->IsHTML(true);
 $mail->Username = "contato@servidor.com.br";
 $mail->Password = "XXXXXXXXXXXX";
 $mail->SetFrom("contato@servidor.com.br");
 $mail->Subject = "Assunto da mensagem";
 $mail->Body = "Escreva o texto do email aqui";
 $mail->AddAddress("usuario@email.com.br");
    if(!$mail->Send()) {
       echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
       echo "Mensagem enviada com sucesso";
    }
?>

Porém ao tentar fazer o envio, tenho os seguintes erros:

(Mon Jun 29 02:50:05 2020) PHP 7.4.3 Development Server (http://localhost:3000) started
(Mon Jun 29 02:50:10 2020) 127.0.0.1:36632 Accepted
(Mon Jun 29 02:50:11 2020) PHP Fatal error:  Uncaught Error: Class 'PHPMailerPHPMailerException' not found in /home/felix/Documentos/clientes/dani/PHPMailer/src/PHPMailer.php:1858
Stack trace:
#0 /home/felix/Documentos/clientes/dani/PHPMailer/src/PHPMailer.php(1600): PHPMailerPHPMailerPHPMailer->smtpSend()
#1 /home/felix/Documentos/clientes/dani/PHPMailer/src/PHPMailer.php(1436): PHPMailerPHPMailerPHPMailer->postSend()
#2 /home/felix/Documentos/clientes/dani/index.php(20): PHPMailerPHPMailerPHPMailer->send()
#3 {main}
  thrown in /home/felix/Documentos/clientes/dani/PHPMailer/src/PHPMailer.php on line 1858
(Mon Jun 29 02:50:11 2020) 127.0.0.1:36632 (500): GET / - Uncaught Error: Class 'PHPMailerPHPMailerException' not found in /home/felix/Documentos/clientes/dani/PHPMailer/src/PHPMailer.php:1858
Stack trace:
#0 /home/felix/Documentos/clientes/dani/PHPMailer/src/PHPMailer.php(1600): PHPMailerPHPMailerPHPMailer->smtpSend()
#1 /home/felix/Documentos/clientes/dani/PHPMailer/src/PHPMailer.php(1436): PHPMailerPHPMailerPHPMailer->postSend()
#2 /home/felix/Documentos/clientes/dani/index.php(20): PHPMailerPHPMailerPHPMailer->send()
#3 {main}
  thrown in /home/felix/Documentos/clientes/dani/PHPMailer/src/PHPMailer.php on line 1858
(Mon Jun 29 02:50:11 2020) 127.0.0.1:36632 Closing

O mesmo erro também ocorre no servidor de produção.

php – Actualizar Notificaiones – Stack Overflow en español

Escribo debido a un problema que se genera en la consulta de las notificaciones. Estoy haciendo un Sistema de notificaciones donde la persona que reserva una habitación envia una solicitud al dueño, y este le llega en una notificación donde deberá aceptar o cancelar. Las consultas para guardar están hechas, sin embargo, quiero que cuando el dueño oprima el botón confirmar, actualice algunos campos de la fila que se hizo la solicitud, pero no encuentro la manera:

Acá estoy haciendo la consulta para traer en filas los datos, además de iniciar un while para mostrar las notificaciones.

introducir la descripción de la imagen aquí

Esta (el problema) muestra la consulta para actualizar el campo de leído y confirmado a verdadero al oprimir el boton confirmar, pero cuando lo ejecuto de esta manera actualiza todas las filas en lugar de una sola. No encuentro como diferenciarlas. Estoy aprendiendo a manejar consultas con PHP, por favor, diganme que se me pasa por alto, o algo que coloque de más.

introducir la descripción de la imagen aquí

Esta es la tabla en phpmyadmin, se supone que debería usar como fila para diferenciar el id, pero como requerimiento debo usar es el correo, entonces debería usar el correo del que envía la solicitud pero no se como colocarlo, si pudieran ayudarme, gracias.

introducir la descripción de la imagen aquí