« 1 2 »
Autor Zpráva
Alastor_Kopal
Profil
Jak mohu vyjádřit životy uživatele graficky ?
něco jako -
SwimX
Profil
Alastor_Kopal
hledej php funkci image a všechny její odvozeniny.
SwimX
Profil
Alastor_Kopal
z nudy:
<?php
  $img = imagecreate(100,20); // delka, vyska
  $live_color = imagecolorallocate($img, 0,255,0);
  $dead_color = imagecolorallocate($img, 255,0,0);
  imagefill($img,0,0,$live_color);
  imagefilledrectangle($img, 0, 0, 50, 20,$dead_color); // zacatek x, zacatek y, DELKA, VYSKA
  header("Content-type: image/png");                                            
	ImagePng($img);      
	imagedestroy($img); 
?>
Majkl578
Profil
proc zatezovat server vykreslovanim obrazku? nestaci css?
Bubák
Profil
CSS grafy http://css.interval.cz/priklady/priklad-47-1.htm
Alastor_Kopal
Profil
No jo článek 5 je sice pěkný ale co až uživatel bude mít vyšší úroveň ? V session mám uložen počet životů a maximální počet životů můžu jen do CSS dosadit proměnné ?
Majkl578
Profil
si udelej procenta. jinak vzdy muzes dosadit do html do style="...", popripade i css se da generovat v php.
Alastor_Kopal
Profil
když mám 18/20
to snad bude počítat 18% z 20% celé stránky ne ?
Alastor_Kopal
Profil
Pokud to uzavřu do stylu který má pevnou šířku a výšku tak by to nemuselo počítat 20% ze stránky snad
Majkl578
Profil
Alastor_Kopal
18 zivotu z 20, tj
18*(100/20) pro zelenou a 100-(18*(100/20)) pro cervenou. nevim co resis
Alastor_Kopal
Profil
Tak sem udělal tohle

<style>
#cervena{
background: red;
width: 18*(100/20);
}

#zelena{
background: green;
width: 100-(18*(100/20));
}
</style>

<div id="cervena">18</div><div id="zelena">20</div>


a udělalo to tohle
Str4wberry
Profil
CSS zatím neumí dělat matematické výpočty.
blaaablaaa
Profil
<style>
#cervena{
background: red;
width: <?php echo round(18*(100/20)); ?>px; 
}

#zelena{
background: green;
width: <?php echo 100-round(18*(100/20)); ?>px;
}
</style>
Alastor_Kopal
Profil
cervena má 90px
a zelená 10 px

tady
Alastor_Kopal
Profil
aha takže dal jsem si

<?
session_start(); // Startujeme session
$zdravi = $_SESSION['zdravi']
?>
<style>
#cervena{
background: red;
}

#zelena{
background: green;
width: <?php echo"$zdravi" ?>px;
}
</style>

<div id="cervena"><div id="zelena"><? echo"$zdravi" ?></div></div>

a do stránky dám iframe s délkou $maxzdravi diki moc
Majkl578
Profil
Str4wberry
Alastor_Kopal
kdyz jsem to psal, predpokladal jsem, ze se pouzije nejaky scriptovaci jazyk na vypocet(php), viz [#13]
Alastor_Kopal
Profil
myslím si že toto je jednoudšší ne ?
Majkl578
Profil
ja bych to udelal treba takto (napsano exklusivne pro toto tema):

<?php

class HpGenerator {
	/**
	 * sirka css boxu
	 */
	const WIDTH = 100;
	/**
	 * vyska css boxu
	 */
	const HEIGHT = 15;
	/**
	 * generace css stylu hp
	 * @var int $userHas kolik hp ma uzivatel
	 * @var int $max maximalni pocet hp
	 * @return int sirka boxu zbyvajicich zivotu
	 */ 
	public static function generateCssHp($userHas, $max) {
		return $userHas * (self::WIDTH / $max);
	}
}

$uzivatelovoHp	= 18;
$maximum			= 20;


?>

<style type="text/css">
.lives {
	width:<?php echo HpGenerator::WIDTH; ?>px;
	height:<?php echo HpGenerator::HEIGHT; ?>px;
	background: #FF0000;
}
.user-has {
	width:<?php echo HpGenerator::generateCssHp($uzivatelovoHp, $maximum); ?>px;
	height:<?php echo HpGenerator::HEIGHT; ?>px;
	background-color: rgb(0,255,0);
}
</style>

<div class="lives"><div class="user-has"></div></div>
Alastor_Kopal
Profil
To je daleko lepší dííky moc
NoName
Profil *
Majkl578
Aneb proc to delat jednoduse, kdyz to jde slozite... Pri jeho znalostech urcite pochopi tridu se statickou metodou... Na to staci normalni konstanta a funkce. Nic proti, ale OOP je dnes proste IN - cim slozitejsi struktura, tim vic PHP guru...
Sry za OT, ale tohle uz je moc
Majkl578
Profil
NoName
nerikam ze nestaci, ale proc bych mel nekoho motivovat psat dnes jiz "nevhodny" proceduralni kod? sorry, ale v soucasnosti je OOP zaklad. napsal jsem jednoduchou tridu, ktera je logicka (vice nez nejaka obycejna funkce). jsem proste zvykly psat objektove orientovany kod (soucasne uz i se jmennymi prostory) a kdyz muzu, snazim se ostatnim, kteri jej nepouzivaji naznacit, ze je lepsi. a pokud tomu nerozumi, predpokladam, ze si o tom neco dohleda (navic kdyz jsou ty prvky i ozivene a odkazuji na manual).

rekni mi, co vypada logicteji, tridy, ktere se staraji o specificke veci, nebo plny kod nesmyslne pojmenovanych funkci, ktere napreskacku delaji cosi o cem cizi clovek pri pohledu na kod nema ani paru..?
imploder
Profil
Majkl578
Program má něco vykonat? Co vypadá logičtěji: třídy (co to je?), které se starají o specifické věci, nebo kód volající funkce/procedury, z nichž každá prostě něco udělá?

OOP je nadstavba nad procedurálním programováním. Když neumíš psát obyčejné funkce, asi těžko můžeš vytvářet kód, kde jsou taky a navíc ještě zapouzdřené v něčem dalším. Co přináší členská funkce třídy oproti té samé funkci, která je prostě funkcí? Hlavní je, že to udělá. Že ve větších projektech je výhodné takové funkce "balit" společně s daty, které využívají, a od těch balíčků se pak teprv dělají různé instance, příp. můžou od sebe tyhle věci dědit a jinak kouzlit, je až navíc. Nenahrazuješ tím samotnou funkci, jenom jsi ji do něčeho zabalil. To něco je tam v tomto případě jenom navíc.
tiso
Profil
imploder - +1
Majkl578
Profil
imploder
co to prinasi? prehlednost? nebo treba seskupeni parametru stejneho vyznamu (to vlastne prinasi i namespaces ted) do jednoho "balicku"?
ocividne jsi nepochopil jak jsem to myslel. no, zkus nad tim jeste zamyslet :)
mimochodem, co ja vim tak v oop se funkcim rika metody a slouzi k logickym akcim s objektem, kdezto funkce ciste v kodu delaji co chteji (jsou nezavisle)

