Diskuze: Arkanoid

C# .NET .NET (C# a Visual Basic) Arkanoid American English version English version

Avatar
CzMarty
Člen
Avatar
CzMarty:

Cau lidi hele mam problem studuji druhym rokem obor IT a ted mam udelat v C# arkanoid potrebuju poradit s narazy do okraje panelu a plynulý pohyb kulicky

Odpovědět 7.3.2013 9:23
Žiješ jen jednou. Tak žij pořádně :D
Avatar
Odpovídá na CzMarty
Luboš Běhounek (Satik):

Nedávno se to tu někde řešilo, prolez fórum a něco snad najdeš :)

Nahoru Odpovědět 7.3.2013 9:33
:)
Avatar
CzMarty
Člen
Avatar
CzMarty:

ok podivam se a jinak diky :D

Nahoru Odpovědět 7.3.2013 9:34
Žiješ jen jednou. Tak žij pořádně :D
Avatar
CzMarty
Člen
Avatar
Odpovídá na Luboš Běhounek (Satik)
CzMarty:

koukal jsem na forum a nikde jsem to nenasel : D

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace arkanoid
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int pohybx = 200;
        int pohyby = 480;
        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            Graphics panel = e.Graphics;
            panel.FillRectangle(Brushes.Gray, pohybx, 500, 100, 20);
            panel.FillEllipse(Brushes.Navy, 240, pohyby, 20, 20);
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                //pohyb do leva
                case Keys.Left: case Keys.NumPad4:
                    pohybx -= 3;
                    break;
                //pohyb pohyb do prava
                case Keys.Right: case Keys.NumPad6:
                    pohybx += 3;
                    break;
                //pohyb kulicky (zatim jen manualne :-( )
                case Keys.Space:
                    pohyby -= 5;
                    break;


            }
            Refresh();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {

        }
    }
}

tohle zatim mam

Nahoru Odpovědět 11.3.2013 10:33
Žiješ jen jednou. Tak žij pořádně :D
Avatar
CzMarty
Člen
Avatar
CzMarty:

potreboval bych nastavit blokovani posunu, plynuly pohyb kulicky a jeji odrazeni od padla a steny alespon te vrchní

Nahoru Odpovědět 11.3.2013 10:33
Žiješ jen jednou. Tak žij pořádně :D
Avatar
Nahoru Odpovědět 11.3.2013 10:44
:)
Avatar
CzMarty
Člen
Avatar
Odpovídá na Luboš Běhounek (Satik)
CzMarty:

aha tak trochu se v tom nevyznam :( o Javě jsem slysel ae porad nechapu jak mam nastavit max pohyb padla a odraz micku

Nahoru Odpovědět 11.3.2013 11:00
Žiješ jen jednou. Tak žij pořádně :D
Avatar
Odpovídá na CzMarty
Luboš Běhounek (Satik):

Pohyb kulicky udelas tak, ze ho budes volat v timer1_Tick(...) .
Tam by jsi taky měl řešit odrazy míčku od kostiček/krajů/pá­dla.

Samotný odraz od kraje zkus vykoukat z toho v javě, je to jen kontrola pozice míčku v jednom směru :)

Nahoru Odpovědět 11.3.2013 11:18
:)
Avatar
CzMarty
Člen
Avatar
CzMarty:

a jak mam nastavit ten timer ??? abych tam dal treba nekonecnou smycku ???

Nahoru Odpovědět 11.3.2013 11:20
Žiješ jen jednou. Tak žij pořádně :D
Avatar
CzMarty
Člen
Avatar
CzMarty:

a jak mam nastavit ten timer ??? abych tam dal treba nekonecnou smycku ???

Nahoru Odpovědět 11.3.2013 11:20
Žiješ jen jednou. Tak žij pořádně :D
Avatar
Mediel
Redaktor
Avatar
Odpovídá na CzMarty
Mediel:

Timer bezi neustale, dokud ho nevypnes...

Timer1.Enabled = true; // timer je zapnuty a bezi v te tve nekonecne smycce
Timer1.Enabled = false; // timer je vypnuty a uz nikam nedobehne :D

Nahoru Odpovědět  +1 11.3.2013 11:22
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
CzMarty
Člen
Avatar
CzMarty:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace arkanoid
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int pohybx = 200;
        int pohyby = 480;
        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            Graphics panel = e.Graphics;
            panel.FillRectangle(Brushes.Gray, pohybx, 500, 100, 10);
            panel.FillEllipse(Brushes.Navy, 240, pohyby, 20, 20);

            if (pohyby >= 500)
            {
                panel.FillEllipse(Brushes.Green, 240, pohyby, 20, 20);
            }
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                //pohyb do leva
                case Keys.Left: case Keys.NumPad4:
                    pohybx -= 3;
                    break;
                //pohyb pohyb do prava
                case Keys.Right: case Keys.NumPad6:
                    pohybx += 3;
                    break;
                //pohyb kulicky (zatim jen manualne :-( )
                case Keys.Space:
                    for (int i = 0; i < 100; i++)
                    {
                        if (pohyby >= 0 )
                        {
                            pohyby -= 5;
                            Refresh();
                            System.Threading.Thread.Sleep(10);
                        }


                    }
                    break;


            }

            Refresh();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {

        }
    }
}

tohle jsem zatim udelal kulicka se zastavi na nulove hodnote y, jenze ted potrebuju aby se vratila zpet a opet se odrazila od pozice pocatecniho vykresleni a tohle porad dokola

Nahoru Odpovědět 11.3.2013 11:31
Žiješ jen jednou. Tak žij pořádně :D
Avatar
Mediel
Redaktor
Avatar
Odpovídá na CzMarty
Mediel:

Zkus se nad ti zamyslet a udelej si treba algoritmus :) Ono sice ti to zabere hodinku hlubokeho premysleni, ale posune te to daleko dal nez to, kdyz ti tady ted napisu, jak pokracovat v kodu...

Nahoru Odpovědět 11.3.2013 11:39
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.