tiso
bezvyznamny komentar, za takove bych daval tresty
tiso
Profil
Majkl578 [#24] - srandista... Trest? Za čo? Začni láskavo od seba.
Majkl578
Profil
tiso
za co? za tento komentar bez jakehokoliv prinosneho vyznamu:
[#23]
imploder - +1
tiso
Profil
Majkl578 - keby som napísal:
"Súhlasím s imploder-om."
bolo by to v poriadku?
Alebo som mal napísať:
"Súhlasím s imploder-om, je zbytočné vytvárať novú triedu, je lepšie navrhnúť funkciu, ktorú si, ak používa OOP, vie vložiť do správnej triedy."
?
Majkl578
Profil
tiso
to posledni je alespon prinesne, je to obohacene o tvuj nahor, ty prvni dve ostatni nijak neobohati. ;)
DJ Miky
Profil
rekni mi, co vypada logicteji, tridy, ktere se staraji o specificke veci, nebo plny kod nesmyslne pojmenovanych funkci, ktere napreskacku delaji cosi o cem cizi clovek pri pohledu na kod nema ani paru..?

A co je opravdu lepší, 20řádková třída, kterou použiješ jednou a dělá jednu jedinou věc, nebo jednořádkový výraz (popř. jednořádková funkce), který udělá to samé mnohem přehledněji a rychleji?

OOP ano, ale nic se nesmí přehánět.
imploder
Profil
<?php
define("HPVIEW_WIDTH", 100); // sirka css boxu
define("HPVIEW_HEIGHT", 15); // vyska css boxu

function generateCssHp($userHas, $max) {
  return $userHas * (HPVIEW_WIDTH / $max);
}

$uzivatelovoHp  = 18;
$maximum = 20;
?>

<style type="text/css">
.lives {
    width:<?php echo HPVIEW_WIDTH; ?>px;
    height:<?php echo HPVIEW_HEIGHT; ?>px;
    background: #FF0000;
}
.user-has {
    width:<?php echo generateCssHp($uzivatelovoHp, $maximum); ?>px;
    height:<?php echo HPVIEW_HEIGHT; ?>px;
    background-color: rgb(0,255,0);
}
</style>

<div class="lives"><div class="user-has"></div></div>


Co je s tímto za problém? Objekt měl šířku i výšku konstantní (natvrdo už v prototypu), takže stejně nešlo dělat víc zobrazovacích boxů s různými rozměry. Dělat pro každý takový box zvláštní instanci objektu by bylo zbytečné, jenom by to zabíralo paměť. Takže by se více boxů ovládalo jako jeden objekt - jeden box. To mi nepřipadá zrovna logické.

Nepopírám, že v okamžiku, kdy je program složen z mnoha takových objektů, je podpora objektů a prostorů jmen přímo v jazyce užitečná věc a že OOP se vyplatí znát a používat. To rozhodně ne. Ale v tomto případě mě naprosto nenapadá, co to přináší. Co získám z té třídy, tak, jak jsi ji napsal, oproti samotné funkci? Opravdu nevím.

mimochodem, co ja vim tak v oop se funkcim rika metody a slouzi k logickym akcim s objektem
Není to to samé, protože tomu říkáme jinak, že jo. Funkcím se v OOP říká metody, konstantám a proměnným atributy. Obojí se vyznačuje tím, že patří objektu (narozdíl od běžných funkcí a proměnných). Akce s objektem je zrovna tak logická jako akce mimo objekt.

kdezto funkce ciste v kodu delaji co chteji (jsou nezavisle)
Zadání bylo zobrazit zdraví. Na to stačí zobrazit zdraví, není potřeba vytvářet nějakou virtuální "věc" (objekt), jejíž jedinou funkcí je zobrazit zdraví.
« 1 2 »

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0